adb - Android Debug Bridge
SYNOPSIS
adb [-d|-e|-s serialNumber] command
[Описание]
ПРЕДУПРЕЖДЕНИЕ: это руководство может быть устаревшим, обратитесь к официальной документации [1].
Android Debug Bridge (adb) это продвинутая утилита командной строки, которая позволяет взаимодействовать с экземпляром эмулятора или подключенным Android-устройством(1). Это программа клиента и сервера, включающая 3 компонента:
• Клиент, который отправляет команды. Клиент запускается на машине разработчика. Вы можете запустить клиент в шелле с помощью команды adb command. Другие утилиты Android, такие как DDMS, также создают клиентов adb.
• Демон (daemon), который запускает команды на устройстве. Демон работает как фоновый процесс на каждом эмуляторе или экземпляре устройства.
• Сервер, который управляет коммуникацией между клиентом и демоном. Сервер работает как фоновый процесс на вашей машине разработчика.
Примечание (1): adb часто используется с многими встраиваемыми устройствами на основе Linux, например с платами разработчика LuckFox Pico [2].
Если на хосте разработчика запущен только один эмулятор, или к нему подключено только одно отлаживаемое устройство, то команда adb по умолчанию соединяется с этим устройством. Если запущено несколько эмуляторов и/или отлаживаемых устройств, то необходимо указывать опцию -d, -e или -s, чтобы указать конкретное целевое устройство, которому предназначена команда.
[Опции]
-a Направляет adb прослушивать все интерфейсы для соединения.
-d Направляет команду только подключенному устройству USB. Возвратит ошибку, если присутствует больше одного USB-устройства.
-e Направляет команду только запущенному эмулятору. Возвратит ошибку, если запущено больше одного эмулятора.
-s определенное_устройство
Направляет команду на устройство или эмулятор с указанным серийным номером или квалификатором. Отменяет действие переменной окружения ANDROID_SERIAL.
-p product_name или path
Просто название продукта, или относительный/абсолютный путь до выходной директории продукта наподобие out/target/product/sooner. Если -p не указан, то используется переменная окружения ANDROID_PRODUCT_OUT, которая должна быть абсолютным путем.
-H Имя хоста adb-сервера (default: localhost)
-P Порт adb-сервера (default: 5037)
[Команды]
adb devices [-l]
Выдаст список всех подключенных устройств. -l будет также выводить список квалификаторов устройства.
adb connect host[:port]
Подлючится к устройству через TCP/IP. По умолчанию используется порт 5555, если номер порта не указан.
adb disconnect [host[:port]]
Отключится от устройства TCP/IP. По умолчанию используется порт 5555, если номер порта не указан. Использование этой команды без дополнительных аргументов приведет к отключению от всех подключенных по TCP/IP устройств.
Команды устройства:
adb push local... remote
Копирует файл/директорию на устройство.
adb pull [-a] remote [local]
Копирует файл/директорию с устройства. -a означает компировать также метку времени и режим доступа.
adb sync [-l] [directory]
Копирует host -> device только если есть изменения. -l означает вывести список, но не копировать.
Если directory не указана, то будут обновлены разделы /system, /vendor (если присутствует), /oem (если присутствует) и /data.
Если это system, vendor, oem или data, то обновится только соответствующий раздел.
adb shell [-e escape] [-n] [-T|-t] [-x] [command]
Запустит удаленный шелл команд - интерактивный шелл, т. е. терминал с командной строкой на отлаживаемом устройстве, где пользователь может впоследствии вводить и выполнять команды.
• -e: выберет символ выхода (escape character), или none; default ~ • -n: не читать из stdin • -T: запретить выделение PTY • -t: принудительно выделить PTY • -x: запретить remote exit codes и разделение stdout/stderr
adb emu command
Запустит команду command консоли эмулятора.
adb logcat [filter-spec]
Просмотр лога устройства.
adb forward --list
Выведет список всех перенаправленных (forward socket) соединений. Формат списка строк: serial " " local " " remote ""
adb forward local remote
Перенаправит соединения socket.
Спецификация перенаправления это одно из следующего:
• tcp:port • localabstract:unix domain socket name • localreserved:unix domain socket name • localfilesystem:unix domain socket name • dev:character device name • jdwp:process pid (remote only)
adb forward --no-rebind local remote
То же самое, что и "adb forward local remote", но потерпит неудачу, если local уже перенаправлен.
adb forward --remove local
Удалит определенное соединение forward socket.
adb forward --remove-all
Удалит все forward socket соединения.
adb reverse --list
Выведет список всех обратных соединений (reverse socket connections) из устройства.
adb reverse remote local
Reverse socket connections.
Спецификация reverse это одно из следующего:
• tcp:port • localabstract:unix domain socket name • localreserved:unix domain socket name • localfilesystem:unix domain socket name
adb reverse --no-rebind remote local
То же самое, что и 'adb reverse remote local', но потерпит неудачу, если remote уже реверсировано.
adb reverse --remove remote
Удалит определенное reversed socket connection.
adb reverse --remove-all
Удалит все reversed socket connections из устройства.
adb jdwp
Выведет список идентификаторов процессов (PID), подключенных через транспорт JDWP.
adb install [-lrtsdg] file
Вытолкнет этот файл пакета в устройство и установит его.
• -l: перенаправить блокировку приложения (forward lock application). • -r: заменить существующее приложение. • -t: позволить тестовые пакеты. • -s: установить приложение на sdcard. • -d: позволить downgrade кода версии (только для отлаживаемых пакетов). • -g: предоставить все runtime разрешения.
adb install-multiple [-lrtsdpg] file...
Вытолкнет эти файлы пакета на устройство и установит их.
• -l: перенаправить блокировку приложения (forward lock application). • -r: заменить существующее приложение. • -t: позволить тестовые пакеты. • -s: установить приложение на sdcard. • -d: позволить downgrade кода версии (только для отлаживаемых пакетов). • -p: частичная установка приложения. • -g: предоставить все runtime разрешения.
adb uninstall [-k] package
Удалит этот пакет приложения из устройства. -k означает сохранить (keep) директории данных и кэша.
adb bugreport [zipfile]
Возвратит всю информацию из устройства, которая должна быть включена в багрепорт.
adb backup [-f file] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [packages...]
Запишет архив данных устройства в файл. Если опция -f не предоставлена, то данные запишутся в файл backup.ab текущей директории.
-apk | -noapk разрешит/запретит backup самих .apk в архиве; по умолчанию noapk. -obb | -noobb разрешит/запретит backup любых установленных apk expansion (aka .obb) файлов, связанных с каждым приложением; по умолчанию noobb. -shared | -noshared разрешит/запретит backup содержимого shared storage / SD card устройства; по умолчанию noshared. -all означает backup всех установленных приложений. -system | -nosystem переключит -all автоматически включать системные приложения; по умолчанию системные приложения включены. packages... это список приложений для backup. Если переданы флаги -all или -shared, то список package не обязателен. Приложения, явно указанные в командной строке, будут включены даже если -nosystem укажет их опустить.
adb restore file
Восстановит содержимое устройства из архивного backup-файла.
adb disable-verity
Запретит проверку dm-verity на сборках USERDEBUG.
adb enable-verity
Повторно разрешит проверку dm-verity на сборках USERDEBUG.
adb keygen file
Генерирует adb public/private ключ. Ключ private сохраняется в файл file, а ключ public сохраняется в файл file.pub. Любые существующие файлы будут перезаписаны.
adb help
Выведет сообщение подсказки.
adb version
Покажет номер версии.
Команды для использования в скриптах:
adb wait-for-[-transport]-state
Ожидать устройство в указанном состоянии: device, recovery, sideload или bootloader. Здесь transport: usb, local или any (default = any)
adb start-server
Убедиться в том, что запущен сервер.
adb kill-server
Прибить сервер, если он работает.
adb get-state
Напечатает: offline | bootloader | device
adb get-serialno
Напечатает серийный номер.
adb get-devpath
Напечатает путь до устройства.
adb remount
Перемонтирует разделы устройства /system, /vendor (если присутствует) и /oem (если присутствует) на read-write.
adb reboot [bootloader|recovery]
Перезагрузит устройство, опционально в загрузчик (bootloader) или программу восстановления (recovery program).
adb reboot sideload
Перезагрузит устройство в sideload-режим программы восстановления (требуется adb root).
adb reboot sideload-auto-reboot
Перезагрузка в sideload mode, затем перезагрузка автоматически после sideload, независимо от результата.
adb sideload file
Sideloads указанного пакета.
adb root
Перезапустит демона adbd daemon с привилегиями root.
adb unroot
Перезапустит демона adbd daemon без привилегий root.
adb usb
Перезапустит демона adbd на прослушивание USB.
adb tcpip port
Перезапустит демона adbd на прослушивание TCP по указанному порту.
Работа с сетью:
adb ppp tty [parameters]
Запустит PPP через USB.
parameters: например defaultroute debug dump local notty usepeerdns
Замечание: вы не должны автоматически запускать PPP соединение. tty ссылается на tty для потока PPP. Например dev:/dev/omap_csmi_tty1
Внутренняя отладка:
adb reconnect
Прибить текущее соединение со стороны хоста для повторного подключения.
adb reconnect device
Прибить текущее соединение от устройства для повторного подключения.
[Переменные окружения]
ADB_TRACE
Печатать отладочную информацию. Это список с разделителем запятой следующих значений 1 или all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
ANDROID_SERIAL
Серийный номер устройства, к которому надо подключаться. Если -s указана, то она имеет приоритет над этой переменной.
ANDROID_LOG_TAGS
Когда используется с опцией logcat, то печатаются только эти debug tags.
См. также https://developer.android.com/tools/help/adb.html
[Ссылки]
1. Android Debug Bridge (adb) site:developer.android.com. 2. LuckFox FAQ. |