Very likely udev is incorrectly adding your device. I too had this problem & came across a relatively simple solution.
Find your device in lsusb
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Point of interest in this case:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Check out the corresponding device file
$ ls -l /dev/bus/usb/001/006
Likely you will see something like
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
This which means that the device file will be owned by the user root and the group root, which is why adb can access it as root but not as your standard user.
This can be solved by creating a new udev rule – I used /etc/udev/rules.d/51-android.rules
- to add the device to the group plugdev
, which adb already assumes you to be a member of (you shoukd be, check using id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
**Remember to replace the ATTR{idProduct}==”4ee7″ with your own product id that you found out in step one. ** (If your vendor isn’t Google Inc., also replace the vendor id with the one before the colon in lsusb).
Now just unplug your device and plug it back in (udev should automatically respond to the new file) and tadaa:
$ adb devices
List of devices attached
YC873P0G device
SOURCE:
https://askubuntu.com/questions/908306/adb-no-permissions-on-ubuntu-17-04