Что позволяет сделать Android Debug Bridge (ADB)

Команда adb devices возвращает пустой список, хотя смартфон подключён кабелем — чаще всего причина в том, что на устройстве не включена отладка по USB или не подтверждён запрос на авторизацию компьютера. Именно с этой проверки начинается любая работа с Android Debug Bridge — универсальной утилитой командной строки, которая связывает компьютер с Android-устройством и открывает доступ к функциям, недоступным через обычный интерфейс.

ADB входит в состав Android SDK Platform Tools и используется разработчиками, тестировщиками и продвинутыми пользователями. С его помощью можно устанавливать приложения, снимать логи, передавать файлы, управлять системными настройками и даже удалять предустановленный софт без root-прав. Ниже разберём, что именно позволяет сделать этот инструмент и как применять его на практике.

Что такое ADB и как он работает

Android Debug Bridge устроен по клиент-серверной схеме из трёх компонентов. Клиент — это команда, которую вы вводите на компьютере. Демон (adbd) — фоновый процесс на самом устройстве, выполняющий команды. Сервер — посредник на компьютере, который управляет связью между клиентом и демоном через USB или сеть.

Чтобы связь заработала, на смартфоне необходимо активировать режим разработчика: открыть Настройки → О телефоне и несколько раз нажать на пункт Номер сборки, после чего в разделе Для разработчиков включить Отладку по USB. Точное расположение пунктов зависит от оболочки производителя, поэтому при расхождениях сверяйтесь с документацией своей модели.

Установка и удаление приложений

Одна из самых востребованных возможностей — установка APK-файлов напрямую с компьютера. Это удобно, когда нужно развернуть приложение на нескольких устройствах или поставить сборку, которой нет в магазине приложений.

adb install app.apk

adb install -r app.apk

Флаг -r переустанавливает приложение с сохранением данных. Для удаления используется команда adb uninstall имя.пакета, где вместо имени пакета подставляется идентификатор вида com.example.app.

Отдельного внимания заслуживает отключение предустановленных системных приложений без root-прав. Команда adb shell pm disable-user --user 0 имя.пакета скрывает приложение для текущего пользователя, а adb shell pm uninstall -k --user 0 имя.пакета удаляет его из пользовательского раздела. Сам пакет при этом физически остаётся в системном разделе, и после сброса к заводским настройкам он вернётся.

⚠️ Внимание: отключение системных компонентов может нарушить работу устройства — например, удаление оболочки звонилки или системного лаунчера способно привести к невозможности нормально пользоваться смартфоном. Перед отключением убедитесь, что точно знаете назначение пакета, и не трогайте компоненты, в назначении которых не уверены.
📊 Для чего вы чаще всего используете ADB?
Установка и удаление приложений
Снятие логов и отладка
Передача файлов и бэкап
Скриншоты и запись экрана

Передача файлов и работа с данными

Через ADB можно копировать файлы между компьютером и устройством в обе стороны, не прибегая к файловым менеджерам и облачным сервисам. Это особенно полезно, когда сенсорный экран повреждён, а данные нужно вытащить.

adb push file.txt /sdcard/Download/

adb pull /sdcard/DCIM/ ./backup/

Команда push отправляет файл с компьютера на устройство, pull — забирает его обратно. Пути на устройстве указываются в стиле Linux, и у пользователя без root-прав доступ ограничен общедоступными разделами вроде /sdcard/.

Доступ к командной оболочке устройства

Команда adb shell открывает интерактивный терминал прямо на устройстве — вы получаете Unix-подобную среду с набором системных утилит. Из неё можно просматривать процессы, менять настройки и управлять службами.

  • 📋 pm list packages — выводит список всех установленных пакетов;
  • ⚙️ settings put system имя значение — изменяет системные параметры;
  • 📊 dumpsys battery — показывает состояние батареи и статистику;
  • 🖥️ wm size и wm density — чтение и изменение разрешения и плотности экрана;
  • 🔁 reboot, reboot bootloader, reboot recovery — перезагрузка в нужный режим.

Через shell также доступна имитация пользовательского ввода: input tap x y эмулирует касание по координатам, input swipe — свайп, input keyevent — нажатие аппаратных кнопок. Эти команды лежат в основе автоматизации тестирования интерфейсов.

Отладка, логи и диагностика

