Введение
ADB (Android Debug Bridge) — это мощный инструмент командной строки для взаимодействия с Android-устройствами. С его помощью разработчики, тестировщики и продвинутые пользователи могут устанавливать приложения, управлять файлами, получать системные логи, выполнять команды в оболочке устройства и производить низкоуровневые операции. Эта шпаргалка собрала наиболее часто используемые ADB и Fastboot команды, которые упростят отладку, администрирование и повседневное управление Android-устройствами.
Требования
Перед началом работы убедитесь, что выполнены следующие условия:
- На компьютере установлены Android SDK Platform-Tools (содержат
adbиfastboot). Скачайте с официального сайта Google. - На Android-устройстве включена отладка по USB: Настройки → Об устройстве → Номер сборки (нажмите 7 раз) → Настройки → Параметры разработчика → Отладка по USB.
- Устройство подключено к компьютеру через USB-кабель (рекомендуется оригинальный или качественный аналог).
- Для Windows могут потребоваться драйверы ADB/Fastboot (обычно устанавливаются автоматически или вручную из папки
usb_driver). - В системе должна быть доступна переменная PATH к папке
platform-tools(или выполняйте команды из этой папки).
Базовые команды для работы с устройством
Эти команды являются основой для любого взаимодействия с устройством через ADB. Они позволяют проверить подключение, управлять состоянием устройства, копировать файлы и устанавливать приложения.
| Команда | Описание | Пример |
|---|---|---|
adb devices | Показать список подключенных устройств и их статус (device, offline, unauthorized) | adb devices |
adb shell | Открыть интерактивную оболочку (shell) на устройстве. Для выхода: exit | adb shell |
adb reboot | Перезагрузить устройство в нормальный режим | adb reboot |
adb reboot recovery | Перезагрузить в режим восстановления (Recovery) | adb reboot recovery |
adb reboot bootloader | Перезагрузить в режим загрузчика (Fastboot) | adb reboot bootloader |
adb pull <remote> <local> | Скопировать файл или папку с устройства на компьютер | adb pull /sdcard/file.txt ./file.txt |
adb push <local> <remote> | Скопировать файл или папку с компьютера на устройство | adb push ./file.txt /sdcard/ |
adb install <apk> | Установить APK-файл на устройство. Флаг -r переустановит, -t разрешит тестовые APK | adb install -r app.apk |
adb uninstall <package> | Удалить приложение по имени пакета (например, com.example.app) | adb uninstall com.example.app |
adb shell pm list packages | Список всех установленных пакетов. Флаг -3 покажет только сторонние | adb shell pm list packages -3 |
Управление приложениями
Эти команды позволяют управлять жизненным циклом приложений, получать информацию о них и выполнять действия без графического интерфейса.
| Команда | Описание | Пример |
|---|---|---|
adb shell am start -n <package>/<activity> | Запустить конкретную активность (activity) приложения | adb shell am start -n com.android.settings/.Settings |
adb shell am force-stop <package> | Принудительно остановить приложение | adb shell am force-stop com.example.app |
adb shell pm clear <package> | Очистить данные приложения (сброс до состояния "как установлено") | adb shell pm clear com.example.app |
adb shell pm disable-user --user 0 <package> | Отключить приложение для текущего пользователя (без удаления) | adb shell pm disable-user --user 0 com.example.app |
adb shell pm enable <package> | Включить ранее отключенное приложение | adb shell pm enable com.example.app |
adb shell dumpsys package <package> | Получить детальную информацию о пакете: разрешения, активности, сервисы | adb shell dumpsys package com.example.app |
adb shell monkey -p <package> -v 1000 | Выполнить 1000 случайных событий в приложении (стресс-тест) | adb shell monkey -p com.example.app -v 500 |
Работа с файловой системой
Команды для навигации, просмотра и манипуляций с файлами и папками на устройстве.
| Команда | Описание | Пример |
|---|---|---|
adb shell ls /path | Список файлов и папок в указанной директории | adb shell ls /sdcard/ |
adb shell mkdir /path | Создать новую директорию | adb shell mkdir /sdcard/new_folder |
adb shell rm /path | Удалить файл. Флаг -r для папок | adb shell rm /sdcard/file.txt |
adb shell cp <from> <to> | Копировать файл или папку | adb shell cp /sdcard/file.txt /sdcard/backup/ |
adb shell mv <from> <to> | Переместить или переименовать файл/папку | adb shell mv /sdcard/old.txt /sdcard/new.txt |
adb shell cat /path | Вывести содержимое текстового файла в терминал | adb shell cat /sdcard/log.txt |
adb shell chmod <permissions> <file> | Изменить права доступа (например, 755 для исполняемого скрипта) | adb shell chmod 755 /sdcard/script.sh |
adb shell df | Показать информацию о свободном месте на разделах | adb shell df |
Отладка и логи
Команды для получения системной информации, мониторинга работы и анализа логов.
| Команда | Описание | Пример |
|---|---|---|
adb logcat | Показать системный лог в реальном времени. Для выхода: Ctrl+C | adb logcat |
adb logcat -s <tag> | Фильтровать лог по тегу (например, ActivityManager, MyApp) | adb logcat -s MyApp |
adb logcat -d > log.txt | Сохранить текущий лог в файл log.txt на компьютере | adb logcat -d > log.txt |
adb shell dumpsys | Вывести информацию о всех системных сервисах | adb shell dumpsys |
adb shell dumpsys battery | Получить состояние аккумулятора | adb shell dumpsys battery |
adb shell getprop | Получить значение системного свойства (build-параметры, настройки) | adb shell getprop ro.build.version.release |
| `adb shell getprop | grep | Найти свойство по ключевому слову |
adb shell wm size | Получить текущее разрешение экрана | adb shell wm size |
adb shell wm density | Получить плотность пикселей (dpi) | adb shell wm density |
adb shell settings get <namespace> <key> | Получить значение настройки (например, яркость) | adb shell settings get system screen_brightness |
Fastboot команды
Fastboot используется, когда устройство загружено в режим загрузчика (bootloader). Команды выполняются через утилиту fastboot (входит в Platform-Tools). Для входа в fastboot: adb reboot bootloader.
| Команда | Описание | Пример |
|---|---|---|
fastboot devices | Показать устройства в fastboot режиме | fastboot devices |
fastboot reboot | Перезагрузить устройство в нормальную систему | fastboot reboot |
fastboot reboot recovery | Перезагрузить в режим восстановления | fastboot reboot recovery |
fastboot flash <partition> <image> | Прошить конкретный раздел (partition) образом (image) | fastboot flash boot boot.img |
fastboot flash recovery recovery.img | Прошить кастомный recovery | fastboot flash recovery recovery.img |
fastboot erase <partition> | Стереть раздел (например, userdata, cache) | fastboot erase userdata |
fastboot oem unlock | Разблокировать загрузчик (все данные на устройстве будут удалены!) | fastboot oem unlock |
fastboot oem lock | Заблокировать загрузчик (возврат к стоковому состоянию) | fastboot oem lock |
fastboot getvar <variable> | Получить переменную загрузчика (например, product, version) | fastboot getvar product |
fastboot flash:raw boot <boot.img> | Альтернативный способ прошивки (для некоторых устройств) | fastboot flash:raw boot boot.img |
⚠️ Важно: Fastboot команды могут привести к неработоспособности устройства (brick). Всегда читайте документацию для вашей модели, убедитесь в совместимости образов и наличии заряда батареи (минимум 50%).
Проверка результата
После выполнения любой команды ADB/Fastboot выводится результат в терминал:
- Успех: Многие команды не выводят текст при успешном выполнении (например,
adb install). Проверьте результат косвенно (приложение установилось, файл появился). - Статус устройства:
adb devicesдолжен отобразить ваше устройство со статусомdevice. Еслиunauthorized— подтвердите запрос на устройстве. - Логи: Для команд, которые должны что-то вывести (например,
adb shell getprop), проверьте, что вывод соответствует ожиданиям. - Права доступа: Некоторые команды требуют прав суперпользователя (root). Если вы получаете
Permission denied, попробуйтеadb root(на пользовательских сборках) илиadb shell su -c <command>(если устройство рутировано).
Возможные проблемы
Устройство не отображается в adb devices
- Причина: Отладка по USB не включена или не подтверждена, кабель/порт нерабочие, отсутствуют драйверы.
- Решение:
- Проверьте, включена ли отладка по USB в Параметрах разработчика.
- Переподключите кабель, попробуйте другой порт или кабель.
- На Windows: установите драйверы ADB (например, через Universal ADB Drivers) или перезапустите ADB-сервер:
adb kill-server && adb start-server. - На устройстве измените режим USB на "Передача файлов (MTP)" или "PTP".
Ошибка "device offline"
- Причина: ADB-сервер не может установить соединение с устройством.
- Решение:
- Отключите и снова подключите устройство, подтвердите запрос отладки.
- Перезапустите ADB:
adb kill-server && adb start-server. - Перезагрузите устройство и компьютер.
Ошибка "error: closed" или "no devices/emulators"
- Причина: ADB-сервер не запущен или порт занят.
- Решение: Запустите
adb start-serverили завершите процессы, использующие порт 5037 (по умолчанию для ADB).
Fastboot не распознает устройство
- Причина: Устройство не в fastboot режиме, отсутствуют драйверы (Windows), кабель не поддерживает data transfer.
- Решение:
- Убедитесь, что экран устройства показывает логотип fastboot (обычно черный экран с текстом).
- Для Windows установите драйверы fastboot (например, из папки
usb_driverPlatform-Tools или через Zadig). - Попробуйте другой USB-порт (лучше USB 2.0) и кабель.
Ошибка "Permission denied" при выполнении команд в adb shell
- Причина: Команда требует прав суперпользователя (root), а устройство не рутировано.
- Решение:
- Получите root-доступ на устройстве (если поддерживается).
- Используйте
adb shell su -c "<command>"для выполнения команды от root. - Для некоторых системных команд (например,
setprop) требуется перезагрузка в режиме ADB root:adb root(работает только на пользовательских сборках, например, AOSP).
Установка APK не завершается
- Причина: Недостаточно места, конфликт разрешений, поврежденный APK.
- Решение:
- Проверьте свободное место:
adb shell df. - Установите с флагом
-rдля переустановки:adb install -r app.apk. - Убедитесь, что APK совместим с архитектурой и версией Android.
- Для отладки используйте
adb logcatво время установки.
- Проверьте свободное место: