команда adb devices не работает - PullRequest
86 голосов
/ 01 апреля 2011

Я использую Ubuntu 10.10 64 бит. У меня установлен ia32-libs вместе с Android Debug Bridge версии 1.0.26.

Мои проблемы:

  1. adb devices >>> ???????????? нет разрешений
  2. sudo adb devices >>>> sudo: adb: команда не найдена
  3. adb shell >>> ошибка: недостаточно прав для устройства

Полагаю, все это связано. Вот соответствующая информация.

$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools

$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

$ sudo adb devices
sudo: adb: command not found

$ adb shell
error: insufficient permissions for device

Я получаю те же результаты, что и у root-мото Moto Droid с CM6.1 и укоренившаяся G-Tab с ПЗУ на базе CM7.

Я просмотрел следующие похожие посты:

Я попробовал большинство (не все) предложений, и мне не удалось решить мою проблему. То, что я не пробовал, казалось неуместным. Буду признателен за несколько советов и буду продолжать устранять неполадки.

Единственное, что я не пробовал, это редактировать /etc/udev/rules.d/70-android.rules. Это может быть проблемой? Я не вижу, как это вызвало бы "sudo: adb: команда не найдена". Может быть, мои проблемы не все связаны. В любом случае, на данный момент я думаю, что мне нужен вклад других людей, потому что я не верю, что у меня есть проблема пути или другие общие проблемы, обсуждаемые в этих других сообщениях.

РЕДАКТИРОВАТЬ: РЕШЕНО благодаря EboMike и RivieraKid. На самом деле это были две разные проблемы:

  1. Пункт № 2 выше (команда sudo: adb: not found) был решен путем создания символической ссылки следующим образом:

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
    

    Это позволило мне сделать то, что предложил EboMike, и использовать это решение . Это было необходимо для моего Moto Droid. (Запуск adb как sudo был , а не , необходимый для моего планшета Viewsonic G, однако.)

  2. Два других моих вопроса были решены путем реализации правила udev, как предлагал RivieraKid (из этой ссылки ).

Ответы [ 9 ]

87 голосов
/ 01 апреля 2011

Одна вещь, которую я не пробовал, - это редактирование /etc/udev/rules.d/70-android.rules.Это может быть проблемой?

Есть какая-то конкретная причина, почему вы этого не сделали?Чтобы ответить на вопрос - ДА!Правила udev сообщают Ubuntu о вашем устройстве и позволяют инструментам пользовательского пространства получать к нему доступ.

Вы не сможете использовать adb без правильного следования инструкциям .

Однако, учитывая это, вы не говорите, какую версию Ubuntu вы используете, но у меня были проблемы с 10.10 - дайте мне знать, если вам нужно, чтобы я опубликовал содержимое моего файла правил.

Не беспокойтесь о запуске adb через sudo, он вам не нужен.MODE="0666" из правила udev позволяет получить доступ к устройству как любой пользователь.


РЕДАКТИРОВАТЬ:

Не забудьте перезагрузить правила:

sudo udevadm control --reload-rules

EDIT # 2:

Как правильно заметил @Jesse Glick, если adb уже работает в режиме демона, вам также необходимо перезапустить его, чтобы это работало:

sudo adb kill-server

Я использовал sudo здесь, так как это гарантирует, что adb будет убит, и это официально поддерживаемый способ остановить сервер.Он будет автоматически перезапущен при следующем использовании adb, но на этот раз с правильным окружением.

22 голосов
/ 01 апреля 2011

Вам необходимо перезапустить сервер ADB с правами root. Смотрите здесь .

13 голосов
/ 06 ноября 2012

В моей системе Gentoo / Funtoo linux у меня похожие проблемы:

У меня всегда неправильное описание устройства и недостаточные разрешения:

# sudo ./adb devices
List of devices attached 
????????????    no permissions
# ./adb usb
error: insufficient permissions for device

Для меня помогает Howto от Google.В моем случае мне нужно было добавить правило udev:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

и настроить права файловой системы

# chmod a+r /etc/udev/rules.d/51-android.rules

После повторного подключения моего смартфона доступ к телефону был успешным, он также появляетсятеперь в Eclipse 'Android Device Chooser:

# sudo ./adb devices
List of devices attached 
3XXXXXXXXXXXXXC device
# sudo ./adb usb
restarting in USB mode

Вы также должны проверить членство вашего пользователя в plugdev -группе.

3 голосов
/ 17 мая 2013

Каждый ответ, который я прочитал, указывает SUBSYSTEM=="usb".Однако моему (возможно, древнему) udev нужно было изменить это значение на DRIVER=="usb".Наконец, я могу запустить сервер adb от имени пользователя без полномочий root ... yay.

Может быть полезно посмотреть на вывод udevmonitor --env, а затем на вывод

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>
2 голосов
/ 26 августа 2016

перезапуск сервера adb под root работал у меня. см:

derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip 
loading: 'angler-ota-mtc20f-5a1e93e9.zip'
error: insufficient permissions for device
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    no permissions

derek@zoe:~/Downloads$ adb kill-server
derek@zoe:~/Downloads$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    sideload
2 голосов
/ 08 апреля 2013

Обратите внимание, что IDE, такие как IntelliJ IDEA , имеют тенденцию запускать собственный adb-сервер.

Даже ручное уничтожение сервера и запуск нового экземпляра с помощью sudo здесь не помогут, пока вы не заставите IDE уничтожить сам сервер.

1 голос
/ 13 января 2012

Я исправил эту проблему в моей системе Debian GNU / Linux, переопределив системные правила следующим образом:

mv  /etc/udev/rules.d/51-android.rules /etc/udev/rules.d/99-android.rules

Я использовал содержимое из файлов, связанных по адресу: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/

0 голосов
/ 26 июля 2016

У меня такая же ситуация, сброс заводских данных у меня хорошо работал.

0 голосов
/ 12 ноября 2015

HTC One m7 работает на свежем Cyanogenmod 11.

Телефон подключен через USB и привязывает мое соединение для передачи данных.

Тогда я получаю этот сюрприз:

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell
error: insufficient permissions for device

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
????????????    no permissions

РЕШЕНИЕВыключите модем на телефоне.

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
HT36AW908858    device
...