Блог программиста
не только о программировании

Настройка ADB в Linux
28.03.2016 15851

adn+linux

Небольшой мануал для тех, кто хочет подготовить свою linux-машину для работы с ADB. Почему небольшой? Потому что настройка будет намного более простой, чем в Windows. Не нужно скачивать дополнительные драйвера, все что Вам потребуется это компьютер и устройство, подключенное по USB к компьютеру. Подробности под катом.

Режим разработчика

Для начала необходимо активировать отладку по USB в режиме разработчика на Вашем android-устройстве. Делается это через настройки. Как правило пункт меню находится в разделе System, если его нет – значит он скрыт.

developer_options

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

enable_usb_debug

После чего заходим в него и активируем отладку по USB. На этом настройка устройства закончилась.

usb_debug

Настройка ADB

Открываем терминал, заходим из под root. Далее необходимо установить ADB на компьютер. Делается это следующими командами:

add-apt-repository universe
apt-get update
apt-get install android-tools-adb android-tools-fastboot

ADB установлен в систему. Теперь необходимо разрешить пользователю системы работать с устройством. Для этого необходимо настроить udev. Разделение устройств происходит по параметру VID (Vendor ID). Они имеются у каждого устройства, подключенного по USB. Чтобы их узнать, запустите в терминале lsusb, затем подключите устройство к компьютеру и запустите lsusb снова.

root@vpc:~# lsusb
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 09da:9090 A4 Tech Co., Ltd XL-750BK Laser Mouse
Bus 001 Device 002: ID 046e:550f Behavior Tech. Computer Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@vpc:~# lsusb
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 17ef:75b0 Lenovo
Bus 001 Device 003: ID 09da:9090 A4 Tech Co., Ltd XL-750BK Laser Mouse
Bus 001 Device 002: ID 046e:550f Behavior Tech. Computer Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Найдите отличия между выводом – это и будет ваше android-устройство. Значение ID x:y где x – VID. Параметры указаны в шестнадцатеричной системе счисления. Запоминаем это значение. По нему и будет даваться доступ к устройству для пользователя. Запускаем текстовый редактор из консоли с созданием нового файла:

gedit /etc/udev/rules.d/51-android.rules

Вместо gedit подставьте свой текстовый редактор. Добавляем строчку:

SUBSYSTEM=="usb", SYSFS{idVendor}=="vid", MODE="0666", OWNER="username"

Вместо vid подставляем свое значение, вместо username – имя текущего пользователя (под которым создана сессия). Сохраняем файл, закрываем редактор. Перезапускаем сервис udev

service udev restart

Проверка

При подключенном устройстве запускаем команду adb devices. Если настройка правильная, Вы увидите список доступных устройств:

root@vpc:~# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
Medfield0D975C46 device

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

До новых встреч!

Категории Common

  • Евгений:

    Эх, все хорошо, устройство нашлось, только device offline…

    • admin:

      Вариант 1: обновить версию ADB, если подключения не было изначально.
      Вариант 2: полностью настроить подключение заново (удалить драйвера, ключи, выключить/включить режим отладки на устройстве). Вот подробности (на английском) http://forum.xda-developers.com/showthread.php?t=2247471

  • Артем:

    Это все здорово, но у меня
    фев 01 12:04:08 a-Name systemd[1]: Stopped udev Kernel Device Manager.
    фев 01 12:04:08 a-Name systemd[1]: Starting udev Kernel Device Manager…
    фев 01 12:04:08 a-Name systemd-udevd[30005]: unknown key ‘SYSFS{idVendor}’ in /etc/udev/rules.d/51-android.rules:1
    фев 01 12:04:08 a-Name systemd-udevd[30005]: invalid rule ‘/etc/udev/rules.d/51-android.rules:1’
    фев 01 12:04:08 a-Name systemd[1]: Started udev Kernel Device Manager.

  • lsusb выдал такой номер
    Bus 002 Device 016: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
    в настройке добавил такую запись
    SUBSYSTEM==»usb», «ATTR{idVendor}==»04e8″, ATTR{idProduct}==»6860″, MODE=»0666″, OWNER=»testuser»

    все работает,centos7

  • Тимофей:

    Да все бы хорошо, да вот у планшета который я хочу подключить для отладки отсутствует тачскрин, управление производится ото мышью, и вот вытаскивают мышку вставляют кабель от компа, на планшета не получается дать разрешения на связь адб с компом.

  • admin:

    можно попробовать использовать разветвитель либо adb по wifi

  • AndraxBoy:

    root@Laptop-Kali:~# adb devices
    List of devices attached
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    cc2adc77 unauthorized
    Что это?

    • admin:

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

Добавить комментарий

Ваш адрес email не будет опубликован.