Для разработчиков главная ценность ADB — доступ к системному журналу. Команда adb logcat выводит поток логов в реальном времени: ошибки приложений, системные события, стек-трейсы падений. Поток можно фильтровать по тегу и уровню важности, чтобы не тонуть в лишней информации.

Помимо логов, инструмент позволяет снимать скриншоты (adb exec-out screencap -p > screen.png) и записывать видео экрана командой adb shell screenrecord. Это незаменимо при подготовке баг-репортов и документации.

ЗадачаКомандаРезультат
Проверка подключенияadb devicesСписок авторизованных устройств
Просмотр логовadb logcatСистемный журнал в реальном времени
Установка APKadb install app.apkПриложение установлено на устройство
Копирование файла на ПКadb pull /sdcard/file ./Файл сохранён на компьютере
Перезагрузка в recoveryadb reboot recoveryУстройство загружается в режим восстановления

☑️ Подготовка ADB к работе

Выполнено: 0 / 5

Беспроводное подключение и дополнительные возможности

ADB умеет работать не только по кабелю. На современных версиях Android предусмотрена беспроводная отладка: устройство и компьютер должны находиться в одной сети Wi-Fi, а сопряжение выполняется через код pairing-командой adb pair с последующим adb connect. На старых версиях системы требовалось сначала подключиться по USB и выполнить adb tcpip 5555. Конкретный сценарий зависит от версии Android на вашем устройстве.

Из менее известных возможностей стоит отметить проброс портов командой adb forward — она перенаправляет трафик с порта компьютера на порт устройства, что применяется при отладке сетевых приложений. Также ADB позволяет запускать активности и сервисы напрямую через am start и отправлять широковещательные интенты через am broadcast.

Почему adb devices показывает «unauthorized»

Это значит, что на экране смартфона не подтверждён запрос на разрешение отладки. Отключите и заново подключите кабель, проверьте, не скрыто ли диалоговое окно за шторкой уведомлений. Если диалог не появляется, отзовите авторизации в настройках разработчика («Отозвать доступ для отладки по USB») и подключитесь снова.

⚠️ Внимание: не оставляйте отладку по USB постоянно включённой на устройстве, которое выносите в общественные места, и никогда не подтверждайте запрос авторизации от чужого компьютера. Через ADB возможен доступ к данным и установка приложений без вашего ведома.

Ограничения и меры предосторожности

Несмотря на широкие возможности, ADB — не всесильный инструмент. Без root-прав вы не получите доступ к защищённым системным разделам, не сможете читать данные других приложений и менять критичные системные файлы. Часть команд ведёт себя по-разному в зависимости от версии Android и оболочки производителя.

Несколько правил безопасной работы:

  • 🔐 Подтверждайте авторизацию только на своём компьютере;
  • 📦 Перед удалением системных пакетов записывайте их имена, чтобы при необходимости вернуть через cmd package install-existing;
  • 🔌 Используйте исправный кабель — обрывы соединения во время передачи файлов могут повредить данные;
  • 🧭 Сверяйте синтаксис команд с официальной документацией Android, если поведение отличается от описанного.

Часто задаваемые вопросы

Нужны ли root-права для работы с ADB?

Нет. Большинство возможностей — установка приложений, передача файлов, логи, скриншоты, отключение системных пакетов — доступны без root. Права суперпользователя расширяют список команд, но не являются обязательным условием.

Можно ли пользоваться ADB без USB-кабеля?

Да, через беспроводную отладку по Wi-Fi. На актуальных версиях Android сопряжение выполняется командой adb pair с кодом из настроек разработчика. Устройство и компьютер должны быть в одной сети.

Что делать, если компьютер не видит устройство?

Проверьте, включена ли отладка по USB, подтверждён ли запрос авторизации на экране смартфона и исправен ли кабель (некоторые кабели передают только питание). На Windows может потребоваться установка USB-драйвера производителя устройства. Также попробуйте перезапустить сервер командой adb kill-server с последующим adb start-server.

Безопасно ли удалять системные приложения через ADB?

Удаление выполняется только для текущего пользователя и обратимо — пакет остаётся в системном разделе. Однако отключение критичных компонентов (лаунчера, телефонии, системного UI) может нарушить работу устройства, поэтому действовать нужно осознанно и по одному пакету.

Где скачать ADB?

Утилита распространяется в составе пакета Android SDK Platform Tools, который доступен на официальном сайте для разработчиков Android. Сторонние сборки и «установщики ADB» из непроверенных источников лучше избегать.