Просмотров: 30245

Управляем ОС Android удаленно при помощи ADB


Управлять всеми аспектами мобильных устройств с операционной системой Android — памятью, файловой системой, установкой и удалением программ и т.д. — можно не только на самом мобильном устройстве, но и с персонального компьютера, подключив к нему через USB-шнур смартфон или планшет. Для этого к мобильному устройству часто прилагается специальное фирменное ПО.

Но не всегда такое фирменное ПО прилагается, например, для пользователей Linux/FreeBSD. Поэтому желательно хотя бы иметь представление об универсальном интерфейсе доступа к устройствам Android с персонального компьютера, который называется Android Debug Bridge (отладочный мост Android) или кратко — ADB.

Реализован этот универсальный интерфейс в виде консольной утилиты под одноимённым названием adb , которая имеется для всех популярных операционных систем и запускается из командной строки. Более подробно о том с чем её готовят и описано под катом.

os android adb debug bridge usb podkljuchenie linux sdk

Введение в ADB

Программа adb устанавливает связь между устройством и компьютером, позволяет посылать команды на устройство через USB-соединение и выполнять различные манипуляции с системой Android. Продвинутые пользователи сталкивались с ней при получении прав root , установке ClockworkMod Recovery.

Утилита является составной частью Android SDK, предназначенного для разработчиков. Также эту утилиту производитель смартфона может поставлять вместе с драйверами конкретного мобильного устройства. Но более подробно об установке утилиты чуть ниже.

Сначала перечислим основные возможности интерфейса ADB:

  • просмотр подключенных к ПК устройств Android;
  • просмотр лога системы Android;
  • копирование файлов с/на устройство Android;
  • установка и удаление приложений на устройстве Android;
  • очищать раздел data на устройстве Android;
  • запускать различные скрипты управления устройством Android.

Итак, повторюсь, что Android Debug Bridge (adb) — это универсальный инструмент, позволяющий управлять эмуляторами устройств и самими устройствами на базе Android. ADB — клиент-серверное приложение состоящее из 3-ех компонентов:

  • Клиент — запускается на машине разработчика. Клиент можно запустить из командной строки при помощи команд посылаемых adb. Другие инструменты Android вроде плагина ADT и DDMS тоже создают adb-клиенты;
  • Сервер — запускается на машине разработчика в виде фонового процесса. Сервер управляет соединениями между клиентами и adb-сервисом запущенным на эмуляторе или устройстве;
  • Сервис — фоновый процесс, который запускается на каждом эмуляторе или устройстве.
  • Инструмент adb можно найти в директории /platform-tools/ .

Клиент при запуске сначала проверяет, запущен ли adb-сервер. Если сервер не запущен, то клиент запускает его. Сервер при старте привязывается к 5037 TCP порту и слушает команды, посылаемые adb-клиентами. Все adb-клиенты используют 5037 порт для связи с adb-сервером. Затем сервер устанавливает соединения со всеми работающими эмуляторами/устройствами.

os android adb debug bridge usb podkljuchenie linux sdk

Сервер находит их путем сканирования нечетных портов в диапазоне 5555-5585. Если сервер находит adb-сервис на одном из этих портов, то устанавливает соединение с найденным портом. Обратим внимание на то, что каждый эмулятор/устройство использует пару, следующих друг за другом, портов: четный порт — для соединения с консолью, нечетный порт — для adb-соединений.

Для примера:

Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557


Как только сервер установил соединения со всеми эмуляторами, можно использовать adb-команды для контроля и доступа к каждому из этих эмуляторов. Поскольку сервер управляет соединениями со всеми эмуляторами/устройствами и обрабатывает команды от нескольких adb-клиентов, можно управлять любым эмулятором/устройством из любого клиента (или скрипта).

os android adb debug bridge usb podkljuchenie linux sdk

На всякий случай обратим внимание, что при разработке Android-приложений в среде Eclipse с установленным плагином ADT — не нужен доступ к adb из командной строки. Плагин ADT обеспечивает прозрачную интеграцию adb в Eclipse. Однако можно использовать adb и напрямую, например, для отладки.

Подготовка к работе

Для начала нужно установить саму консольную утилиту adb.

Существует несколько вариантов её получения:

  1. Обычно в системах Windows она может неявно установиться вместе с фирменными драйверами смартфона или планшета. Искать её обычно следует в папке Program Files в каталоге, имеющем название марки смартфона.
  2. Универсальным способом получения adb для пользователей всех операционных систем является установка утилиты через менеджер Android SDK.
  3. Для этого нужно скачать сам архив Android SDK и распаковать. Пользователям Windows в корневой папке архива нужно запустить SDK Manager.exe . Пользователям Linux в папке tools архива SDK нужно запустить исполняемый файл android . (В системе также должна быть установлена Java).

    В результате запустится менеджер компонентов Android SDK, через который нужно загрузить компоненты «Android SDK Tools» и «Android SDK Platform tools». Утилита adb должна появиться в каталоге platform-tools в папке разархивированного Android SDK;

  4. Пользователи Ubuntu 12.10+ могут загрузить нужные утилиты прямо через менеджер пакетов системы. Утилита adb уже имеется в официальном репозитории этого дистрибутива. Установить нужно пакеты android-tools-adb и android-tools-fastboot .

