This blog post explains how to fix the no permissions error the Android Debugger displays when running the adb devices command Linux. The solutions presented here have been tested and found working on Ubuntu Lucid, but they should also work on other Ubuntu and Linux versions as well.
This official help center page has many working and non-working answers to the problem, and many comments. The root cause of the problem is that the current user doesn't have sufficient permissions to access the USB device file created when the phone was connected in USB debug mode.
Killing all running adb server instances with sudo killall adb, disconnecting the phone, reconnecting the phone, and then running sudo adb devices instead (so adb gets run as root) fixes the problem.
Alternatively, it is possible to implement a long-term fix which doesn't require sudo, thus it works with e.g. IntelliJ IDE integration:
- Create a file named /tmp/android.rules with the following contents (hex vendor numbers were taken from the vendor list page):
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
- Run the following commands (without the leading
$
):$ sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules $ sudo chmod 644 /etc/udev/rules.d/51-android.rules $ sudo chown root. /etc/udev/rules.d/51-android.rules $ sudo service udev restart $ sudo killall adb
- Disconnect the USB cable between the phone and the computer.
- Reconnect the phone.
- Run adb devices to confirm that now it has permission to access the phone.
Please note that it's possible to use , USER="$LOGINNAME"
instead of , MODE="0666"
in the .rules file, substituting $LOGINNAME
for your login name, i.e. what id -nu prints.
49 comments:
Yay, it's working, thanks! :)
Thank You very much. It helps.
Thank you man, you rock :) I´ve read and tried 50 manuals like yours but each one was missing the most important step... : to unplug and plug in again the phone :D :) thx again
#pt-br
Muito bom. Funcionou perfeitamente por aqui. Obrigado pela dica.
#en
Very good. It worked perfectly here. Thanks for the tip.
Thanks :) helped me :)
Thank you so much! Now to move forward...
Thanks very much! If you want, you can add Archos devices to the list (ID: 0e79)
Thanks a ton..it really worked...:)
You made my day! Thanks a lot!
Perfect :) Thank you
Thanks buddy... :)
You rock! Thank you!
Thank you very much : )
Wonderful walk through
This works too:
assuming adb is in your path etc:
sudo pkill -f adb (killall adb remaining)
sudo env PATH=$PATH adb devices
hav fun
@georges: Your commands constitute a good short-term solution, but after a few hours adb stops working, and your commands have to be run again (... and again). The solution in my bog post solves the problem for good.
@georges: after hours searching and nothing working, (previously I had no problems in ubuntu, but moved to Linux Mint Debian Edition) your solution worked for me. Thanks georges and pts!
THIS WORKED PERFECTLY! Thank you. I wish I could point all the questions here
Thanks, It works.
Thank you so much.
It worked for my LG P970 perfectly !!!
Thanks!!
I was trying to fastboot (command not found) and with this min changes, you saved me.
Thank you very much. It worked!!!
Thanks!!!! This worked for me :-)
Thank a ton... it works like a butter..
Thank you, it worked like a charm. :)
You are king :) Thanx very much
worked for me, thanks a lot
thank you You saved my ass...
You rock man!
I already have the file /etc/udev/rules.d/51-android.rules but I'm smart enough not to overwrite it. For those less knowledgeable, perhaps you might change your instructions to: cat tmpfile >> udevfile
Big thanks for the info.
I am having problems and need help please
after typing in the command:
chown. root.....
i get:usage chown [:GROUP] [FILE2]....
then i typed command:
service udev restart
and i get:
unknown command udev
usage: service [-h|-?]
service list
service check SERVICE
service call SERVICE CODE [i32 INT |s16 STR]...
options:
i32 write the integer INT into the send parcel s16 write the utf-16 string STR into the send parcel
then i tried killall adb but i get: adb no process killed
any suggestions please?
Thank you! Working like a Charm on Ubuntu 14.04 and my Zopo Mobile
Thanks!!!!
Many Thanks.
It works!!!
God Bless You man!
THANX A LOT!!
GOD BLESS YOU!!
Thanks a lot. Works like a charm
Thanks... it worked for me.... :)
Many thanks, it work :)
You are awesome! This old post helped me today! For anyone lost, Lava Iris 300 use HTC's vendor id: 0bb4
Thank you very much... its saves my day :) ..
Many thanks man! Finally a good fix! I was having a problem with ZTE V790 and Ubuntu 14.04, but now is all set :)
Excelente.. me quieto el sombrero... Gracias
You ROCK ! it works!!!!!!!!!!
where is /tmp/android.rules ??
under what folder /tmp is? so i can create that android.rules file?
@Medio81: Create a file named android.rules anywhere, with any text editor, and then copy it to /tmp: sudo cp android.rules /tmp/android.rules
Many thanks, it worked!
You superman!
Many thanks from Finland! :D
Post a Comment