注意:EboMike的采纳答案是错误的。
我知道这是一个旧的问题线程,但我偶然发现它,试图解决相同的问题。 然而,被接受的答案是不正确的。 一旦您正确设置了udev规则,就不需要将adb服务器作为root运行。
第3步http://developer.android.com/tools/device.html给出了正确的解决方法。 具体而言,请添加或修改/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”。这将重新启动服务器,您现在应该能够看到您的设备。即使只是启动adb服务器,也不需要以root身份运行adb。通常情况下,除非绝对必要,否则不建议以root身份运行任何东西。
ddms
- Pentium10/etc/udev/rules.d/51-android.rules
文件后,拔下并重新插入设备。 - Macarse