Работа с Android-устройством по ADB(Android Debug Bridge) и в режиме FastBoot
ADB (Android Debug Bridge - Отладочный мост Android) - консольное приложение для PC, с помощью которого производится отладка Android устройств. Работает по принципу клиент-сервер.
Поставляется "adb.exe" в составе инструментария разработчика Android (Android SDK), который, в свою очередь входит в состав "Android Studio". Для того, чтобы не устанавливать громоздкий SDK в нижеприведенной инструкции предлагается минимальный комплект ( спасибо уважаемому @psihop) для работы с устройством по ADB.
При первом запуске "adb.exe" с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Основные возможности:
- Вывод списка подключенных к ПК устройств, работающих по протоколу ADB.
- Просмотр логов работы Android ОС.
- Копирование файлов с/на аппарат.
- Установка/удаление приложений.
- Создание и восстановление пользовательских данных.
- Выполнение unix-команд на устройстве. Запуск скриптов.
- Прошивка устройства.
- Управление сетевыми параметрами.
- ...
Установка и настройка ADB на ПК:
- Скачать и установить как обычную программу драйверы: Android_adb-USB_UnifL_Driver_v1.02.zip (Более новая версия может быть в отдельной теме)
- Скачать комплект для работы с устройством: ADB.rar
-
Распаковать архив в произвольную папку с латинским названием. Например: "c:\adb\". Полный путь до файлов комплекта НЕ должен содержать пробелов, спецсимволов, русских букв и т.п. В данном примере в папке "c:\adb\" должны быть 5 файлов:
- "adb.exe" - непосредственно сам ADB, с которым будем работать.
- "AdbWinApi.dll" - библиотека для работы ADB.
- "AdbWinUsbApi.dll" - библиотека для работы ADB.
- "fastboot.exe" - управление устройством переведенным в режим fastboot.
- "START.exe" - программа для облегченного запуска ADB.
Установка и настройка ADB на аппарате:
- Включить меню разработчика.
- Включить отладку по USB.
-
Система Windows автоматически установит драйверы на новое устройство.
Спойлер
- Запустить "c:\adb\START.exe", запустится командная строка Windows (cmd.exe - обработчик команд Windows).
-
В окне командной строки ввести: "adb devices" и нажать Enter. Если все настроено верно, будет выведен ответ:
adb devices List of devices attached HT16GV402012 device
- Если что-то настроено неверно, то в списке подключенных устройств (List of devices attached) будет пусто.
Список команд ADB (Полный список команд можно получить, изучив исходники):
-
Отправка команды только на устройство подключенное через USB. Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -d -
Отправка команды на устройство в эмуляторе. Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -e -
Отправка команды на устройство с указанным серийным номером.
adb -s <серийный_номер_устройства> -
Отправка команды на устройство с указанным именем. Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb -p <имя устройства или путь> -
Список всех подсоединенных устройств.
adb devices -
Подключится к устройству Android по протоколу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb connect <хост>[:<порт>] -
Отключится от устройства Android подключенного через TCP/IP порт 5555 (по умолчанию, если не задан). Если не задан ни один параметр, отключиться от всех активных соединений.
adb disconnect [<хост>[:<порт>]] -
Копировать файл/папку ПК->Android-устройство.
adb push <путь на PC> <путь на андроид> -
Копировать файл/папку Android-устройство->ПК.
adb pull <путь на андроид> [<путь на PC>] -
Копировать PC->Android-устройство только новые файлы. Ключи: Не копировать, только создать список -l.
adb sync [<каталог>] -
Запуск упрощенного unix shell. Примеры приведены в следующем спойлере.
adb shell <команда из списка shell> -
Отправить команду в консоль эмулятора.
adb emu <команда> -
Отправить приложение на устройство и установить его.
adb install [-l] [-r] [-s] <название_приложения.apk>
Например: adb install c:/adb/app/autostarts.apk
Ключи: Блокировка приложения -l. Переустановить приложение, с сохранением данных -r. Установить приложение на карту памяти -s. -
Удаление приложения с устройства.
adb uninstall [-k] <название_приложения.apk>
Ключи: Не удалять сохраненные данные приложения и пользователя -k. -
Ожидать подключения устройства.
adb wait-for-device -
Запустить службу/демон.
adb start-server -
Остановить службу/демон.
adb kill-server -
Получить статус устройства.
adb get-state
Значения статусов: offline (выключен), bootloader (режим загрузчика), device (режим штатной работы Android). -
Получить серийный номер.
adb get-serialno -
Непрерывный опрос состояния.
adb status-window -
Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на разделах system, data, cache и т.д.
adb remount -
Перезагрузка в режим bootloader.
adb reboot bootloader -
Перезагрузка в режим recovery.
adb reboot recovery -
Перезапуск демона с правами root.
adb root -
Перезапуск демона, прослушивающего USB.
adb usb -
Перезапуск демона, прослушивающего порт TCP.
adb tcpip <порт> -
Запуск службы через USB. Параметры: defaultroute debug dump local notty usepeerdns
adb ppp <tty> [параметры]
Примеры работы по ADB:
Ниже перечисленные примеры можно вводить в командную строку. Для удобства их можно вписать в файл-сценария .cmd или .bat.
Удаление папки со всеми вложенными каталогами и файлами. Например всей музыки.
adb shell rm -r /sdcard/music
Информация о разделах внутренней памяти аппарата.
adb shell cat /proc/mtd
Пример вывода:
dev: size erasesize name
mtd0: 000a0000 00020000 "misc"
mtd1: 00420000 00020000 "recovery"
mtd2: 002c0000 00020000 "boot"
mtd3: 0fa00000 00020000 "system"
mtd4: 02800000 00020000 "cache"
mtd5: 0af20000 00020000 "userdata"
Информация о точках монтирования, общем и свободном пространстве на разделах.
adb shell df
Пример вывода:
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 160664 0 160664 0% /dev
/dev/block/mtdblock4 40960 1292 39668 3% /cache
/dev/block/mtdblock3 256000 146888 109112 57% /system
/dev/block/mtdblock5 179328 125728 53600 70% /data
/dev/block/mmcblk0p1 15521280 10056880 5464400 65% /sdcard
Информация о разделении ROM-памяти на разделы.
adb shell cat /proc/partitions
Резервная копия определенного раздела.
adb shell su -c dd if=/dev/block/mmcblk0p9 of=/sdcard/factoryfs.img bs=4096
Монтирование разделов /system и /data в режиме mod-recovery.
adb shell mount -o rw /dev/block/mtdblock3 /system
adb shell mount -o rw /dev/block/mtdblock5 /data
FastBoot - консольное приложение для ПК. Используется как правило для прошивки и аварийного восстановления работоспособности аппарата.
Список команд fastboot:
-
Список присоединенных устройств в режиме fastboot.
fastboot devices -
Прошивка файла .img в раздел устройства.
fastboot flash <раздел> <файл> -
Стирание раздела. Разделы: boot, recovery, system, userdata, radio.
fastboot erase <раздел> -
Прошивка из файла имя_файла.zip
fastboot update <имя_файла.zip> -
Прошивка boot + recovery + system.
fastboot flashall -
Показать переменные bootloader.
fastboot getvar <имя_переменной> -
Отправить ядро (kernel) на устройство и запустить его из оперативной памяти, без прошивки.
fastboot boot <kernel> [<ramdisk>] -
Отправить ядро (kernel) на устройство и прошить его.
fastboot flash:raw boot <kernel> [<ramdisk>] -
Продолжить загрузку.
fastboot continue -
Перезагрузить аппарат.
fastboot reboot -
Перезагрузить аппарат в режим bootloader.
fastboot reboot-bootloader
Перед командами "fastboot" можно использовать ключи:
- -w стереть данные пользователя и кэш
- -s <серийный номер> Указать серийный номер устройства.
- -p <product> Указать название устройства.
- -c <cmdline> Переопределить kernel commandline.
- -i <vendor id> Указать вручную USB vendor id.
- -b <base_addr> Указать в ручную базовый адрес kernel.
- -n <page size> Указать размер страниц nand. По умолчанию 2048.
Примеры работы в режиме fastboot:
Прошивка модема. Переименовать файл модема в radio.img и положить его в папку C:\ADB\.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу...
pause
fastboot flash radio radio.img
fastboot reboot
Восстановление прошивки из резервной копии.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу...
pause
fastboot flash userdata data.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot reboot
Прошивка recovery. Распаковать образ recovery. Переименовать файл в recovery.img и положить его в папку C:\ADB\.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу...
pause
fastboot flash recovery recovery.img
fastboot reboot
Прошивка загрузочного раздела. Положить boot.img в папку C:\ADB\
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу...
pause
fastboot flash boot boot.img
fastboot reboot