os android adb debug bridge usb podkljuchenie linux sdk

Для полноценной работы в Windows необходимо установить еще и драйвера конкретного устройства для поддержки интерфейса ADB по USB. Обычно Windows Vista и Windows 7 сами находят этот драйвер в Сети. После установки USB-драйверов для Windows в диспетчере устройств вы должны наблюдать: My Computer — Android Phone — Android ADB Interface. Если у вас вместо Android ADB Interface после подключения устройства светится желтый вопросительный знак, значит, драйвера установились некорректно.

Для пользователей же Linux/FreeBSD драйвера устанавливать не нужно, но надо написать правило для udev . Ниже приведена последовательность создания правила на примере Ubuntu.

Для этого сначала нужно узнать значения переменных idVendor и idProduct вашего мобильного устройств. Сделать это можно при помощи команды lsusb в терминале, подключив устройство через USB-шнур, в результате чего должна отобразиться информация примерно такого вида:

Bus 002 Device 006: ID 12d1:1038 Huawei Technologies Co., Ltd.

Здесь idVendor  — это шестнадцатеричные цифры после ID и до двоеточия. IdProduct  — это следующие четыре цифры после двоеточия.

После этого создаём файл /etc/udev/rules.d/51-android.rules с правами chmod 644 и со следующим содержанием (подставлять свои значения ID и пользователя):

SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct} =="1038", MODE="0666", OWNER="пользователь"

Далее выполняем:

$ sudo /etc/init.d/udev reload

В первом и втором случае получения adb очень желательно настроить переменные окружения, чтобы не вводить при запуске в консоли полный путь к установленной утилите. Настройка персонального компьютера на этом закончена. На мобильном устройстве должна быть включена отладка по USB: «Настройки — Приложения — Разработка — Отладка по USB». Подключите ваш телефон через кабель USB и НЕ МОНТИРУЙТЕ как SD!

Для получения абсолютно всех возможностей adb мобильное устройство должно уже иметь root , и также должен быть установлен пакет Busybox (имеется в Google Play). Но всегда следует помнить, что установка прав root в некоторых случаях может лишить гарантии на ваше устройств.

Вот теперь можно приступать к работе с adb.

Работа с ADB

Рассмотрим некоторые команды adb. Открываем консоль и запускаем команду:

$ adb devices

Данная команда выведет список устройств, подключенных к ПК. Должно появиться что-то вроде:

List of devices attached
4CA94Dxxxxx device


Если же утилита adb на запрос adb devices выдала что-то вроде "???????????? no permissions ", необходимо правильно настроить права.

Теперь просто перезагрузка устройства:

$ adb reboot

Быстрая перезагрузка устройства в режим Recovery:

$ adb reboot recovery

Установка с компьютера пакета apk :

$ adb install <путь_к_apk>

Удаление пакета:

$ adb uninstall

Просмотреть лог работы устройства:

$ adb logcat

После чего вы увидите динамический вывод системных сообщений Android. Если производить с устройством какие-либо манипуляции, это тут же будет отображаться через вывод соответствующих сообщений. Выход из режима отладки через комбинацию клавиш Ctrl+C.

И при помощи ADB можно запустить на мобильном устройстве самый настоящий шелл Unix:

$ adb shell

Запустив шелл, можно использовать все доступные на устройстве команды UNIX — cat, ls, df  и другие, а также запускать сценарии.

os android adb debug bridge usb podkljuchenie linux sdk

Если есть root и Busybox, то с мобильным устройством вообще можно делать всё, что захочется. Так что, используя ADB, следует быть осторожным.

~

Полный список всех ADB-команд можно получить, запустив adb без параметров. Более подробно про отладку с его помощью описано вот здесь. В каких-то нестандартных случаях может помочь заметка — Помогаем ADB (Android Debug Bridge) увидеть планшет. А вот, ещё более подробное руководство по установке adb, но на английском.

Набор других интересных специализированных программ для соединения стационарного компа и своих Anrdoid-устройств — можно найти в статье «Как сдружить Android-смартфон с десктопом?» + советую глянуть «Пять команда ADB, о которых должен знать каждый».

kv.by, 2012

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , ,
Эта запись опубликована: Среда, 21 ноября 2012 в рубрике Unix'овое.

2 комментария

Следите за комментариями по RSS
  1. Хорошо, полезно, информативно. В заметки. Спасибо.

  2. Спасибо, очень толково написано!

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз