2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Консольный Android: 50 команд ADB, о которых должен знать каждый

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

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

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

Введение в 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-сервером. Затем сервер устанавливает соединения со всеми работающими эмуляторами/устройствами.

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

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

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

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

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

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

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

  1. Обычно в системах Windows она может неявно установиться вместе с фирменными драйверами смартфона или планшета. Искать её обычно следует в папке Program Files в каталоге, имеющем название марки смартфона.
  2. Универсальным способом получения adb для пользователей всех операционных систем является установка утилиты через менеджер Android SDK.

Для этого нужно скачать сам архив 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;

  • Пользователи Ubuntu 12.10+ могут загрузить нужные утилиты прямо через менеджер пакетов системы. Утилита adb уже имеется в официальном репозитории этого дистрибутива. Установить нужно пакеты android-tools-adb и android-tools-fastboot .
  • Для полноценной работы в 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==»12d1″, ATTRS ==»1038″, MODE=»0666″, OWNER=»пользователь»

    $ sudo /etc/init.d/udev reload

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

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

    Работа с ADB

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

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

    List of devices attached
    4CA94Dxxxxx device

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

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

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

    $ adb reboot recovery

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

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

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

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

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

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

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

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

    Предупреждение

    К вашему сожалению или счастью представленные 4 способа получения S-OFF являются универсальными, поэтому один, два, а то и все четыре способа могут не сработать, это связана из-за универсальности, новых прошивок выпускаемых HTC на которых усилена защита и другие факторы. Выполняйте каждый способ 2 раза, чтобы убедиться что способ не рабочий (если с первого раза не сработал), после чего переходите к следующему способу. Воспользуйтесь списком S-OFF составленный пользователями сайта Android +1 (читайте ниже).

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector