adb devices => no permissions (user in plugdev group; are your udev rules wrong?)

JavaAndroidLinuxAdbAndroid Source

Java Problem Overview


I am getting following error log if I connect my android phone with Android Oreo OS to Linux PC

$ adb devices
List of devices attached
xxxxxxxx	no permissions (user in plugdev group; are your udev rules wrong?);
see [http://developer.android.com/tools/device.html]

I tried with the link provided by the error message but still getting same error.

Java Solutions


Solution 1 - Java

Check device vendor id and product id:

$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 078: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 5986:0652 Acer, Inc 
Bus 002 Device 081: ID 22b8:2e81 Motorola PCS 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Here my android device is Motorola PCS. So my vid=22b8 and pid=2e81.

Now create a udev rule:

$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e81", MODE="0666", GROUP="plugdev"

Now the device is good to be detected once udev rule is reloaded. So, let's do it:

$ sudo udevadm control --reload-rules

After this, again check if your device is detected by adb:

$ adb devices
List of devices attached
ZF6222Q9D9	device

So, you are done.

If it still doesn't work, unplug/replug the device.

If it still doesn't work, restart your OS.

Solution 2 - Java

I don't know the reason behind this issue. But a temporary fix would be to set the phone to File Transfer mode or MTP mode.

The problem with this fix is that you'll need to set the mode from charging mode to File transfer mode or MTP mode every time the cable is connected.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAbhishek DwivediView Question on Stackoverflow
Solution 1 - JavaAbhishek DwivediView Answer on Stackoverflow
Solution 2 - JavaNabin BhandariView Answer on Stackoverflow