Коли я намагаюся:
$ adb devices
я отримую результат:
List of devices attached
???????????? no permissions
в чому проблема?
спробував на машині Ubuntu 16.04, і вона працювала чудово. спробував пристрій 7.1.1, і він також справно працював.
Коли я намагаюся:
$ adb devices
я отримую результат:
List of devices attached
???????????? no permissions
в чому проблема?
спробував на машині Ubuntu 16.04, і вона працювала чудово. спробував пристрій 7.1.1, і він також справно працював.
Відповіді:
Спробуйте перезапустити сервер Adb.
sudo adb kill-server
і потім
sudo adb start-server
потім підключіть свій пристрій, увімкніть налагодження та введіть
adb devices
adb devicesзараз показує пристрій (і я отримую діалогове вікно відбитків пальців). Однак це все ще не працює з андроїд-студією. Крім того, коли я запускаю студію Android, а потім запускаю adb devicesз консолі, я отримую "сервер adb застарів", і сервер adb перезапускається. Після цього я знову потрапляю до ситуації "без дозволів".
Була така ж проблема. Переконайтесь, що режим USB на пристрої НЕ заряджається, лише це вирішило.
Дуже ймовірно, 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
Щоб розширити відповідь Сумета Дешмуха, його підхід працює взагалі - якщо ви хочете використовувати лише adbкоманду з консолі.
Однак Android Studio, мабуть, запускає власний сервер adb, вбиваючи нашого. Це означає, що після того, як ми вбили / запустили сервер з sudo, Studio його перезапустить, що призводить до стартової ситуації - без дозволів.
Рішення - спочатку запустити Studio, потім виконати запуск / зупинку сервера. Зробивши це, мені вдалося змусити свій Nexus 5X відобразитися як дійсна ціль запуску в Studio.
Це не найкраща ситуація (потрібно запускати команди кожен раз, коли ви запускаєте Studio), але це робить трюк швидко і брудно. Якщо я знайду більш постійне рішення, оновлю цю відповідь.
Будь ласка, не дотримуйтесь рішень, які пропонують використовуватиsudo ( sudo adb start-server)! Це запустити adb як root (адміністратор), і НЕ передбачається запускати так !!! Це BAD вирішення !
Все, що працює як root, може робити все, що у вашій системі, якщо він створює або змінює файл, може змінити його дозвіл на використання тільки root. Знову НЕ!
Що потрібно зробити це налаштувати вашу систему , щоб користувач має дозволу, перевірити це керівництво я написав про те , як зробити це правильно.
Це не спрацювало для мене після того, як я додав себе до plugdevгрупи та перезавантажив машину просто для того, щоб переконатися, що зміна діє в усіх моїх сеансах оболонки. Потім я виявив, що 51-android.rulesфайлу немає, /etc/udev/rules.dі потрібно було виконати наступне, щоб усунути проблему:
# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart
Мені також довелося відключити підключення та повторно підключити свій пристрій Android.
Потрібно надати дозвіл на своєму пристрої Android. Перейдіть у Налаштування> Параметри розробника. Спробуйте вимкнути налагодження Usb і знову ввімкнути його. Вийміть кабель і підключіть його знову. Спробуйте також видалити всі збережені авторизації з параметрів розробника. Тепер він повинен запитати дозвіл на налагодження за допомогою запиту на вашому телефоні. Прийняти це.
M0Rf30/android-udev-rules Спільнота GitHub підтримувала правила udev
https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Це найповніший список правил udev, який я бачив досі, навіть більше, ніж зараз рекомендується sudo apt-get install android-tools-adb в офіційній документації , спробуйте.
Я поняття не маю, чому це працює, але це було єдине рішення, яке працювало на мене
Знайдіть, де працює adb (якщо ви схожі на мене, у вас встановлено кілька версій). Майте на увазі такі інструменти, як реагувати на рідну, можуть вирішити використовувати випадкові інші версії, щоб зробити ваше життя складніше. Для мене це ~/Android/Sdk/platform-tools/adb. Тож я біжу:
sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb
Інструменти Android дуже дратують.
Перейдіть у Налаштування >> Обслуговування >> Зберігання. Потім перевірте верхнє ліве меню та натисніть підключення USB до комп’ютера, а потім перейдіть до мультимедійного пристрою (MTP).
sudo adb devices. Якщо це працює чудово, але з пам’яті мені не довелося кореня перевіряти, чи приєднані пристрої.