Как настроить доступ АБР для устройств Android?

Я использую 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, которая не ведет себя так, как я ожидаю.


Я не понимаю, что следующее:

Они не работают:

[email protected]:~$ sudo adb devices
sudo: adb: command not found

Это делает (ввод полного пути):

[email protected]:~$ 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):

[email protected]:~$ sudo -E adb devices
sudo: adb: command not found

Это работает (как root):

[email protected]:~$ sudo su
[email protected]:/home/martin# adb devices
List of devices attached 
CM7-Blade   device

Теперь я полностью смущен, и я был бы признателен за некоторые разъяснения относительно того, как установить путь для sudo или как еще я могу решить свою проблему.

(И, пожалуйста, не говорите, что adb не должен запускаться как root.)

Спасибо заранее!

Edit: Требуя прав на root, я имею в виду, что они мне нужны, потому что в противном случае я получаю:

$ adb devices 
List of devices attached 
????????????    no permissions

, который не встречается как суперпользователь. Извините, если это было непонимание.

36 голосов | спросил Martin Fejes 7 32012vEurope/Moscow11bEurope/MoscowWed, 07 Nov 2012 03:39:51 +0400 2012, 03:39:51

6 ответов


44

Прочитайте следующее: Как настроить Android ADB?


Настройка доступа к USB

Во-первых, вам не нужны права root для запуска ADB, если вы соответствующим образом установили разрешения. На сайте AOSP приведены примеры Настройка USB-доступа для Pixel /Nexus. Вы можете использовать следующую схему для устройств, отличных от Nexus:

SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="xxxx", MODE="0600", OWNER="<username>"

Идентификатор поставщика и продукта можно получить с помощью lsusb и поиска для вашего устройства. (Примечание: устройство на самом деле является Galaxy Nexus.)

$ lsusb | grep -i samsung
Bus 002 Device 103: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II]

Итак, мое правило /etc/udev/rules.d/51-android.rules udev выглядит следующим образом:

# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="username"

Возможно, вы захотите повторить это для других состояний телефона, таких как fastboot, если необходимо. Чтобы изменения вступили в силу, перезагрузите udev (sudo udevadm control --reload) или перезагрузите (рекомендуется).

Создание доступных программ

Вместо изменения переменной пути я бы предложил добавить символическую ссылку на исполняемый файл либо в ~/bin/ (только для пользователя) или в /usr/local/bin/ (в системной системе).

mkdir ~/bin/
ln -s /opt/android-sdk-linux/platform-tools/adb ~/bin/
ответил LiveWireBT 7 32012vEurope/Moscow11bEurope/MoscowWed, 07 Nov 2012 05:26:30 +0400 2012, 05:26:30
29

Я столкнулся с той же проблемой с таблеткой из Китая (какой-то странный производитель).

В дополнение к файлу /etc/udev/rules.d/51-android.rules мне нужно было изменить ~/.android/adb_usb.ini.

Запустите ниже на терминале;

sudo gedit ~/.android/adb_usb.ini

и ваш файл adb_usb.ini должен выглядеть так:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
# ie 0x2207
0x<!!!Your Vendor ID here!!!>

Отключено и повторно подключено устройство, а также необходимо выполнить команды ниже на терминале;

adb kill-server

, а затем

adb start-server

И устройство было обнаружено.

ответил Uygar Y 5 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 05 Sep 2013 15:33:21 +0400 2013, 15:33:21
2

В моем случае вместо режима MTP некоторые смартфоны нуждались в настройке только в режиме PTP, в отличие от большинства устройств, которым нужен режим MTP, который будет обнаружен моей Android-студией (v1.5.1).

Поэтому не забудьте сначала попробовать оба режима MTP и PTP, не тратя время на более сложную конфигурацию ADP Unix и, возможно, навредить им.

В новых устройствах вы можете выбрать его непосредственно в настройках Dev, в то время как в более ранних версиях он находится в параметрах USB Connected в строке состояния.

Тем не менее, для меня новейшие устройства Sony Xperia от Z5 и выше не будут работать независимо от режима USB. Может быть, у меня Android Studio устарела или мне нужно копать и с Unix ADP Configurations.

ответил George Goodporter 6 FebruaryEurope/MoscowbMon, 06 Feb 2017 20:35:18 +0300000000pmMon, 06 Feb 2017 20:35:18 +030017 2017, 20:35:18
0

Выполните следующие действия:

  1. Установить андроидные vars

    Изначально перейдите в свой дом и нажмите Ctrl + H , он покажет вам, что скрытые файлы теперь ищут .bashrc, откройте его любым текстовым редактором, затем поместите строки ниже в конце файла:

    export ANDROID_HOME=/myPathSdk/android-sdk-linux
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    
  2. Перезагрузка
  3. Использование устройства для отладки

    Слушайте подключение:

    adb -a
    

    Подключите Android-устройство и авторизуйте его:

    cordova run android --device
    
ответил Vladimir Tamayo 16 J0000006Europe/Moscow 2016, 19:23:24
0

Настройка USB-доступа

Рекомендуемый подход - создать файл в /etc/udev/rules.d/51-android.rules.

Введите терминал:

wget -S -O - http://source.android.com/source/51-android.txt | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

Эти новые правила вступают в силу при следующем подключении устройства. Поэтому может потребоваться отключить устройство и подключить его обратно к компьютеру.

ответил Benny 7 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 07 Sep 2017 19:16:08 +0300 2017, 19:16:08
-1

Попробуйте выполнить эту команду: sudo tools/android update sdk --no-ui

SDK README:

  

Добро пожаловать в Android SDK!   Первоначально архив Android SDK содержит только базовые инструменты SDK. Оно делает   не содержат платформы Android или сторонних библиотек. Фактически, это   даже не имеет всех инструментов, необходимых для разработки приложения.   Чтобы начать разработку приложений, вы должны установить Platform-tools   и по крайней мере одну версию платформы Android, используя SDK Manager.   Платформенные инструменты содержат инструменты сборки, которые периодически обновляются для поддержки новых   функции на платформе Android (именно поэтому они отделены от базовых   SDK), включая adb, dexdump и другие.   Чтобы установить Platform-tools, платформы Android и другие надстройки, вы должны   имеют подключение к Интернету, поэтому, если вы планируете использовать SDK во время   в автономном режиме, обязательно загрузите необходимые компоненты в режиме онлайн.   Чтобы запустить SDK Manager, выполните программу «android».   Из командной строки вы также можете напрямую инициировать обновление   выполнение: tools/android update sdk --no-ui

ответил user121040 5 ThuEurope/Moscow2013-12-05T20:57:26+04:00Europe/Moscow12bEurope/MoscowThu, 05 Dec 2013 20:57:26 +0400 2013, 20:57:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132