Нужен компьютер или беспроводной adb
ADB (Android Debug Bridge) – консольная клиент-серверная программа, выполняет роль универсального интерфейса для управления Android-устройствами (или их эмуляторами).
Через ADB программы на компьютере можно взаимодействовать с телефоном или планшетом, например для синхронизации контактов, бэкапов данных или удаленного доступа к устройству.
Однако главное назначение ADB – это отладка приложений и сервисов при их разработке и тестировании. В этом случае взаимодействие с устройством осуществляется через консоль.
- просмотр подключенных устройств;
- просмотр логов;
- копирование файлов;
- установка и удаление приложений;
- скриншоты (и запись видео) экрана устройства;
- удаление и перепрошивка раздела data;
- запуск различных скриптов;
- управление сетевыми параметрами.
В состав ADB входит три компонента:
- клиент, который запускается на компьютере и отправляет команды. Его можно вызвать его из командной строки, введя команду adb;
- демон, который запускается как фоновый процесс на Android-устройстве и выполняет команды клиента;
- сервер, который работает в фоне на компьютере и управляет клиентом и демоном.
Как работает ADB:
- при запуске adb-клиент проверяет наличие запущенного процесса adb-сервера, и если нет – запускает его на компьютере;
- сервер устанавливает соединение на порту 5037 и слушает на нем команды от adb- клиентов;
- затем сервер устанавливает соединения со всеми работающими устройствами, сканируя нечетные порты в диапазоне от 5555 до 5585. Для каждого устройства используется пара последовательных портов – порт с четным номером для соединений консоли, порт с нечетным номером – для соединений adb;
- после того как сервер настроил соединения с устройствами, можно использовать команды adb для доступа к ним.
Подготовка к использованию
Прежде чем начать отладку на устройстве, необходимо выполнить несколько действий:
- установить ADB на компьютере (драйвер для вашего Android-устройства, а так же пакет Android SDK Platform Tools);
- на Android-устройстве включить отладку по USB, а затем подключить его к компьютеру кабелем (или настроить отладку по Wi-Fi).
Установка ADB
На устройствах под управлением Windows, установите драйвер для вашего Android-устройства.
Если драйвера для вашего устройства не нашлось на указанных страницах, попробуйте поискать его на сайте производителя.
Для MacOS и Linux установка драйверов не требуется.
Далее потребуется установить Android SDK Platform Tools. Если вы используете Android Studio , скорее всего SDK Platform Tools у вас уже установлен.
Установка ADB в Windows
Скачайте SDK Platform Tools и распакуйте папку platform-tools на диск (рекомендуется в С:\platform-tools).
В системную переменную Path добавьте путь к распакованной папке, для этого:
- перейдите в Панель управления – Система и безопасность – Система;
- выберите пункт Дополнительные параметры системы;
- нажмите кнопку Переменные среды;
- в поле Системные переменные выберите значение Path и нажмите кнопку Изменить, чтобы добавить новое значение;
- укажите путь к папке platform-tools содержащую adb;
- перезагрузите компьютер.
Установка ADB в Linux
Чтобы установить SDK Platform Tools в Ubuntu выполните следующую команду.
Либо вручную скачать SDK Platform Tools , распаковать на диск и добавить путь к распакованной папке с platform-tools в переменную среды $PATH.
Установка ADB в MacOS
Самый простой способ установить SDK Platform Tools на MacOS, используя Homebrew.
Либо установить вручную.
Сперва удалите предыдущую версию android-platform-tools, если такая имеется.
Перейдите в папку с загрузками, распакуйте скачанный архив и переместите файлы программы в удобное для вас место, например в домашнюю директорию.
Добавить путь к platform-tools в переменную среды $PATH.
Обновите bash профиль или перезапустите терминал.
Проверка ADB
Зайдите в консоль и введите следующую команду:
Если все сделали верно, в ответ в консоль будет выведена информация о версии ADB.
Как включить отладку по USB на Android
Отладка по USB включается в настройках системы в разделе Параметры разработчика.
В настройках должен появиться пункт меню Параметры разработчика, найдите в нем пункт Отладка USB и активируйте его.
На некоторых устройствах раздел с параметрами разработчика может располагаться в других разделах настроек или иметь другое название.
Отладка Android по Wi-Fi
Для начала разрешите на Android устройстве отладку по USB, как описано в предыдущем разделе.
Устройство и компьютер должны быть в одной Wi-Fi сети. Убедитесь, что ваш брандмауэр или антивирусное не блокирует adb соединения.
Подключите устройство к компьютеру с помощью USB кабеля.
Разрешите устройству принимать соединения TCP/IP через порт 5555. Для этого выполните в командной строке следующую команду.
Параметр -d отправит команду только на устройство подключенное через USB.
Если подключенных устройств несколько, возможно придется дополнительно указать серийный номер устройства.
Узнать серийный номер и получить информацию о подключенных устройствах можно следующей командой.
После того, как разрешите устройству принимать соединения TCP/IP через порт 5555, отсоедините кабель USB от компьютера.
Далее понадобится узнать ip-адрес вашего Android-устройства.
Подключитесь к устройству по его ip-адресу.
Убедитесь, что устройство появилось в списке.
Теперь можно выполнять отладку по Wi-Fi, без использования кабеля.
Если соединение ADB потеряно. Убедитесь, что устройство и компьютер все еще подключены к одной Wi-Fi сети. Переподключитесь, выполнив adb connect снова. Или, если не поможет, перезагрузите хост adb:
Затем повторите попытку.
После проделанных шагов вы сможете подключаться к устройству без использования USB-кабеля.
Команды ADB
Перед выполнением команд adb полезно знать, какие экземпляры устройств подключены к серверу adb. Список подключенных устройств можно посмотреть следующей командой.
В ответ adb выведет серийный номер, состояние и описание (параметр -l) подключенных устройств.
Если запущен только один эмулятор или подключено только одно устройство, команда adb отправится на это устройство по умолчанию. Если же запущено несколько эмуляторов и / или устройств, необходимо использовать параметры -d, -e или -s, чтобы указать устройство, на которое должна быть направлена команда.
Нижеприведенная команда отправится на устройство с указанным серийным номером.
Команда отправится только на устройство подключенное через USB. Выдаст ошибку, если подключено больше одного устройства.
Команда отправится на устройство в эмуляторе. Выдаст ошибку, если подключено больше одного эмулятора.
Подсоединиться к андроид хосту по протоколу TCP/IP (по умолчанию порт 5555, если не указан другой).
Отсоединиться от андроид подключенного через TCP/IP (по умолчанию порт 5555). Если не задан ни один параметр, отключиться от всех активных соединений.
Перезапуск демона с правами root.
В некоторых случаях может потребоваться остановить сервер adb, и перезапустить его, чтобы решить проблему (например, если adb не отвечает на команды).
Копировать файл или папку на устройство.
Копировать файл или папку с устройства на компьютер.
Копировать с компьютера на устройство только новые файлы. С ключом -l не копировать, только создать список.
Установить приложение на устройство.
Ключи:
-l блокировка приложения;
-r переустановить приложение, с сохранением данных;
-s установить приложение на карту памяти.
Чтобы удалить приложение с устройства используйте следующую команду.
Ключ -k означает, не удалять сохраненные данные приложения и пользователя.
Сделать скриншот экрана устройства.
Полученный скриншот можно сразу забрать на компьютер.
Для записи видео с экрана устройства используйте команду screenrecord.
или с параметрами
Чтобы остановить запись используйте комбинацию клавиш Control + C (Command + C на Mac). По умолчанию максимальный лимит для видео составляет 3 минуты.
ADB LogCat
или через shell
Для остановки сбора логов нажмите Ctrl+C на клавиатуре (Command + C на Mac).
Чтобы вывести лог на экран и выйти из logcat используйте параметр -d.
В записях лога в Android указан приоритет:
В дополнение к тэгу и приоритету в логе так же содержатся поля с метаданными. Формат можно изменять с помощью параметра -v, за которым следует один из нижеперечисленных форматов вывода:
Список параметров команды logcat:
ADB Shell
Android полноценная система Unix со своим Shell, к которому можно подключаться по adb.
Команда подключит ваш терминал к shell устройства и вы сможете взаимодействовать с ним используя Unix команды, cat, ls, df и другие, а также запускать скрипты.
Чтобы выполнить одну команду, не переходя в shell используйте команду оболочки следующим образом.
Команда выше выдаст информацию о количестве свободной памяти на устройстве.
Следующая команда откроет на устройстве экран с настройками.
А две последующие через ADB включают и отключают соответственно прокси в настройках сети.
Данные команды могут быть полезными, когда к настройкам устройства нет явного доступа, например на устройствах с голосовыми интерфейсами. Я часто пользуюсь ими при отладке Яндекс.Станции.
Полезные ссылки
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Хотя ADB обычно создается для разработчиков для тестирования приложений, он также весьма полезен для среднего потребителя. Например, он позволяет удалять вредоносное ПО с устройств Android без рута.
Точно так же вы можете заблокировать доступ приложений Android к буферу обмена. Проще говоря, в ADB есть много утилит, и теперь, когда вы можете запускать ADB из веб-браузера, пользователям стало проще запускать команды.
Тем не менее, некоторые пользователи могут искать способы упростить этот процесс. Что, если бы вы могли запускать команды ADB на устройстве Android без компьютера? Что ж, вы можете это сделать, и в этом руководстве я покажу вам, как запускать команды ADB без ПК.
Прежде чем мы начнем, имейте в виду, что вы должны быть на Android 11 или выше, чтобы иметь возможность использовать эту функцию беспроводной отладки ADB. Эта функция позволяет получить доступ к оболочке ADB локально без компьютера. Теперь, сказав все это, давайте перейдем к делу.
1. Чтобы запускать команды ADB на Android без компьютера, необходимо установить приложение LADB (2,99 доллара США) из Play Store. Это платное приложение, но оно того стоит.
2. Далее вам нужно включить беспроводную отладку. Для этого откройте «Настройки» и перейдите в раздел «О телефоне». Здесь нажмите на «Номер сборки» 7-8 раз непрерывно. Вы получите всплывающее уведомление: «Теперь вы разработчик». Теперь вернитесь и откройте настройки «Система». Здесь вы найдете «Параметры разработчика».
3. В разделе «Параметры разработчика» прокрутите вниз и включите «Отладка по беспроводной сети». Обязательно установите флажок «Всегда разрешать» в диалоговом окне. Если вы используете устройство OnePlus, вам также следует включить «Отладку беспроводной ADB».
4. Теперь откройте приложение LADB и переведите его в режим разделения экрана со страницей параметров разработчика. Вы можете нажать и удерживать приложение LADB в обзорном меню и выбрать опцию «Разделить экран».
5. Как только вы перейдете в режим разделенного экрана, нажмите «Беспроводная отладка» (не переключатель), а затем выберите опцию «Сопряжение устройства с кодом сопряжения».
6. Запишите здесь код сопряжения и номер порта рядом с IP-адресом. Введите эти данные в приложение LADB чуть выше. Теперь нажмите «Ok». Имейте в виду, что этот процесс должен выполняться в режиме разделенного экрана, чтобы информация о сопряжении не изменилась.
7. Теперь подождите, пока приложение LADB установит локальное соединение ADB. Вы можете выйти из режима разделенного экрана. Как только соединение будет установлено, вы получите уведомление с надписью «Беспроводная отладка подключена» и «Привет, мир» в приложении LADB.
8. Наконец, вы можете запускать команды ADB на своем устройстве Android без компьютера. Вам не нужно добавлять инициализаторы оболочки adb или adb в это приложение, поскольку вы уже находитесь в локальной оболочке ADB. Просто запустите рабочую часть команды, а затем нажмите кнопку «Enter» на клавиатуре. Например, здесь я предоставляю Tasker настройки защиты записи с помощью команды ADB.
Вот как вы можете отправлять команды ADB на телефоны Android, не требуя компьютера. Лучшая часть этого метода заключается в том, что вам не нужно связывать приложение LADB каждый раз, когда вы хотите его использовать.
Просто откройте приложение LADB, и оно автоматически восстановит соединение. Если у вас возникнут какие-либо проблемы, сообщите нам об этом в разделе комментариев.
Ниже приведены инструкции о том, как запустить adbWireless на вашем телефоне Android, чтобы подключить его по беспроводной сети с помощью adb.
Установка:
adbWireless требует, чтобы ваш телефон был рутирован. Если он еще не рутирован, вы можете получить рут, следуя нашему руководству по рутированию Android-устройства.
Чтобы установить adbWireless на свой рутированный телефон, просто найдите его в Android Market, возьмите его из AppBrain, используя ссылку, приведенную ниже, или отсканируйте этот QR-код.
Использование:
adbWireless упрощает процесс беспроводного подключения adb к вашему телефону, предоставляя вам как приложение, так и виджет. После того, как вы включили adbWireless, либо запустите приложение прямо из панели приложений вашего лаунчера, либо добавьте его в качестве виджета на домашний экран. В обоих случаях вы получите зеленую кнопку. После того, как вы нажмете на зеленую кнопку, она станет красной, чтобы показать, что он готов принимать соединения adb по беспроводной сети, а также предоставит вам IP-адрес и порт, которые вам потребуется ввести на вашем компьютере, чтобы иметь возможность подключиться к телефону.
После того, как adbWireless запущен и вы будете готовы принимать соединения, вот команда, которую вам нужно будет использовать на вашем компьютере в окне командной строки / терминала для подключения adb к вашему устройству:
Просто не забудьте заменить ip и порт на IP-адрес и порт вашего телефона, предоставленные adbWireless, как показано на скриншоте выше. Теперь вы готовы использовать команды adb со своим телефоном по беспроводной сети, не подключая его к компьютеру через USB. После подключения все команды работали так, как ожидалось в нашем тестировании.
Примечание: Хотя вариант виджета кажется более удобным, мы столкнулись с проблемами при его использовании. Он зависает, когда экран отключается, и вы нажимаете кнопку питания, чтобы включить его снова. Еще одна неприятность виджета заключается в том, что он отображает IP и порт только на короткое время.
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Настройки соединения, устройства. Драйверы.
Настраиваем телефон.
Для этого перейдите в: "Настройки" - "О телефоне" - 7 раз нажмите на номер сборки. В настройках для разработчиков активируйте отладку по USB.
При подключении USB-кабеля выбираем "Передача файлов".
Проверяем соединение на компьютере.
Перейдите в, раннее распакованную, папку с утилитами. В ней, в адресной строке папки, сверху, напишите - "cmd" (без кавычек) и нажмите Enter.
Проверьте доступность устройства и правильность установки драйверов. Для этого выполните adb или fastboot команду:
Если все хорошо, драйвера успешно установлены и телефон правильно подключен - вы увидите следующий ответ:
<серийный номер устройства> device
или
<серийный номер устройства> fastboot
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Так как adb/fastboot - консольные утилиты, работать с ними надо из командной строки.Перейдите в, раннее распакованную, папку с утилитами. В ней, в адресной строке папки, сверху, напишите - "cmd" (без кавычек) и нажмите Enter.
Далее работаем посредством нужных вам команд.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s <серийный_номер_устройства> Команда посылается на устройство с указанным серийным номером:
adb push <путь на PC> <путь на андроид> Копировать файл/папку PC->девайс.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu <команда> Послать команду в консоль эмулятора
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.
FastBoot - консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash <раздел> <файл> Прошивает файл .img в раздел устройства.
fastboot erase <раздел> Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update <имя_файла.zip> Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar <имя_переменной> Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим 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.
@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 Качаем бутанимацию. Переименовываем файл в bootanimation.zip и кладем его в папку ADB.
@echo off
adb remount
adb push bootanimation.zip /data/local @echo off
adb devices
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot oem writecid 11111111
fastboot reboot-bootloader
fastboot getvar cid
fastboot reboot Распаковываем образ рекавери. Переименовываем файл в recovery.img и кладем его в папку с ADB.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash recovery recovery.img
fastboot reboot Переименовываем кусок прошивки отвечающий за загрузку в boot.img и кладем его в папку ADB.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash boot boot.img
fastboot reboot
Если 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.
Контроль формата вывода лога
Просмотр альтернативного буфера лога
Просмотр stdout и stderr
Читайте также: