Работа с Android-устройством по ADB(Android Debug Bridge) и в режиме FastBoot
Работа с 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 на аппарате:
Список команд 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 - Копировать файл/папку Android-устройство->ПК.
adb pull [ ] - Копировать PC->Android-устройство только новые файлы. Ключи: Не копировать, только создать список -l.
adb sync [ ] - Запуск упрощенного unix shell. Примеры приведены в следующем спойлере.
adb shell - Отправить команду в консоль эмулятора.
adb emu - Отправить приложение на устройство и установить его.
adb install [-l] [-r] [-s]
Например: adb install c:/adb/app/autostarts.apk
Ключи: Блокировка приложения -l. Переустановить приложение, с сохранением данных -r. Установить приложение на карту памяти -s. - Удаление приложения с устройства.
adb uninstall [-k]
Ключи: Не удалять сохраненные данные приложения и пользователя -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 [параметры]
Примеры работы по ADB:
Ниже перечисленные примеры можно вводить в командную строку. Для удобства их можно вписать в файл-сценария .cmd или .bat.
Удаление папки со всеми вложенными каталогами и файлами. Например всей музыки.
Информация о разделах внутренней памяти аппарата.
Информация о точках монтирования, общем и свободном пространстве на разделах.
Информация о разделении ROM-памяти на разделы.
Резервная копия определенного раздела.
Монтирование разделов /system и /data в режиме mod-recovery.
FastBoot — консольное приложение для ПК. Используется как правило для прошивки и аварийного восстановления работоспособности аппарата.
Список команд fastboot:
- Список присоединенных устройств в режиме fastboot.
fastboot devices - Прошивка файла .img в раздел устройства.
fastboot flash - Стирание раздела. Разделы: boot, recovery, system, userdata, radio.
fastboot erase - Прошивка из файла имя_файла.zip
fastboot update - Прошивка boot + recovery + system.
fastboot flashall - Показать переменные bootloader.
fastboot getvar - Отправить ядро (kernel) на устройство и запустить его из оперативной памяти, без прошивки.
fastboot boot [ ] - Отправить ядро (kernel) на устройство и прошить его.
fastboot flash:raw boot [ ] - Продолжить загрузку.
fastboot continue - Перезагрузить аппарат.
fastboot reboot - Перезагрузить аппарат в режим bootloader.
fastboot reboot-bootloader
Перед командами «fastboot» можно использовать ключи:
- -w стереть данные пользователя и кэш
- -s Указать серийный номер устройства.
- -p
Указать название устройства.
Указать размер страниц nand. По умолчанию 2048.
Примеры работы в режиме fastboot:
Прошивка модема. Переименовать файл модема в radio.img и положить его в папку C:\ADB\.
Восстановление прошивки из резервной копии.
Источник
Запуск android debug bridge
Platform-tools: r31.0.3
ADB: 1.0.41 (31.0.3-7562133)
Fastboot: 31.0.3-7562133
Make_f2fs: 1.14.0 (2020-08-24)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 01.08.2021
ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Официальная страница
ADB позволяет:
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s Команда посылается на устройство с указанным серийным номером:
adb -p Команда посылается на устройство с указанным именем:
Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb devices Список всех подсоединенных устройств.
adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
Если не задан ни один параметр, отключиться от всех активных соединений.
adb push Копировать файл/папку PC->девайс.
adb pull [ ] Копировать файл/папку девайс->PC.
adb sync [ ] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] Удаление приложения с устройства.
Ключи:
-k Не удалять сохраненные данные приложения и пользователя.
adb wait-for-device Ждать подключения устройства.
adb start-server Запустить службу/демон.
adb kill-server Остановить службу/демон.
adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.
adb get-serialno Получить серийный номер.
adb status-window Непрерывный опрос состояния.
adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.
adb reboot bootloader Перезагрузка в режим bootloader.
adb reboot recovery Перезагрузка в режим recovery.
adb root Перезапуск демона с правами root
adb usb Перезапуск демона, прослушивающего USB.
adb tcpip Перезапуск демона, прослушивающего порт TCP.
adb ppp [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
Параметры:
defaultroute debug dump local notty usepeerdns
FastBoot — консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash Прошивает файл .img в раздел устройства.
fastboot erase Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot [ ] Скачать и загрузить kernel.
fastboot flash:raw boot [ ] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s Указать серийный номер устройства.
-p
Указать название устройства.
-c Переопределить kernel commandline.
-i Указать вручную USB vendor id.
-b Указать в ручную базовый адрес kernel.
-n
Указать размер страниц nand. по умолчанию 2048.
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V — Verbose (Низший приоритет).
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
adb logcat *:W
Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»
Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Источник