Problem
I’m having trouble connecting my HTC Wildfire A3333 to Fedora Linux 17 in debugging mode. According to Adb:
./adb devices
List of devices attached
???????????? no permissions
My udev rules (first for Samsung, which works perfectly, and second for HTC, which does not) are as follows:
SUBSYSTEM=="usb",SYSFS{idVendor}=="04e8",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev"
SUBSYSTEM=="usb",SYSFS{idVendor}=="0bb4",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev"
Everything is fine with Samsung devices:
./adb devices
List of devices attached
00198a9422618e device
I’ve tried all of the replies in a similar thread but haven’t had any luck: For Android development, I’m using an HTC Wildfire.
Asked by XorOrNor
Solution #1
I recently encountered this issue when using Debian Wheezy. I used sudo to restart the adb daemon:
sudo ./adb kill-server
sudo ./adb start-server
sudo ./adb devices
Everything is up and running:)
Answered by Leon
Solution #2
The issue is caused by system permissions (thanks to @ IsaacCisneros for this suggestion). HTC Wildfire (and possibly others) require more from the operating system than Samsung smartphones. The easy answer is to run Eclipse as root, but this is inconvenient on non-sudo Linux systems such as Fedora.
I’ve discovered another technique to accomplish the same aim that appears to be more user-friendly and poses a lower security risk than running the full IDE with super user rights. Keep in mind that this is still just a workaround for the issue. System root access should be limited to administrative activities exclusively, and “adb” was created to work with regular user accounts without SUID. Despite the fact that the right setting of SUID is extremely secure, any increase in permissions is a potential security weakness in the system.
Setting the adb binary’s ownership (owner – root, owner group – user group):
chown root:user_group adb
2.Using SUID to set permissions:
chmod 4550 adb
This should produce the following output (ls -llh):
1 root user name 1.2M Jan 8 11:42 adb -r-sr-x—-
You’ll be able to execute adb as root after that, even though you’ll be using your regular user account. You should be able to run Eclipse as a regular user, and your HTC should be properly found.
./adb devices
List of devices attached
HT0BPPY15230 device
Answered by XorOrNor
Solution #3
I’m having a similar issue:
$ adb devices
List of devices attached
4df15d6e02a55f15 device
???????????? no permissions
I can see which devices I’ve connected and where they are if I run lsusb:
$ lsusb
...
Bus 002 Device 050: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone ...
Bus 002 Device 049: ID 18d1:4e42 Google Inc.
This image depicts the connection between my Samsung Galaxy S3 and my Nexus 7 (2012).
Examining those’s permissions:
$ ls -l /dev/bus/usb/002/{049,050}
crw-rw-r-- 1 root root 189, 176 Oct 10 10:09 /dev/bus/usb/002/049
crw-rw-r--+ 1 root plugdev 189, 177 Oct 10 10:12 /dev/bus/usb/002/050
Wait. What? What was the origin of the “plugdev” group?
$ cd /lib/udev/rules.d/
$ grep -R "6860.*plugdev" .
./40-libgphoto2-2.rules:ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
./40-libgphoto2-2.rules:ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
(Those lines have been wrapped)
Note the lines with GROUP=”plugdev” in them. Also, this does not work for the following device IDs:
$ grep -Ri "4e42.*plugdev" .
(nothing is returned)
OK. So, what’s the solution?
Create a file called 99-adb.rules in /etc/udev/rules.d/99-adb.rules that contains the following line:
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e42", ENV{ID_GPHOTO2}="1",
ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1",
MODE="0664", GROUP="plugdev"
This should be a single line, but I’ve wrapped it here to make it easier to read.
$ sudo udevadm control --reload-rules
$ sudo service udev restart
Unplug/replug your device.
$ adb devices
List of devices attached
4df15d6e02a55f15 device
015d2109ce67fa0c device
Answered by Roger Lipscombe
Solution #4
Your udev rule appears to be incorrect. This is what I did, and it worked:
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
(Instead of SYSFS, use ATTR)
Answered by Michaël Witrant
Solution #5
Eclipse juno under Ubuntu 12.04 I’m having the same problem. This is what I discovered on Yi Yu’s blog.
The answer is the same as Leon’s.
sudo -s
adb kill-server
adb start-server
adb devices
Answered by Chan
Post is based on https://stackoverflow.com/questions/14460656/android-debug-bridge-adb-device-no-permissions