Я использую Ubuntu 12.10, и я установил Android SDK, установил его путь в моем пользователе, .bashrc
и он работает.
Проблема в том, что мой телефон требует, чтобы adb запускался root для разрешений, но при запуске adb с sudo я получаю следующую ошибку:
sudo: adb: команда не найдена
Я пытался просто использовать sudo -E adb start-server
, но это не работает. Попытался добавить строку пути экспорта в /root/.bashrc
и (после того, как это не помогло) в /etc/bash.bashrc
.
Я помню, что мог установить его на моем Arch Linux, но я думаю, что моя проблема сейчас связана с учетной записью root Ubuntu, которая ведет себя не так, как я ожидал.
Что я не понимаю, так это следующее:
Это не работает:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Это делает (набрав полный путь):
martin@alyx:~$ sudo /opt/android-sdk-linux/platform-tools/adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
CM7-Blade device
Это не работает (используя -E с sudo):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Это работает (как root):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Сейчас я полностью сбит с толку, и я был бы признателен за разъяснения о том, как задать путь для sudo или как еще я мог бы решить мою проблему.
(И, пожалуйста, не говорите, что adb не должен запускаться с правами root.)
Заранее спасибо!
Редактировать: Требуя права root, я имею в виду, что они мне нужны, потому что в противном случае я получаю
$ adb devices
List of devices attached
???????????? no permissions
который не является суперпользователем. Извините, если это было недоразумение.
Ответы:
Сначала прочтите следующее: Как настроить Android ADB?
Настройка доступа через USB
Во-первых, вам не нужны root-права для запуска ADB, если вы настроили соответствующие разрешения. На сайте AOSP приведены примеры настройки USB-доступа для устройств Pixel / Nexus. Вы можете использовать следующую схему для устройств не Nexus:
Поставщик и идентификатор продукта можно получить с помощью
lsusb
и поиска вашего устройства. (Примечание: устройство на самом деле является Galaxy Nexus.)Итак, мое
/etc/udev/rules.d/51-android.rules
правило udev выглядит так:Вы можете повторить это для других состояний телефона, таких как fastboot, если это необходимо. Чтобы изменения вступили в силу, перезагрузите udev (
sudo udevadm control --reload
) или перезагрузите компьютер (рекомендуется).Обеспечение доступности программ
Вместо изменения переменной пути я бы предложил добавить символическую ссылку на исполняемый файл либо в
~/bin/
(только для пользователя), либо в/usr/local/bin/
(для всей системы).источник
adb devices
у меня работает без рут прав.Я столкнулся с той же проблемой с планшетом из Китая (какой-то странный производитель).
В дополнение к
/etc/udev/rules.d/51-android.rules
файлу, мне нужно было также изменить~/.android/adb_usb.ini
.Запустите ниже на терминале;
и ваш
adb_usb.ini
файл должен выглядеть так:Отключенное и повторно подключенное устройство, а также необходимое для запуска нижеуказанных команд на терминале;
и после
И устройство было обнаружено.
источник
0x2207
в вашем примере используется тот же идентификатор поставщика, что и мое устройство.В моем случае вместо режима MTP некоторые смартфоны нужно было просто установить в режим PTP, в отличие от большинства устройств, которым требуется, чтобы режим MTP был обнаружен моей Android Studio (v1.5.1).
Поэтому обязательно сначала попробуйте оба режима MTP и PTP, не тратя время на более сложную настройку ADP в Unix и, возможно, нанося им вред.
В более новых устройствах вы можете выбрать его непосредственно в настройках Dev, в то время как в более старых - в параметрах USB Connected в строке состояния.
Но и для меня новейшие устройства Sony Xperia от Z5 и выше не будут работать независимо от режима USB. Может быть, моя Android Studio устарела или мне нужно копать также с конфигурациями Unix ADP.
источник
Следуй этим шагам:
Установить Android Vars
Сначала зайдите к себе домой и нажмите Ctrl+, Hэто покажет вам скрытые файлы, теперь ищите
.bashrc
файл, откройте его в любом текстовом редакторе, а затем поместите строки ниже в конце файла:перезагружать
Использование устройства для отладки
Слушайте для связи:
Подключите ваше устройство Android и авторизуйте его:
источник
Настройка доступа через USB
Рекомендуемый подход - создать файл в
/etc/udev/rules.d/51-android.rules
.Пожалуйста, введите в Терминале:
Эти новые правила вступают в силу при следующем подключении устройства. Поэтому может потребоваться отключить устройство и снова подключить его к компьютеру.
источник
Хотя принятый ответ помог мне добиться цели, я все еще не понимал:
и особенно
так как согласно
sudo --help
:Оказывается, что во многих дистрибутивах Linux (включая Debian и Ubuntu)
secure_path
иenv_reset
опции включены по умолчанию, которые сбрасывают вашуPATH
переменную и устанавливают ееsecure_path
. Вы можете изменить его в/etc/sudoers
файле, используя visudo.В качестве альтернативы вы можете запустить:
источник
Попробуйте эту команду:
sudo tools/android update sdk --no-ui
SDK README:
источник