Мост отладки Android
Оригинальный автор(ы) | |
---|---|
Стабильная версия | 34.0.1 (март 2023 г.) |
Репозиторий | android.googlesource.com |
Написано в | С++ |
Операционная система | Виндовс, Линукс, МакОС |
Входит в комплект | Android SDK |
Тип | Инструмент разработки программного обеспечения |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | разработчик |
Android Debug Bridge (обычно сокращенно adb ) — это инструмент программирования , используемый для отладки устройств на базе Android . Демон , который соединяется с на устройстве Android соединяется с сервером на главном компьютере через USB или TCP клиентом, который используется конечным пользователем, через TCP. Доступен как программное обеспечение с открытым исходным кодом по лицензии Apache от Google с 2007 года. Его функции включают оболочку и возможность создания резервных копий. Программное обеспечение adb доступно для Windows , Linux и macOS . Он использовался ботнетами и другими вредоносными программами не по назначению , для чего были разработаны средства защиты, такие как аутентификация RSA и внесение в белый список устройств .
Особенности [ править ]
Возможности adb включают копирование файлов с главного компьютера, [1] установка приложений, просмотр вывода logcat, получение оболочки Unix , [2] и перезагрузка в режиме Qualcomm EDL . [3] Например, приложения Android можно сохранить командой backup
в файл. [4] Он также включает поддержку протокола Java Debug Wire . [5]
некоторые графические интерфейсы Доступны . Графический монитор устройств Android в Android Studio можно использовать для получения информации с устройства Android. [6]
Метод Android для установки APK-файлов на устройство использовался как способ загрузки неофициальных приложений в подсистему Windows для Android. [7] и виртуальная машина Android в Chrome OS. [8]
История развития [ править ]
Комплект разработки программного обеспечения Android (SDK) был впервые выпущен в 2007 году. [9] С 2017 года Google предоставил возможность скачивать adb отдельно от Android SDK. [10]
В 2015 году Microsoft выпустила эмулятор Android, который может подключаться к клиенту adb. [11] В 2016 году для Android Studio 2.0 была повышена производительность в 5 раз при установке приложений и передаче файлов через adb. [12] Для упрощения использования Android Things в 2017 году была создана оболочка для ручных команд adb. [13] Для Android 11 в 2020 году Google добавил инкрементную установку adb. [14] В 2020 году Wi-Fi adb был интегрирован в Android Studio для macOS. [15] В 2021 году для 12 Android adb backup
команда была ограничена, поэтому резервное копирование пользовательских данных из приложений включается с использованием конфигурации манифеста для каждого приложения. [16] после того, как он устарел в Android 10 вместе с adb restore
. [17] Fuchsia будет обратно совместима с adb. Он будет заменен на fx и ffx. [18]
Настройка [ править ]
Главный компьютер [ править ]
Для Windows Android SDK содержит двоичный файл adb.exe, который можно извлечь и установить. [19] How-To Geek рекомендует добавить папку, содержащую двоичные файлы, в переменную среды PATH . [20]
В Ubuntu adb можно установить с помощью android-tools-adb
упаковка. [21] Для Debian рекомендуется также установить android-sdk-platform-tools-common
пакет рядом с adb
пакет, который устанавливает правила udev , которые позволяют запускать инструмент без прав root . [22] Для macOS и других дистрибутивов Linux можно загрузить инструменты платформы и изменить переменную PATH в bashrc . [23]
Android-устройство [ править ]
В Android 4.2.2 или более поздней версии ( уровень API 17 ) отображается диалоговое окно с отпечатком пальца RSA , который пользователь должен принять. Это защищает от использования компьютерами механизма отладки без согласия пользователя устройства. [24] Начиная с Android 4.2 настройки разработчика по умолчанию скрыты. Нажатие семь раз на номер сборки в меню «О программе» делает их видимыми для пользователя. После этого можно включить опцию отладки по USB. [25] У некоторых поставщиков Android есть разные процедуры для его включения. Например, Huawei требует ввода пин-кода, прежде чем можно будет включить adb.
Если сенсорный экран устройства Android сломан, можно подключить мышь к устройству с помощью USB On-The-Go и включить отладку по USB. [26] [27]
Архитектура [ править ]
Протокол adb может передаваться через USB или через Wi-Fi через TCP . Он использует архитектуру клиент-сервер . Используются два разных протокола. Первый — между клиентом и сервером, второй — между сервером и демоном. Демон adb реализован на языке C и расположен в пользовательском пространстве Android. Демон поддерживается платформой Android USB, UsbDeviceManager
и UsbDebuggingManager
. [5]
Протокол клиента ↔ сервера [ править ]
Режим связи между клиентом и сервером — TCP-сокет. Сервер прослушивает порт, на который клиент должен отправить запрос. Запрос содержит 4-байтовое начальное поле в формате ASCII и полезную нагрузку. Полезная нагрузка начинается со слова хост, указывающего на то, что ее следует отправить на сервер. Затем сервер может ответить OKAY или FAIL, чтобы указать статус в сочетании с необязательной полезной нагрузкой и длиной. [5]
Сервер ↔ протокол демона [ править ]
Сообщения, отправляемые с сервера, состоят из 24-байтового заголовка со следующими полями: [5]
- Команда
- Первый аргумент
- Второй аргумент
- Длина полезной нагрузки, 0 или выше
- CRC-32 полезных данных
- Магическое значение, рассчитанное с помощью команды XOR
0xFFFFFFFF
Безопасность [ править ]
До версии Android 2.2 Android был уязвим для RageAgainstTheCage эксплойта . adb Демон не проверял возвращаемое значение setuid системного вызова при удалении привилегий . Эксплойт разветвляет процессы до тех пор, пока не произойдет сбой из-за исчерпания идентификаторов процессов . Когда демон выходит из строя и перезапускается, он не может запустить новый процесс с утраченными привилегиями и продолжает работать от имени пользователя root. Затем adb предоставил корневую оболочку. [28] В 2017 году была обнаружена уязвимость безопасности, которая использовала ADB для захвата встроенного модема . Для атаки требовалось, чтобы adb был уже включен и авторизован, хотя были доступны некоторые обходные пути. [29]
Различные семейства вредоносных программ, такие как ADB.Miner, Ares, IPStorm, Fbot и Trinity, сканировали Интернет на наличие общедоступного интерфейса adb и устанавливали вредоносное ПО на эти устройства. [30] adb также можно использовать для удаления вредоносного ПО , загрузившись в безопасный режим и запустив adb uninstall
команда. [31]
См. также [ править ]
Ссылки [ править ]
- ^ Дарси, Лорен (2012). Разработка беспроводных приложений для Android . Шейн Кондер (3-е изд.). Река Аппер-Сэддл, Нью-Джерси: Аддисон-Уэсли. ISBN 978-0-321-81383-1 . OCLC 749852462 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
- ^ «Что можно сделать с помощью команды adb в Android» . Для чайников . Архивировано из оригинала 15 мая 2018 г. Проверено 9 сентября 2021 г.
- ^ ИСТТОМ, ЧАК (2021). Подробное руководство по криминалистике мобильных устройств . [Sl]: CRC PRESS. п. 72. ИСБН 978-0-367-63300-4 . OCLC 1250310301 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
- ^ Джек Уоллен (06 марта 2015 г.). «Как создать полную резервную копию вашего Android-устройства без рута» . Архивировано из оригинала 24 января 2016 г. Проверено 29 января 2016 г.
- ^ Jump up to: Перейти обратно: а б с д Регупатия, Раджарам (2014). Распаковка Android USB: практический подход с примерами из реальной жизни . Беркли, Калифорния. ISBN 978-1-4302-6209-1 . OCLC 880673864 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Морджилло, Иван; Виола, Стефано (2016). Изучение программирования для встроенного Android N: создайте идеально настраиваемую систему, раскрыв возможности ОС Android на встроенном устройстве . Бирмингем, Великобритания. п. 89. ИСБН 9781785283284 . OCLC 1020708322 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ «Как загрузить неопубликованные приложения Android в Windows 11» . 23 января 2022 г.
- ^ «Как загрузить приложения на Chromebook» . 5 марта 2023 г.
- ^ «Google выпускает Android SDK» . Макмир . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Google делает ADB, fastboot и другие инструменты платформы доступными без полной загрузки SDK или Android Studio» . Андроид Полиция . 05.01.2017. Архивировано из оригинала 10 апреля 2021 г. Проверено 9 сентября 2021 г.
- ^ Василе, Космин. «Microsoft выпускает эмулятор Android, и он должен быть быстрее, чем у Google» . Софтпедия . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Android Studio 2.0 — бета» . Блог разработчиков Android . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Предварительная версия Android Things для разработчиков 6» . Блог разработчиков Android . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Доводим до версии 11: Android 11 для разработчиков» . Блог разработчиков Android . Архивировано из оригинала 17 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Анонсируем Android Studio Arctic Fox (2020.3.1) и плагин Android Gradle 7.0» . Блог разработчиков Android . Архивировано из оригинала 12 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ «Изменения в поведении: приложения, ориентированные на Android 12 | Android 12 Beta» . Android-разработчики . Архивировано из оригинала 28 сентября 2021 г. Проверено 28 сентября 2021 г.
- ^ «Google рассматривает возможность удаления резервного копирования и восстановления Android ADB» .
- ^ Брэдшоу, Кайл (26 августа 2022 г.). «Google хочет сделать устройствами Fuchsia управляемыми с помощью инструмента Android ADB» . 9to5Google . Проверено 29 августа 2022 г.
- ^ Харвани, Б.М. (2013). Сборка PhoneGap: разработка кроссплатформенных мобильных приложений в облаке . Бока Ратон. п. 38. ISBN 978-1-4665-8975-9 . OCLC 862745697 . Архивировано из оригинала 07 марта 2022 г. Проверено 29 января 2022 г.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Хоффман, Крис; Федева, Джо (4 сентября 2021 г.). «Как установить и использовать ADB, утилиту Android Debug Bridge» . Как компьютерщик . Архивировано из оригинала 18 сентября 2021 г. Проверено 9 сентября 2021 г.
- ^ Смит, Нил (2020). «7». Основы разработки в Android Studio 4.0 — Java Edition: разработка приложений для Android с использованием Android Studio 4.0, Java и Android Jetpack . Кэри. ISBN 978-1-951442-21-7 . OCLC 1190906409 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ «Debian — Подробная информация о пакете adb в яблочко» . packages.debian.org . Архивировано из оригинала 8 сентября 2021 г. Проверено 8 сентября 2021 г.
- ^ «Как установить Android Debug Bridge (ADB) и Fastboot» . Жизненный провод . Архивировано из оригинала 30 января 2022 г. Проверено 18 января 2022 г.
- ^ «Запуск приложений на аппаратном устройстве» . Android-разработчики . Архивировано из оригинала 8 сентября 2021 г. Проверено 8 сентября 2021 г.
- ^ Уоллен, Джек. «Как включить параметры разработчика в Android 4.2» . Техреспублика . Архивировано из оригинала 9 сентября 2021 г. Проверено 9 сентября 2021 г.
- ^ Огубуике, Удочи (9 августа 2019 г.). «Как включить режим отладки по USB на Android» . Удар . Архивировано из оригинала 17 сентября 2019 г. Проверено 9 сентября 2021 г.
- ^ Аранзулла, Сальваторе . «Как включить отладку по USB» . Сальваторе Аранзулла (на итальянском языке). Архивировано из оригинала 9 сентября 2021 г. Проверено 9 сентября 2021 г.
- ^ Дрейк, Джошуа Дж. (2014). Руководство Android-хакера . Зак Ланье, Коллин Муллинер, Пау Олива, Стивен А. Ридли, Георг Вичерски. Индианаполис, Индиана: Уайли. п. 75. ИСБН 978-1-118-60861-6 . ОСЛК 875820167 . Архивировано из оригинала 26 сентября 2021 г. Проверено 26 сентября 2021 г.
- ^ Мендельсон, Том (9 января 2017 г.). «Google устраняет серьезную уязвимость Android, из-за которой устройства могут шпионить» . Арс Техника . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ Чимпану, Каталин. «Устройства Android попали в DDoS-ботнет» . ЗДНет . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
- ^ Шуман, Эван. «Это приложение Vultur выводит вредоносность на новый уровень» . Компьютерный мир . Архивировано из оригинала 10 сентября 2021 г. Проверено 10 сентября 2021 г.
Внешние ссылки [ править ]
- Официальный сайт
- «Использование ADB и fastboot» . LineageOS Вики . Проверено 2 мая 2023 г.
- «Мост отладки Android» . Арх Linux вики . Проверено 2 мая 2023 г.
- «Android/adb — Gentoo Wiki» . Генту Linux вики . Проверено 2 мая 2023 г.
- «Мост отладки Android» . Андроид Вики . Проверено 2 мая 2023 г.