Android Debug Bridge

Материал из Википедии — свободной энциклопедии
Данная страницане проверялась участниками с соответствующими правами.
Перейти к навигацииПерейти к поиску
Android Debug Bridge
Типутилита командной строки[вд]
Написана наC++
Операционные системыWindows, Linux и macOS
Репозиторийandroid.googlesource.com/…
ЛицензияApache License 2.0
Сайтdeveloper.android.com/st…
Логотип Викисклада Медиафайлы на Викискладе
Работа с 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[1][2][3]. Например, приложения дляAndroid можно сохранить с помощью команды резервного копирования в файл[4]. Он также включает поддержку протокола Java Debug Wire Protocol[5].

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

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

[править |править код]

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

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

Архитектура

[править |править код]

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

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

[править |править код]

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

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

[править |править код]

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

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

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

[править |править код]

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

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

Примечания

[править |править код]
  1. Lauren Darcey, Shane Conder. Android wireless application development. — Upper Saddle River, NJ: Addison-Wesley, 2012. —ISBN 978-0-321-81383-1, 978-0-321-81384-8. — [Архивировано 30 мая 2022 года.]
  2. Things You Can Do with Android's adb Command (англ.). dummies. Дата обращения: 30 мая 2022.
  3. Chuck Easttom. In-depth guide to mobile device forensics. — 2022. —ISBN 978-0-367-63300-4, 978-0-367-63298-4. — [Архивировано 30 мая 2022 года.]
  4. Jack Wallen. How to create a full backup of your Android device without root (амер. англ.). TechRepublic (6 марта 2015). Дата обращения: 30 мая 2022. Архивировано 24 января 2016 года.
  5. 1234Rajaram Regupathy. Unboxing Android USB: a hands-on approach with real World examples. — 2014. —ISBN 978-1-4302-6209-1.
  6. Ivan Morgillo, Stefano Viola. Learning Embedded Android N Programming. — Packt Publishing Ltd, 2016-07-29. — 282 с. —ISBN 978-1-78528-328-4. — [Архивировано 30 мая 2022 года.]
  7. Google releases Android SDK (амер. англ.). Macworld. Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.
  8. Turning it up to 11: Android 11 for developers (англ.). Android Developers Blog. Дата обращения: 30 мая 2022. Архивировано 17 сентября 2021 года.
  9. Behavior changes: Apps targeting Android 12 (англ.). Android Developers. Дата обращения: 30 мая 2022. Архивировано 24 мая 2022 года.
  10. Joshua J Drake, Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A Ridley. Android hacker's handbook (недоступная ссылка —история). — Indianapolis, IN: Wiley, 2014. —ISBN 978-1-118-60861-6, 978-1-118-92225-5, 978-1-306-63810-4.
  11. Tom Mendelsohn. Google plugs severe Android vulnerability that exposed devices to spying (амер. англ.). Ars Technica (9 января 2017). Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.
  12. Evan Schuman. This Vultur app takes malicious to the next level (англ.). Computerworld (4 августа 2021). Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.
Источник —https://ru.wikipedia.org/w/index.php?title=Android_Debug_Bridge&oldid=146935960
Категории:
Скрытые категории: