Дуже ймовірно, udev неправильно додає ваш пристрій. У мене теж була ця проблема і я натрапив на досить просте рішення.
Знайдіть свій пристрій в 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
Цікава точка в цьому випадку:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Перевірте відповідний файл пристрою
$ ls -l /dev/bus/usb/001/006
Ймовірно, ви побачите щось подібне
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
Це означає, що файл пристрою буде належати кореневі користувача та корінь групи, тому adb може отримати доступ до нього як root, але не як ваш стандартний користувач.
Це можна вирішити, створивши нове правило udev - я використав /etc/udev/rules.d/51-android.rules
- для додавання пристрою до групи plugdev
, яка adb вже передбачає, що ви є членом (ви повинні бути, перевірте використання id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
** Не забудьте замінити ATTR {idProduct} == "4ee7" на власний ідентифікатор продукту, який ви дізналися на першому кроці. ** (Якщо ваш постачальник не Google Inc., також замініть ідентифікатор постачальника на той, що знаходиться перед двокрапкою в lsusb).
Тепер просто відключіть пристрій від мережі та підключіть його назад (udev повинен автоматично відповісти на новий файл) та tadaa:
$ adb devices
List of devices attached
YC873P0G device
Джерело: Додавання правил udev для налагодження USB-пристроїв Android - Janos Gyerik
sudo adb devices
. Якщо це працює чудово, але з пам’яті мені не довелося кореня перевіряти, чи приєднані пристрої.