Читая статьи о перепрошивке и рутинге Android-устройств, вы наверняка встречали упоминание консольной команды adb в тексте. Этот инструмент очень популярен среди энтузиастов ОС Android и применяется почти во всех графических и консольных утилитах для рутинга, снятия защиты и других действий. Однако, далеко не каждый пользователь знаком с этим инструментом и не знает его полезнейших возможностей, таких как установка и удаление приложений, синхронизация папок между настольной машиной и смартфоном, снятие скриншотов, открытие доступа в интерет через смартфон и многих других.
ADB это протокол или, проще говоря, система связи между настольной машиной и смартфоном по USB-кабелю, которая изначально была разработана сотрудниками Google для отладки и выполнения сервисных задач над смартфоном. Другими словами это инструмент для разработчиков, который тем не менее имеет множество функций, которые могут быть полезны и обычному пользователю.
ADB состоит из двух компонентов: сервера, который работает на смартфоне, и клиентской программы, которую пользователь запускает на большом брате. Сам клиент представляет собой небольшую консольную команду, которую следует запускать либо в окне DOS в Windows, либо в эмуляторе терминала в Linux. Вся работа с ADB сводится примерно к следующему: с помощью клиента пользователь отдает команду, а смартфон ее выполняет.
Как пользоваться ADB
Перед тем как начать использовать ADB следует обзавестись клиентом. По умолчанию он распространяется в составе Android SDK, однако если вы не хотите устанавливать SDK, клиент можно получить и отдельно. Архив с клиентами для Windows, Mac и Linux можно получить, например, здесь. Просто распакуйте этот архив на диск C: в Windows или в домашний каталог в Linux. Если вы работаете в Windows не забудьте установить все необходимые драйверы (обычно они устанавливаются автоматически при первом подключении смартфона/планшета с помощью USB-кабеля).
Теперь подключите устройство к USB и включите на нем режим отладки (Настройки — Для разработчиков — Отладка по USB). Откройте консоль (Пуск — Выполнить — сmd — Enter в Windows), перейдите и наберите следующие команды для проверки успешности соединения ADB-клиента с сервером:
cd c:\adb_fastboot
adb-windows.exe devices
Если все в порядке на экран должно быть выведено что-то вроде таких строк:
List of devices attached
0146A0D016016010 device
Сразу рекомендую переименовать файл adb-windows.exe в adb.exe для удобства (в дальнейшем я буду использовать именно такой вариант названия, тем более что в SDK он такой).
Установка и удаление приложений
С помощью ADB достаточно удобно устанавливать и удалять приложения со смартфона/планшета. Для этого предусмотрены команды “adb install” и “adb uninstall”. Так, например, чтобы установить пакет на смартфон, выполните такую команду в той же консоли:
Чтобы установить приложение на карту памяти добавьте ключ -s:
adb install -s c:/пакет.apk
Для удаления приложения используйте такую команду:
Обратите внимание, что следует использовать системное имя приложения, которое можно узнать просмотрев информацию о нужном приложении на смартфоне, либо получить список всех установленных приложений выполнив такую команду:
И уже из него выбрать необходимое.
Копирование файлов и синхронизация каталогов
Кроме установки и удаления пакетов вы также можете перемещать файлы и целые каталоги между компьютером и картой памяти устройства. Так, например, чтобы переместить папку c:/music на карту памяти достаточно выполнить такую команду:
adb push c:/music /sdcard
А чтобы получить папку с фотографиями с карты памяти — такую:
adb pull /sdcard/DCIM/Camera c:/
Однако, самое полезное применение ADB это синхронизация папок между компьютером и смартфоном. Допустим у вас есть папка c:/music, в которую вы постоянно добавляете новую музыку и хотели бы чтобы добавленная недавно музыка перекочевала на смартфон без необходимости копирования всей музыки, половина которой уже есть на смартфоне. Нет ничего проще, воспользуйтесь синхронизацией:
adb sync c:/music /sdcard/Music
Выход в интернет через смартфон
Еще одна очень интересная функция ADB это возможность проброса сетевых портов или, говоря на человеческом языке, возможность сделать так, чтобы выход в интернет происходил через смартфон. Да, для этого есть функция WiFi hotspot и различные приложения вроде PDANet, однако метод с использованием ADB поможет в случае экстренной ситуации, когда под рукой кроме смартфона и ADB нет ничего.
Чтобы воспользоваться этой функцией запустите ADB в режиме проброса портов:
adb forward tcp:8080 tcp:8080
Затем установите на смартфон и запустите приложение Proxoid и настройте браузер настольной машины на использование прокси по адресу “localhost:8080”.
Это все. Теперь выход в интернет будет происходить через смартфон. Сразу оговорюсь, что HTTPS-сайты работать не будут, поэтому получить доступ, например, к Gmail не получиться.
Бэкап и восстановление приложений и настроек
Современные версии ADB кроме всего перечисленного поддерживают также функцию бэкапа и восстановления установленных приложений и их настроек, что может пригодится при обнолвении прошивки или при экспериментах. Воспользоваться функцией очень просто. Чтобы сделать бэкап всех приложений и настроек достаточно выполнить следующую команду:
adb backup -f c:\\backup -apk -all
Все настройки и приложения будут сохранены в файл c:\backup. Для его восстановления достаточно выполнить такую команду:
Другие функции
Что еще можно сделать с помощью ADB? Например, получить доступ к консоли Android:
Имеет смысл использовать только в том случае, если вы знаете что это такое.
С помощью ADB также можно принудительно перезагрузить устройство:
Чтобы перезагрузиться в консоль восстановления используйте такую команду:
ADB по сети
Сервер ADB может работать и в сетевом режиме, когда вместо USB-кабеля для доступа к устройству используется локальная WiFi-сеть. В целях безопасности в стандартных прошивках сетевой режим отключен, но в таких прошивках как CyanogenMod, AOKP и других его можно активировать через настройки. А если получить root то и в любой прошивке с помощью бесплатного приложения WiFi ADB. Просто установите его, нажмите кнопку “Turn On” и наберите в консоли Windows строку, которая появится на экране, например:
adb connect 192.168.0.101:5555
Далее можно использовать все стандартные команды ADB
Выводы
ADB очень мощный инструмент, а если в придачу к нему вы изучите консоль Android, то сможете делать со своим смартфоном все, что угодно. Кстати, чтобы не вбивать все указанные в статье команды в консоли, можно создать несколько скриптов (текстовых файлов с расширением .bat) и добавить в них нужные команды. Тогда для запуска команд придется просто кликнуть по скрипту.
Все способы:
- Шаг 1: Скачивание и установка
- Шаг 2: Запуск утилиты ADB
- Способ 1: «Командная строка» Windows
- Способ 2: Windows PowerShell
- Дополнительно. Подключение Android-устройства к ADB на ПК
- Вопросы и ответы: 3
Шаг 1: Скачивание и установка
Прежде чем запуск консольной утилиты ADB станет возможным, конечно же, необходимо загрузить и инсталлировать её на компьютер. В действительности, существует множество вариантов получения и развёртывания софта, который обеспечивает функционирование Android Debug Bridge на ПК под управлением Windows 10, а следующая инструкция демонстрирует, как это сделать задокументированным разработчиками технологии Android Debug Bridge, а значит, самым надёжным и эффективным способом.
Скачать SDK Platform Tools (ADB и Fastboot) с официального сайта
- Перейдите по представленной перед этой инструкцией ссылке. В результате откроется веб-страница с описанием и возможностью загрузки включающего ADB пакета SDK Platform Tools на интернет-ресурсе Android Developers от Google.
- Переместитесь в раздел веб-страницы «Downloads»,
щёлкните по имеющейся здесь ссылке «Download SDK Platform-Tools for Windows».
- Прокрутите информацию в отобразившемся поверх веб-страницы окне до конца,
установите отметку в чекбоксе «I have read and agree with the above terms and conditions».
- Нажмите на ставшую активной после выполнения предыдущего шага кнопку «Download Android SDK Platform-Tools for Windows».
- Если это предполагают настройки браузера, укажите (и запомните) путь сохранения предоставляемого сайтом ZIP-архива на диске компьютера
(по умолчанию будет скачан в системную библиотеку Win 10 «Загрузки»). Подтвердите инициацию получения пакета
и дождитесь окончания этого процесса.
- По завершении скачивания файла platform-tools_rВЕРСИЯ-windows.zip откройте содержащую его папку
в Проводнике Windows.
Читайте также: Запуск «Проводника» в ОС Windows 10
- В результате разархивации пакета SDK Platform Tools образуется директория, которая содержит вложенную папку «platform-tools» –
именно она и является целевой в нашем случае.
По сути, на этом получение утилиты ADB можно считать завершённым, её уже можно запускать из указанной папки средствами консоли Windows 10 одним из предложенных далее в этой статье способов. При этом, для удобства в дальнейшем, а также полного соответствия рекомендациям разработчиков Android Debug Bridge необходимо скопировать или переместить каталог «platform-tools»
в корень
системного диска ПК (С:).
Кроме прочего, каталог с утилитой ADB можно переименовать по собственному усмотрению (например, сократить наименование или как-то иначе, но не применяя кириллических символов). При таком подходе запомните присвоенное каталогу с утилитой ADB имя, и точно вводите его вместо
platform-tools
при выполнении дальнейших инструкций из этого материала.
Далее извлеките всё содержимое архива в отдельный каталог. (С этой целью кликните правой кнопкой мыши по наименованию пакета, выберите «Извлечь всё» в открывшемся контекстном меню, подтвердите действие).
Подробнее: Распаковка ZIP-архивов в ОС Windows 10
Входящие в комплект SDK Platform Tools утилиты (не только рассматриваемая в этой статье ADB, но также Fastboot) в случае с Windows 10 могут быть запущены и эффективно эксплуатироваться в классической «Командной строке», а также её более современном аналоге – консольной оболочке «PowerShell». Далее рассмотрим подробно, как используются оба указанных инструмента для решения нашей задачи.
Способ 1: «Командная строка» Windows
По сути, чтобы получить доступ к функциям утилиты ADB через «Командную строку» Windows, достаточно открыть во второй содержащий компоненты первой каталог («platform-tools»). Практически это реализуемо минимум двумя путями, вы можете использовать тот, который кажется более удобным.
Вариант 1: Консольная команда «cd»
Самый распространённый и привычный большинству метод запуска консольной утилиты ADB заключается в открытии приложения «Командная строка» и переходе через неё в папку с целевым софтом с помощью специализированной текстовой команды:
- Любым способом запустите «Командную строку» Виндовс 10. К примеру, и быстрее всего с этой целью можно задействовать оснастку «Выполнить»: нажмите «Windows» + «R» на клавиатуре, введите в поле «Открыть» отобразившегося окошка следующий текст:
cmd
Щёлкните по кнопке «ОK» мышкой или нажмите «Enter».
Подробнее: Открытие «Командной строки» в Windows 10
- Введите команду перехода в каталог утилиты ADB – она состоит из указания
cd
и затем полного пути к целевой директории на диске компьютера. То есть, если вы точно следовали рекомендациям выше в статье, команда будет следующей:cd C:\platform-tools
Написав команду, отправьте её на выполнение — для этого нажмите «Ввод» на клавиатуре.
- Фактически всё, далее можно приступать к отправке текстовых команд ADB, — утилита готова к их приёму и обработке. Чтобы удостовериться в том, что отладочный мост введён в эксплуатацию, а также для получения списка основных команд ADB, можно ввести в консоли и отправить на выполнение следующее указание:
adb.exe
Вариант 2: Средства Проводника Windows
Более удобный и часто выполнимый быстрее, нежели вышеописанный, подход к запуску утилиты АДБ в классической «Командной строке» эксплуатирует возможности системного файлового менеджера Виндовс 10:
- Откройте Проводник Windows 10, перейдите в каталог ADB («platform-tools»).
- Кликните левой кнопкой мыши в (важно!) свободной от надписей области поля, которое расположено в верхней части окна Проводника и отображает путь
к текущей открытой вами папке.
- С клавиатуры введите следующий текст:
cmd
- Нажмите «Enter» — в результате запустится «Командная строка» Windows c уже открытой в ней папкой «platform-tools».
На этом наша задача считается решённой, вы можете приступать к вводу в «Командную строку» и отправке на выполнение команд Android Debug Bridge.
Способ 2: Windows PowerShell
Запуск ADB через поставляемое в комплекте ОС Windows 10 средство PowerShell выполняется не намного сложнее, нежели при использовании классической «Командной строки», а практически реализуется одним из двух нижеописанных путей.
Вариант 1: Консольная команда «cd»
Основной вариант запуска Android Debug Bridge средствами PowerShell фактически повторяет таковой в «Командной строке», — необходимо запустить консоль, а затем с помощью специальной команды открыть в ней каталог с утилитой ADB и сопровождающими её файлами.
- Откройте консольную оболочку PowerShell. Как и классическую «Командную строку» в Windows 10 это средство можно запустить большим числом способов, а быстрее всего — из меню дополнительных действий кнопки «Пуск» на «Панели задач» операционки: кликните по последней правой кнопкой манипулятора и выберите «Windows PowerShell» в отобразившемся перечне.
Подробнее: Запуск «PowerShell» в ОС Windows 10
- Введите команду перехода в папку утилиты ADB, — её синтаксис аналогичен рассмотренному выше в этом материале указанию для классической «Командной строки»:
cd C:\platform-tools
Нажав «Ввод» на клавиатуре, отправьте указание на выполнение консолью.
- Собственно, всё — средство ADB готово к выполнению своего предназначения. Дальнейшие ваши действия двухвариантные:
- При запуске ADB-команд в Windows PowerShell по умолчанию перед ними необходимо прописывать префикс
./
. То есть, к примеру, чтобы вывести в консоли список основных команд ADB в текущем случае, необходимо отправить на выполнение следующее текстовое указание:./adb.exe
После написания команды и нажатия «Enter» получаем следующий результат:
- Если подставлять
./
перед каждой передаваемой средствами ПоверШелл через Андроид Дебаг Бридж командой вы не желаете, то можете перед началом работы открыть себе доступ к «классической» командной строке в современной консольной оболочке. Для этого запустите в PowerShell команду:cmd
Далее отправляйте указания ADB мобильному девайсу c ОС Android без префикса:
- При запуске ADB-команд в Windows PowerShell по умолчанию перед ними необходимо прописывать префикс
Вариант 2: Расширенное контекстное меню папки
Ещё один метод запуска ADB в консольной оболочке PowerShell реализуется средствами Проводника Windows 10, а его использование часто оказывается более удобным, нежели описанный выше подход.
- Перейдите в папку с утилитой ADB через Проводник Win 10.
- Нажмите «Shift» на клавиатуре компьютера и, удерживая эту клавишу, щёлкните правой кнопкой манипулятора по свободному от элементов (значков файлов) месту в демонстрирующей содержимое каталога «platform-tools» области окна Проводника.
- По результату вышеописанной манипуляции откроется расширенное контекстное меню папки (после этого можно прекратить воздействие на кнопку «Shift» клавиатуры). В меню выберите пункт «Открыть окно Power Shell здесь».
- Итогом манипуляций станет запуск приложения Windows Power Shell c уже открытым в нём каталогом «platform-tools». На этом наша задача считается решённой, приступайте к вводу и отправке на выполнение команд Android Debug Bridge.
(Принцип здесь тот же, что и при рассмотренном выше варианте запуска утилиты: либо предварительно запустите команду
cmd
, а затем отправляйте ADB-команды в их «стандартном» виде; либо подставляйте префикс./
перед каждым указанием).
Дополнительно. Подключение Android-устройства к ADB на ПК
Чтобы скачивание, развёртывание и запуск ADB в среде Windows 10 позволили достичь конечных целей своего осуществления, то есть вы получили возможность производить вмешательство в работу системного ПО управляемого ОС Android мобильного девайса с компьютера, чрезвычайно важно правильно подключить смартфон или планшет к консольной утилите. Полный алгоритм выполнения данной операции изложен ниже.
Скачать универсальные драйверы от Google для работы с Android-девайсами через ADB
- Прежде чем приступать к выполнению вмешательства в работу системного ПО смартфона или планшета под управлением ОС Android с компьютера через ADB, на мобильном устройстве необходимо активировать особый режим функционирования – «Отладка через USB».
Сделайте это в первую очередь, а подробные инструкции по решению данного вопроса, если они необходимы, вы обнаружите в статьях по следующим ссылкам:
Подробнее:
Как включить «Отладку по USB» на Android-девайсе
Активация режима «Отладка по USB» на смартфонах Xiaomi (Mi, Redmi, POCO) - Подсоедините Андроид-девайс с активированной «Отладкой по ЮСБ» к USB-порту компьютера кабелем.
- Далее, например из контекстного меню кнопки «Пуск» на «Панели задач» операционки, откройте «Диспетчер устройств» Windows 10.
- Убедитесь, что мобильное устройство определилось операционной системой правильно и для него загружен необходимый драйвер. В таком варианте «Диспетчер устройств» отображает категорию «Android Phone», и в ней — запись «Android Composite ADB Interface» (последняя не должна сопровождаться какими-либо отметками, типа восклицательного знака на жёлтом фоне).
Если с определением Android-девайса в «Диспетчере устройств» Windows 10 наблюдаются какие-либо проблемы, чаще всего их следует решать путём установки/переустановки ADB-драйвера.
Читайте также: Инсталляция драйверов для работы с Android-девайсами с ПК
Опять же, в большинстве случаев, самым правильным выбором драйвера для обеспечения сопряжения ПК и Андроид-устройства через АДБ будет универсальный компонент, доступный для скачивания на интернет-ресурсе «Android Developers»
(ссылка доступна перед настоящей инструкцией).
- Запустите утилиту ADB любым из предложенных выше в этом материале способом.
Напишите и отправьте на выполнение консолью Windows 10 следующую команду:
аdb devices
- Если сопряжение ПК и мобильного устройства через Android Debug Bridge осуществляется впервые, «Командная строка»/«PowerShell» в ответ на указание из предыдущего пункта инструкции выдаст следующее:
List of devices attached
ID_Android-устройства unauthorized
В таком случае, возьмите (не отсоединяя от компьютера) смартфон или планшет, разблокируйте его. Поставьте отметку «Всегда разрешать отладку с этого компьютера» в отображаемом на экране Android-девайса окне «Отладка по USB», а после этого коснитесь кнопки «Разрешить».
Далее перейдите к окну консоли с запущенной утилитой ADB на компьютере, повторите запуск команды
аdb devices
. - Получив в «Командной строке» или «PowerShell» ответ в виде строчки
ID_Android-устройства device
, вы можете переходить к непосредственному решению возлагаемых на ADB задач, — смартфон/планшет теперь подключён к утилите правильно и готов к выполнению её (а по сути – ваших) указаний.
Наша группа в TelegramПолезные советы и помощь
Это обзорная статья для таких же, как и я, которые начали программировать уже в тот момент, когда весь функционал командной строки обрел кнопочки в интерфейсе.
В этой инструкции хочу рассказать о командах adb
, которые использовать легче, чем делать то же самое через UI Android Studio или настройки Android.
Основная задача — показать возможности adb
, которые избавят от рутинных шагов при разработке/отладке. Например, позволят быстро переключать светлую тему на темную.
Рассмотрим те команды, которые действительно пригождаются хотя бы раз в пару дней. Для остального есть документация.
Что такое ADB
adb (Android Debug Bridge) — это программа для управления андроидом через командную строку.
Hidden text
https://developer.android.com/tools/adb — тут есть более правильное определение + объяснение, почему adb называют клиент-серверным приложением.
Сменить тему (светлая/темная)
// перейти на темную тему
adb shell cmd uimode night yes
// перейти на светлую тему
adb shell cmd uimode night no
Принудительная остановка приложения
adb shell am force-stop ru.test.app
Удалить кэш и данные приложения
adb shell pm clear
Включить/выключить Wi-Fi
adb shell svc wifi enable
adb shell svc wifi disable
Удалить файл
Без root-прав некоторые директории будут недоступны через adb
adb shell rm "/records/albums/music.mp3"
Отправить Intent
Пригождается, когда нужно сэмулировать Intent от системы:
adb shell am broadcast -a android.media.tv.action.INITIALIZE_PROGRAMS -n ru.app.test/ru.app.test.featureName.TestBroadcastReceiver
Отправить deeplink:
adb shell am start -a android.intent.action.VIEW -d "mydeeplink"
Или запустить Activity:
adb shell am start -n ru.test.app/.feature.main.MyActivity
Установить proxy ip
Если вы пользуетесь Charles/Proxyman или другой программой для работы с трафиком, то можете быстро установить proxy ip командой:
adb shell settings put global http_proxy 192.168.1.12:8888
Сбросить proxy ip:
adb shell settings put global http_proxy :0
Изменить плотность экрана
Удобно для тестирования UI на разных разрешениях:
adb shell wm density 160
например
adb shell wm density 160
Узнать, какая изначальная плотность экрана:
adb shell wm density
// Physical density: 440
// Override density: 160
Установить apk
adb install -d -r -g "C://downloads/.../test.apk"
аргументы (лишние убрать):
-
-r — сохранить данные приложения (например, информацию в shared preferences)
-
-g — выдать все разрешение, запрашиваемые в манифесте
-
-d — отключает проверку версии приложения (по умолчанию версия устанавливаемого приложения должна быть равна или больше версии установленного)
Подключение по Wi-Fi
Необходимо, чтобы компьютер и телефон находились в одной сети. На Android нужно включить «Отладку по Wi-Fi» в настройках разработчика.
adb connect ip:port
например:
adb connect 192.168.1.12
или
adb connect 192.168.1.12:5555
Список подключенных устройств и их ip
adb devices
Выбор определенного устройства
Если вы работаете с несколькими устройствами, то чтобы отправить любую команду на определенное устройство (а не получать ошибку List of devices attached
), можно передать аргумент -s ip
adb -s 192.168.1.12 uninstall ru.test.app
Заключение
Когда определите для себя топ удобных команд, можно сделать для них alias
(псевдонимы для длинных команд). Тогда использование adb
станет действительно удобнее, чем GUI
.
ADB (Android Debug Bridge)
ADB (Android Debug Bridge) is a versatile command-line tool that allows developers and power users to communicate with Android devices from a computer. It enables debugging, file transfer, app installation, shell access, and more.
📌 Features
- Connect and control Android devices via USB or Wi-Fi
- Install and uninstall applications
- Access the device shell for debugging
- Transfer files between a PC and an Android device
- Capture screenshots and screen recordings
- Reboot and recover device functions
- Bypass bloatware and uninstall system apps
🚀 Installation
Download ADB
You can download ADB directly from the following link:
Download ADB.zip
Windows
- Download the ADB Platform Tools from Google’s official site.
- Extract the ZIP file into a folder (e.g.,
C:\adb
). - Open Command Prompt and navigate to the folder:
- Test ADB installation by running:
Mac & Linux
- Open the terminal and install ADB using:
brew install android-platform-tools # For Mac (Using Homebrew) sudo apt install adb # For Linux (Debian-based)
- Verify installation:
🔧 Usage
Enable Developer Mode & USB Debugging
- Go to Settings > About Phone.
- Tap Build Number seven times to enable Developer Options.
- Go to Settings > Developer Options and enable USB Debugging.
Basic Commands
1️⃣ Check Connected Devices
2️⃣ Access Device Shell
3️⃣ Install APK
4️⃣ Uninstall App
adb uninstall com.example.app
5️⃣ Transfer Files
- Send file to device:
adb push file.txt /sdcard/
- Retrieve file from device:
adb pull /sdcard/file.txt .
6️⃣ Reboot Device
7️⃣ Disable or Remove System Apps (Caution ⚠️)
- Disable:
adb shell pm disable-user --user 0 com.android.example
- Uninstall:
adb shell pm uninstall --user 0 com.android.example
📜 License
This project is licensed under the MIT License.
🤝 Contribution
Feel free to open issues or submit pull requests if you have improvements or bug fixes.
🌟 Support
If you find this useful, don’t forget to star ⭐ the repository!
Happy debugging! 🛠️
From Wikipedia, the free encyclopedia
Android Debug Bridge
Starting the adb server in GNOME Terminal, which then enumerates the devices. After that, a shell is opened on the device being debugged to run the uname command. |
|
Original author(s) | |
---|---|
Stable release |
34.0.1 (March 2023) |
Repository | android.googlesource.com |
Written in | C++ |
Operating system | Windows, Linux, macOS |
Included with | Android SDK |
Type | Software development tool |
License | Apache License 2.0 |
Website | developer |
The Android Debug Bridge (commonly abbreviated as adb) is a programming tool used for the debugging of Android-based devices. The daemon on the Android device connects with the server on the host PC over USB or TCP, which connects to the client that is used by the end-user over TCP. Made available as open-source software under the Apache License by Google since 2007, its features include a shell and the possibility to make backups. The adb software is available for Windows, Linux and macOS. It has been misused by botnets and other malware, for which mitigations were developed such as RSA authentication and device whitelisting.
Features of adb include copying files from the host computer,[1] installing apps, viewing logcat output, getting a Unix shell,[2] and rebooting into Qualcomm EDL mode.[3] For example, Android applications can be saved by the command backup
to a file.[4] It also includes support for the Java Debug Wire Protocol.[5]
Some graphical interfaces have been made available. The graphical Android Device Monitor in Android Studio can be used for retrieving information from an Android device.[6]
Android’s method to install APK files on a device has been used as a way to sideload unofficial apps onto Windows Subsystem for Android[7] and Chrome OS’s Android virtual machine.[8]
Shizuku allows an Android phone to connect to its own ADB when connected to a wireless network. The application is available for free on the Google Play Store.[9]
Development history
[edit]
The Android Software Development Kit (SDK) was first released in 2007.[10] Since 2017, Google made it possible to download adb separately from the Android SDK.[11]
In 2015, Microsoft released an Android emulator that can connect to the adb client.[12] In 2016 for Android Studio 2.0 a 5x performance improvement was made for installing apps and pushing files through adb.[13] For easier usage of Android Things, a wrapper was made in 2017 around manual adb commands.[14] For Android 11 in 2020, Google added adb incremental installations.[15] In 2020, Wi-Fi adb was integrated into Android Studio for macOS.[16] In 2021 for Android 12, the adb backup
command was limited so that backing up user data from apps is opt-in using a per-app manifesto configuration[17] after being deprecated in Android 10 along with adb restore
.[18] Fuchsia will be backwards-compatible with adb. It will be replaced with fx and ffx.[19]
-
For enabling USB debugging on the Android device, it needs to be enabled in the «developer settings» window
-
After the device is connected to the host computer, the user needs to verify the RSA key fingerprint of the host computer
For Windows, the Android SDK contains the adb.exe binary that can be extracted and installed.[20] How-To Geek recommends adding the folder containing the binaries to the PATH environment variable.[21]
On Ubuntu, adb can be installed with the android-tools-adb
package.[22] For Debian, it has been recommended to also install the android-sdk-platform-tools-common
package next to the adb
package, which installs the udev rules which makes it possible to run the tool without root permissions.[23] For macOS and other Linux distributions, the platform tools can be downloaded and the PATH variable can be modified in bashrc.[24]
In Android 4.2.2 or later (API level 17), a dialog is shown with an RSA fingerprint that the user needs to accept. This protects against computers exploiting the debugging mechanism without consent of the device user.[25] Starting in Android 4.2, the developer settings are hidden by default. Pressing seven times on the build number in the about menu makes them visible to the user. After that, the USB debugging option can be enabled.[26] Some Android vendors have different procedures to enable it. For example, Huawei requires entering a pincode before adb can be enabled.
If the touchscreen of an Android device is broken, it can be possible to connect a mouse to the device using USB On-The-Go and enable USB debugging.[27][28]
The adb protocol can be transported over USB or over Wi-Fi through TCP. It uses a client-server architecture. There are two different protocols in use. The first is between the client and the server and the second is between the server and the daemon. The adb daemon is implemented in C and located in the Android user space. The daemon is facilitated by the Android USB framework, UsbDeviceManager
and UsbDebuggingManager
.[5]
Client ↔ server protocol
[edit]
The communication mode between the client and server is a TCP socket. The server listens on a port, to which the client has to send a request. The request contains a 4-byte initial field in ASCII and a payload. The payload starts with the word host, to indicate it should be sent to the server. The server can then reply with OKAY or FAIL to indicate the status, combined with an optional payload and length.[5]
Server ↔ daemon protocol
[edit]
The messages sent from the server consist of a 24-byte long header, with the following fields:[5]
- Command
- First argument
- Second argument
- Length of the payload, 0 or higher
- CRC-32 of the data payload
- Magic value, calculated through command XOR
0xFFFFFFFF
Up to Android 2.2, Android was vulnerable to the RageAgainstTheCage exploit. The adb daemon did not check for the return value of the setuid system call when dropping privileges. The exploit forks processes until it fails due to the exhaustion of process identifiers. When the daemon crashes and restarts, it cannot start a new process with dropped privileges and keeps running as root. Then adb provided a root shell.[29] In 2017, a security vulnerability was disclosed that exploited ADB to take over the onboard modem. The attack required adb to be already enabled and authorized, although some workarounds were available.[30]
Various families of malware such as ADB.Miner, Ares, IPStorm, Fbot and Trinity have scanned the internet for public availability of the adb interface and installed malware on those devices.[31] adb can also be used to remove malware, by booting into safe mode and running the adb uninstall
command.[32]
- Android recovery mode
- Fastboot
- ^ Darcey, Lauren (2012). Android wireless application development. Shane Conder (3rd ed.). Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-321-81383-1. OCLC 749852462. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ «Things You Can Do with Android’s adb Command». For Dummies. Archived from the original on 2018-05-15. Retrieved 2021-09-09.
- ^ EASTTOM, CHUCK (2021). An In-Depth Guide to Mobile Device Forensics. [S.l.]: CRC PRESS. p. 72. ISBN 978-0-367-63300-4. OCLC 1250310301. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ Jack Wallen (2015-03-06). «How to create a full backup of your Android device without root». Archived from the original on 2016-01-24. Retrieved 2016-01-29.
- ^ a b c d Regupathy, Rajaram (2014). Unboxing Android USB: a hands-on approach with real World examples. Berkeley, CA. ISBN 978-1-4302-6209-1. OCLC 880673864. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ Morgillo, Ivan; Viola, Stefano (2016). Learning embedded Android N programming: create the perfectly customized system by unleashing the power of Android OS on your embedded device. Birmingham, UK. p. 89. ISBN 9781785283284. OCLC 1020708322. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ «How to sideload Android apps on Windows 11». 23 January 2022.
- ^ «How to sideload apps to a Chromebook». 5 March 2023.
- ^ «User manual | Shizuku». shizuku.rikka.app. Retrieved 2024-07-19.
- ^ «Google releases Android SDK». Macworld. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ «Google makes ADB, fastboot, and other platform tools available without full SDK or Android Studio download». Android Police. 2017-01-05. Archived from the original on 2021-04-10. Retrieved 2021-09-09.
- ^ Vasile, Cosmin. «Microsoft Releases Android Emulator and It’s Supposed to Be Faster than Google’s». Softpedia. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ «Android Studio 2.0 — Beta». Android Developers Blog. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ «Android Things Developer Preview 6». Android Developers Blog. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ «Turning it up to 11: Android 11 for developers». Android Developers Blog. Archived from the original on 2021-09-17. Retrieved 2021-09-10.
- ^ «Announcing Android Studio Arctic Fox (2020.3.1) & Android Gradle plugin 7.0». Android Developers Blog. Archived from the original on 2021-09-12. Retrieved 2021-09-10.
- ^ «Behavior changes: Apps targeting Android 12 | Android 12 Beta». Android Developers. Archived from the original on 2021-09-28. Retrieved 2021-09-28.
- ^ «Google Considers Removing Android ADB Backup and Restore».
- ^ Bradshaw, Kyle (2022-08-26). «Google wants to make Fuchsia devices manageable with Android’s ADB tool». 9to5Google. Retrieved 2022-08-29.
- ^ Harwani, B. M. (2013). PhoneGap build: developing cross platform mobile applications in the cloud. Boca Raton. p. 38. ISBN 978-1-4665-8975-9. OCLC 862745697. Archived from the original on 2022-03-07. Retrieved 2022-01-29.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ Hoffman, Chris; Fedewa, Joe (4 September 2021). «How to Install and Use ADB, the Android Debug Bridge Utility». How-To Geek. Archived from the original on 2021-09-18. Retrieved 2021-09-09.
- ^ Smyth, Neil (2020). «7». Android Studio 4. 0 Development Essentials — Java Edition: Developing Android Apps Using Android Studio 4. 0, Java and Android Jetpack. Cary. ISBN 978-1-951442-21-7. OCLC 1190906409. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ «Debian — Details of package adb in bullseye». packages.debian.org. Archived from the original on 2021-09-08. Retrieved 2021-09-08.
- ^ «How to Install Android Debug Bridge (ADB) and Fastboot». Lifewire. Archived from the original on 2022-01-30. Retrieved 2022-01-18.
- ^ «Run apps on a hardware device». Android Developers. Archived from the original on 2021-09-08. Retrieved 2021-09-08.
- ^ Wallen, Jack. «How to enable Developer options in Android 4.2». TechRepublic. Archived from the original on 2021-09-09. Retrieved 2021-09-09.
- ^ Ogubuike, Udochi (2019-08-09). «How to enable USB debugging mode on Android». The Punch. Archived from the original on 2019-09-17. Retrieved 2021-09-09.
- ^ Aranzulla, Salvatore. «Come attivare debug USB». Salvatore Aranzulla (in Italian). Archived from the original on 2021-09-09. Retrieved 2021-09-09.
- ^ Drake, Joshua J. (2014). Android hacker’s handbook. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, IN: Wiley. p. 75. ISBN 978-1-118-60861-6. OCLC 875820167. Archived from the original on 2021-09-26. Retrieved 2021-09-26.
- ^ Mendelsohn, Tom (2017-01-09). «Google plugs severe Android vulnerability that exposed devices to spying». Ars Technica. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ Cimpanu, Catalin. «Android devices ensnared in DDoS botnet». ZDNet. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- ^ Schuman, Evan. «This Vultur app takes malicious to the next level». Computerworld. Archived from the original on 2021-09-10. Retrieved 2021-09-10.
- Official website
- «Using ADB and fastboot». LineageOS wiki. Retrieved 2023-05-02.
- «Android Debug Bridge». Arch Linux wiki. Retrieved 2023-05-02.
- «Android/adb — Gentoo Wiki». Gentoo Linux wiki. Retrieved 2023-05-02.
- «Android Debug Bridge». Android Wiki. Retrieved 2023-05-02.[dead link]