注意:EboMike 接受的答案是错误的。
我知道这是一个旧问题线程,但我偶然发现它试图解决同样的问题。然而,接受的答案是不正确的。一旦正确设置了 udev 规则,就不需要以 root 身份运行 adb 服务器。
http://developer.android.com/tools/device.html中的第 3 步为您提供了正确的分辨率。具体来说,使用以下行添加或修改 /etc/udev/rules.d/51-android.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0666", GROUP="plugdev"
在这种情况下,0bb4 是 HTC 的供应商 ID。0fff 是 Nexus One 的产品 ID。使用上面链接中的表格或 lsusb 来识别您设备的供应商 ID 和产品 ID。例如
$ lsusb
Bus 001 Device 006: ID 18d1:4e22 Google Inc. Nexus S (debug)
18d1 是此特定设备的供应商 ID,4e22 是产品 ID。如果您想允许所有用户访问此设备,您可以省略“GROUP”定义。如果没有,请务必将自己添加到 plugdev 组(如果您尚未加入)。创建此文件后,重新启动或重新加载 udev。
udevadm control --reload-rules
如果您必须将自己添加到组中,则需要注销并重新登录。
使用“adb kill-server”杀死任何旧的 adb 服务器,插入您的设备并运行“adb devices”。这将重新启动服务器,您现在应该会看到您的设备。不需要以 root 身份运行 adb,即使只是启动 adb 服务器也是如此。除非绝对需要,否则以 root 身份运行通常也是一个坏主意。