ADB в Android: как управлять устройством через командную строку

ADB (Android Debug Bridge) — это мост между ПК и Android: он позволяет отлаживать, копировать файлы, устанавливать APK, снимать скриншоты и управлять устройством через терминал. Ниже — быстрый практический набор команд и шаги, чтобы начать работать сразу.

Установка и подключение

  1. Установите Platform Tools (adb) — через пакетный менеджер или скачайте и распакуйте platform-tools, затем добавьте в PATH.
    • Windows: распакуйте в C:\platform-tools и добавьте в PATH, проверьте adb version.
    • macOS (M1/M2): brew install android-platform-tools.
    • Ubuntu: sudo apt install android-tools-adb.

На macOS M1/M2 Homebrew упрощает установку и избавляет от ручной настройки PATH.

  1. Включите режим разработчика и отладку по USB: Настройки → О телефоне → 7 тапов по «Номер сборки» → Параметры разработчика → Отладка по USB.
  2. Подключите USB-кабель (убедитесь, что кабель поддерживает передачу данных), разблокируйте экран и подтвердите запрос на разрешение отладки.
  3. Проверьте связь: adb devices — устройство в списке (статус "device"). Если "unauthorized" — отклоните и подтвердите снова.

Базовые команды, которые нужны чаще всего

Ниже — группировка команд с кратким назначением. Используйте adb -s <ID> при наличии нескольких устройств.

Работа с shell и перезагрузка

  • adb shell — открыть shell на устройстве.
  • adb reboot — перезагрузка.
  • adb reboot recovery / adb reboot bootloader — загрузка в recovery/bootloader.
  • adb kill-server && adb start-server — перезапуск демона adb.

Установка и управление приложениями

  • adb install app.apk — установить APK (используйте -r для замены).
  • adb uninstall com.example.app — удалить приложение.
  • adb shell pm list packages — список пакетов.
  • adb shell pm clear com.example.app — очистить данные приложения.

Файлы и хранилище

  • adb push localfile /sdcard/ — скопировать на устройство.
  • adb pull /sdcard/file.txt — скопировать с устройства.
  • adb shell df -h — проверить место.
  • adb shell rm -rf /sdcard/папка — удалить файлы (будьте осторожны).

Логи и скриншоты

  • adb logcat — живые логи (Ctrl+C для выхода).
  • adb logcat -s MyTag:V — фильтр по тэгу.
  • adb shell screencap /sdcard/screen.pngadb pull /sdcard/screen.png.
  • adb shell screenrecord /sdcard/video.mp4 (по умолчанию до 3 минут).

Действия и диагностика

  • adb shell dumpsys battery — информация о батарее.
  • adb shell input keyevent 26 — блокировка/включение экрана (KEYCODE_26).
  • adb shell am force-stop com.example.app — принудительная остановка.
  • adb shell top / adb shell ps — процессы и нагрузка.

Подключение по Wi‑Fi

  1. На проводном подключении: adb tcpip 5555.
  2. Отключите USB, затем: adb connect <IP_устройства>:5555.
  3. Вернуться к USB: adb usb.

Команда adb shell su требует root — без root многие системные изменения недоступны. Не используйте системные команды без уверенности: можно повредить систему.

Работа с автоматизацией и простые скрипты

  • Простая установка нескольких APK: for apk in *.apk; do adb install "$apk"; done
  • Логирование в файл: adb logcat -v time > device-logs.txt
  • Удаление всех кэшей приложения (пример): adb shell pm list packages -3 | cut -f2 -d: | xargs -I{} adb shell pm clear {} — используйте осторожно.

Частые ошибки

  • Device unauthorized — повторно разрешите отладку на устройстве, удалите «Отладку по USB» в настройках авторизаций и попробуйте снова.
  • No devices/emulator — проверьте кабель (должен быть дата-кабель), включена ли отладка, драйверы на Windows.
  • Device offline — перезапустите adb: adb kill-server && adb start-server.
  • Права доступа на файлы — некоторые каталоги недоступны без root; используйте публичные папки (/sdcard) для обмена файлами.

При нескольких устройствах используйте ключ -s <ID>: adb -s emulator-5554 shell.

FAQ

  • Нужны ли root-права для ADB? Нет, большинство операций доступны без root. Root нужен для системных изменений и доступа к защищённым разделам.
  • Как вернуть USB-соединение после Wi‑Fi? Подключите USB: adb usb.
  • Как фильтровать логи по приложению? Знайте тег или PID: adb logcat | grep com.example.app или используйте -s для тега.
  • Можно ли автоматизировать бэкапы? Да: adb pull /sdcard/ для данных приложений; для полного бэкапа используйте adb backup (ограничено и зависит от версии Android).

Освойте эти команды на эмуляторе прежде чем применять на основном устройстве. Если нужно, подготовлю готовые скрипты для частых задач (установка набора APK, получение логов, резервное копирование).