Interested Article - Android Debug Bridge

Работа с ADB в эмуляторе терминала GNOME

Android Debug Bridge (обычно сокращённо adb ) — это инструмент программирования , используемый для отладки устройств на базе Android . Daemon на устройстве Android подключается к серверу на хост-компьютере через USB или TCP , который подключается к клиенту, используемому конечным пользователем, через TCP. Доступно как программное обеспечение с открытым исходным кодом под лицензией Apache License от Google с 2007 года, функции включают оболочку и возможность делать резервные копии. Программное обеспечение adb совместимо с Windows , Linux и macOS . Он использовался не по назначению ботнетами и другим вредоносным программным обеспечением, для которого были разработаны средства защиты, такие как аутентификация RSA и белый список устройств.

Функции

Возможности adb включают копирование файлов с главного компьютера, установку приложений, просмотр вывода logcat, получение оболочки Unix и перезагрузку в режиме Qualcomm EDL . Например, приложения для Android можно сохранить с помощью команды резервного копирования в файл . Он также включает поддержку протокола Java Debug Wire Protocol .

Доступны некоторые графические интерфейсы. Графический монитор устройств Android в Android Studio можно использовать для получения информации с устройства Android .

История развития

Комплект для разработки программного обеспечения Android (SDK) был впервые выпущен в 2007 году. С 2017 года Google позволяет загружать adb отдельно от Android SDK .

В 2015 году Microsoft выпустила эмулятор Android, который может подключаться к клиенту adb. В 2016 году для Android Studio 2.0 производительность установки приложений и загрузки файлов через adb была увеличена в 5 раз. Для упрощения использования Android Things в 2017 году была создана оболочка для ручных команд adb. Для Android 11 в 2020 году Google добавила инкрементную установку adb. В 2020 году adb Wi-Fi был интегрирован в Android Studio для macOS . В 2021 году для Android 12 команда резервного копирования adb была ограничена, поэтому резервное копирование пользовательских данных из приложений осуществлялось с использованием конфигурации манифеста для каждого приложения .

Архитектура

Протокол adb можно передавать по USB или по Wi-Fi через TCP. Он использует клиент-серверную архитектуру. Используются два разных протокола. Первый — между клиентом и сервером, а второй — между сервером и доменом. Домен adb реализован на C и находится в пользовательском пространстве Android. Домен поддерживается инфраструктурой Android USB , UsbDeviceManager и UsbDebuggingManager .

Протокол клиент ↔ сервер

Режим связи между клиентом и сервером — TCP-сокет . Сервер прослушивает порт, на который клиент должен отправить запрос. Запрос содержит 4-байтовое начальное поле в ASCII и полезную нагрузку. Полезная нагрузка начинается со слова host, чтобы указать, что её следует отправить на сервер. Затем сервер может ответить OKAY или FAIL, чтобы указать статус в сочетании с дополнительной полезной нагрузкой и длиной.

Протокол сервера ↔ Daemon

Сообщения, отправляемые с сервера, состоят из заголовка длиной 24 байта со следующими полями:

  1. Команда
  2. Первый аргумент
  3. Второй аргумент
  4. Длина полезной нагрузки, 0 или выше
  5. CRC32 полезных данных
  6. Магическое значение, рассчитанное с помощью команды XOR 0xFFFFFFFF

Безопасность

До Android 2.2 Android был уязвим для эксплойта RageAgainstTheCage. Демон adb не проверял возвращаемое значение системного вызова setuid при сбросе привилегий. Эксплойт разветвляет процессы до тех пор, пока не произойдёт сбой из-за исчерпания идентификаторов процессов. Когда демон аварийно завершает работу и перезапускается, он не может запустить новый процесс с утраченными привилегиями и продолжает работать от имени пользователя root. Затем adb предоставил корневую оболочку .

В 2017 году была обнаружена уязвимость в системе безопасности, которая использовала ADB для захвата встроенного модема. Атака требовала, чтобы adb был уже включён и авторизован, хотя были доступны некоторые обходные пути . Различные семейства вредоносных программ, такие как ADB. Miner, Ares, IPStorm, Fbot и Trinity, сканировали Интернет на наличие общедоступного интерфейса adb и устанавливали вредоносные программы на эти устройства. adb также можно использовать для удаления вредоносного ПО, загрузившись в безопасном режиме и выполнив команду удаления adb .

Примечания

  1. Lauren Darcey, Shane Conder. . — Upper Saddle River, NJ: Addison-Wesley, 2012. — ISBN 978-0-321-81383-1 , 978-0-321-81384-8. 30 мая 2022 года.
  2. (англ.) . dummies . Дата обращения: 30 мая 2022.
  3. Chuck Easttom. . — 2022. — ISBN 978-0-367-63300-4 , 978-0-367-63298-4. 30 мая 2022 года.
  4. Jack Wallen. (амер. англ.) . TechRepublic (6 марта 2015). Дата обращения: 30 мая 2022. 24 января 2016 года.
  5. Rajaram Regupathy. . — 2014. — ISBN 978-1-4302-6209-1 .
  6. Ivan Morgillo, Stefano Viola. . — Packt Publishing Ltd, 2016-07-29. — 282 с. — ISBN 978-1-78528-328-4 . 30 мая 2022 года.
  7. (амер. англ.) . Macworld . Дата обращения: 30 мая 2022. 10 сентября 2021 года.
  8. (англ.) . Android Developers Blog . Дата обращения: 30 мая 2022. 17 сентября 2021 года.
  9. (англ.) . Android Developers . Дата обращения: 30 мая 2022. 24 мая 2022 года.
  10. Joshua J Drake, Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A Ridley. . — Indianapolis, IN: Wiley, 2014. — ISBN 978-1-118-60861-6 , 978-1-118-92225-5, 978-1-306-63810-4.
  11. Tom Mendelsohn. (амер. англ.) . Ars Technica (9 января 2017). Дата обращения: 30 мая 2022. 10 сентября 2021 года.
  12. Evan Schuman. (англ.) . Computerworld (4 августа 2021). Дата обращения: 30 мая 2022. 10 сентября 2021 года.
Источник —

Same as Android Debug Bridge