Команда adb devices не работает

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

Моя проблема (ы):

  • adb devices → > ???????????? нет разрешений
  • sudo adb devices → → sudo: adb: команда не найдена
  • 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

Я получаю те же результаты с укорененным Moto Droid, работающим на CM6.1, и с корневой G-Tab, на которой работает ROM на CM7.

Я просмотрел следующие связанные сообщения:

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

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

EDIT: SOLVED благодаря EboMike и RivieraKid. На самом деле это были две разные проблемы:

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

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

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

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

Ответ 1

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

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

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

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

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


EDIT:

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

sudo udevadm control --reload-rules

ИЗМЕНИТЬ № 2:

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

sudo adb kill-server

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

Ответ 2

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

Ответ 3

В моей Linux-системе Gentoo/Funtoo возникают похожие проблемы:

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

# 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:

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

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

Ответ 4

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

Можно поучительно посмотреть на выход udevmonitor --env, за которым следует выход

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>

Ответ 5

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

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

Ответ 6

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

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

[email protected]:~/Downloads$ adb kill-server
[email protected]:~/Downloads$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[email protected]:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    sideload

Ответ 7

Я исправил эту проблему в моей системе 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/

Ответ 8

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

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

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

[email protected]:~/temp/htc_m7/2015-11-11$ adb shell
error: insufficient permissions for device

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
????????????    no permissions

РЕШЕНИЕ: отключите связь на телефоне.

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
HT36AW908858    device

Ответ 9

У меня только такая же ситуация, Factory data reset работал хорошо для меня.