Note: EboMike's accepted answer is WRONG.
I know this is an old question, but I came across it trying to solve the same problem. However, the accepted answer was incorrect. You wonβt need to run the adb server as root once you have set the udev rules correctly.
Step 3 at http://developer.android.com/tools/device.html gives the correct permission. In particular, add or modify /etc/udev/rules.d/51-android.rules with the following line:
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0666", GROUP="plugdev"
In this case, 0bb4 is the vendor identifier for HTC. 0fff is the product identifier for the Nexus One. Use the table in the link above or lsusb to identify the device provider identifier and product identifier. eg,
$ lsusb Bus 001 Device 006: ID 18d1:4e22 Google Inc. Nexus S (debug)
18d1 is the vendor identifier of this device, and 4e22 is the product identifier. You can leave the definition "GROUP" if you want to allow access to this device to all users. If not, be sure to add yourself to the plugdev group if you are not already in it. After creating this file, restart or reload udev.
udevadm control --reload-rules
If you needed to add yourself to the group, you will need to log out and log back in.
Kill all old adb servers with "adb kill-server", connect your device and run "adb devices". This will restart the server, and you should now see your device. Running adb as root, even to run the adb server, is not required. It is also usually a bad idea to run things as root if absolutely necessary.
gnac Jan 6 '13 at 19:48 2013-01-06 19:48
source share