I am building Android from source in order to install my company's custom filesystem (Datalight Reliance Nitro). I'm using an Ubuntu 12.04 PC as my host device and a Nexus 7 (flo) as my Android device. I have followed the instructions for setting up the the host system, including setting up the file /etc/udev/rules.d/51-android.rules.

I had been building Android 4.4.3, and ADB ran just fine as expected. (No need for sudo privileges.)

However, when I built and installed Android 5.1.1, suddenly ADB complains:

$ adb devices
List of devices attached 
????????????    no permissions

I tried several further mods to my 51-android.rules file, but no success. Following CyanogenMod's instructions on the topic, I finally ran the ADB server on sudo, and that worked. But I'm wondering why. How could the version of Android effect the privileges ADB needs? Or am I possibly overlooking something else entirely?


You need add your device id to the rules. Plug your device through usb. Make lsusb and look for your device. You'll receive something like

Bus 003 Device 048: ID 18d1:4ee7 Google Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Then add line in /etc/udev/rules.d/51-android.rules similar to others but with idVendor (in this example '18d1'), and idProduct (here '4ee7')

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0600", OWNER="{same as others}"


sudo udevadm control --reload-rules

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.