adb без разрешения на Ubuntu 17.04

16

Когда я пытаюсь:

$ adb devices

Я получаю результат:

List of devices attached 
????????????    no permissions

в чем проблема?

попробовал машину Ubuntu 16.04, и она отлично работала. попробовал устройство 7.1.1, и он также отлично работал.

    
задан Nadav Tasher 24.04.2017 в 10:10
источник

8 ответов

11

Попробуйте перезагрузить сервер Adb.

sudo adb kill-server

, а затем

sudo adb start-server

затем подключите устройство, чтобы включить Debugging, и введите

adb devices
    
ответ дан Sumeet Deshmukh 26.04.2017 в 17:13
источник
16

Была такая же проблема. Убедитесь, что режим USB устройства НЕ только зарядка разрешила его.

    
ответ дан Ivan Klass 13.05.2017 в 12:35
7

Скорее всего, udev неправильно добавляет ваше устройство. У меня тоже была эта проблема & amp; натолкнулось на относительно простое решение.

Найдите устройство в 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

Это означает, что файл устройства будет принадлежать пользователю root и корневому файлу группы, поэтому 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     

ответ дан Paul 08.09.2017 в 20:40
2

Вам необходимо предоставить разрешение на Android-устройство. Параметры разработчика. Попробуйте отключить отладку Usb и снова включить его. Удалите кабель и снова подключите его. Также попробуйте удалить все сохраненные авторизации из параметров разработчика. Теперь он должен запросить разрешение на отладку с помощью подсказки на вашем телефоне. Примите это.

    
ответ дан Droidzone 24.04.2017 в 10:13
2

Чтобы расширить ответ Sumeet Deshmukh, его подход работает в целом - если вы хотите использовать команду adb с консоли.

Android Studio, однако, по-видимому, начинает собственный сервер adb, убивая наших. Это означает, что после того, как мы убили / запустили сервер с помощью sudo, Studio перезапустит его, что приведет к исходной ситуации - никаких разрешений.

Решение состоит в том, чтобы сначала запустить Studio, а затем выполнить запуск / остановку сервера. Сделав это, мне удалось заставить Nexus 5X отображаться в качестве допустимой цели запуска в Studio.

Это не лучшая ситуация (нужно запускать команды каждый раз, когда вы запускаете Studio), но это делает трюк быстрым и грязным способом. Если я найду более постоянное решение, я обновлю этот ответ.

    
ответ дан Shade 17.08.2017 в 19:56
0

Я понятия не имею, почему это работает, но это единственное решение, которое сработало для меня

Найдите, где работает adb (если вы похожи на меня, у вас установлено несколько версий). Имейте в виду, что такие инструменты, как реакция native, могут решить использовать случайные другие версии, чтобы сделать вашу жизнь сложнее. Для меня это ~ / Android / Sdk / platform-tools / adb. Поэтому я запустил:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Android-инструменты очень раздражают.

    
ответ дан Bufke 06.09.2017 в 21:09
0

Изменение режима USB с Телефон сделал трюк для меня. (Я установил его в Передача файлов .)

    
ответ дан NuttLoose 11.10.2017 в 14:36
0

Сообщество GitHub поддерживает udev-rules

Ссылка

Это самый полный список правил udev, который я видел до сих пор, даже больше, чем рекомендуемый в настоящее время sudo apt-get install android-tools-adb в официальной документации , попробуйте.

    
ответ дан Ciro Santilli 包子露宪 六四事件 法轮功 21.10.2017 в 21:21