ADB shell команды: подробное руководство с примерами

Ошибка error: device unauthorized после ввода первой команды adb shell — самый частый симптом, с которого начинается знакомство с Android Debug Bridge: устройство подключено, но на экране смартфона не подтверждён запрос на отладку по USB. Пока разрешение не выдано, оболочка не откроется, и любые команды будут отклоняться. Поэтому прежде чем переходить к списку полезных команд, стоит убедиться, что связка «компьютер — смартфон» работает корректно.

ADB (Android Debug Bridge) — это официальная утилита из состава Android SDK Platform-Tools, которая позволяет управлять устройством через терминал. Команда adb shell открывает на смартфоне командную оболочку, похожую на терминал Linux, и через неё можно удалять приложения, менять настройки, снимать скриншоты, читать логи и диагностировать сбои без рут-доступа. Ниже разберём, как подготовить устройство и какие команды действительно пригодятся на практике.

Подготовка: включение отладки по USB

Чтобы команды заработали, на смартфоне необходимо активировать режим разработчика. Откройте «Настройки» → «О телефоне» и несколько раз нажмите на пункт «Номер сборки» — точное название пункта и его расположение зависят от оболочки производителя (MIUI, One UI, ColorOS располагают его по-разному). После этого в настройках появится раздел «Для разработчиков», где нужно включить переключатель «Отладка по USB».

На компьютере потребуется скачать архив Platform-Tools с официального сайта для разработчиков Android и распаковать его. Далее откройте терминал или командную строку в папке с утилитой и проверьте соединение:

adb devices

Если в списке устройство отображается со статусом device — всё готово. Статус unauthorized означает, что на экране смартфона нужно подтвердить запрос на отладку и при желании поставить галочку «Всегда разрешать с этого компьютера».

☑️ Проверка перед началом работы с ADB

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

Базовые команды adb shell

После ввода adb shell вы попадаете в оболочку устройства, где доступны стандартные Unix-утилиты и специфические Android-команды. Выйти из оболочки можно командой exit. Многие команды можно выполнять и без входа в shell, добавляя их сразу после adb shell в одной строке.

  • 📱 adb shell getprop ro.product.model — узнать модель устройства;
  • 🔋 adb shell dumpsys battery — состояние батареи: уровень заряда, температура, статус;
  • 📸 adb shell screencap -p /sdcard/screen.png — сделать скриншот и сохранить его на карту памяти;
  • 📂 adb shell ls /sdcard/ — просмотреть содержимое папки;
  • ℹ️ adb shell wm size — узнать разрешение экрана.

Команда dumpsys заслуживает отдельного упоминания: она выводит диагностическую информацию системных служб. Например, adb shell dumpsys wifi покажет параметры Wi-Fi-подключения, а dumpsys meminfo — использование оперативной памяти. Вывод объёмный, поэтому его удобно перенаправлять в файл для последующего анализа.

📊 Для каких задач вы используете adb shell чаще всего?
Удаление предустановленных приложений
Отладка и чтение логов
Передача файлов
Настройка и автоматизация

Управление приложениями через ADB

Одна из самых востребованных возможностей — удаление предустановленных приложений, которые система не даёт убрать обычным способом. Для этого используется менеджер пакетов pm. Сначала полезно посмотреть список установленных пакетов:

adb shell pm list packages

Найти конкретное приложение поможет фильтрация, например adb shell pm list packages | grep browser (в Windows вместо grep используется findstr). Удаление для текущего пользователя выполняется так:

adb shell pm uninstall -k --user 0 имя.пакета

Флаг -k сохраняет данные приложения, а параметр --user 0 указывает, что пакет удаляется только для основного пользователя — системные файлы при этом физически остаются в прошивке. Это важно: такая операция обратима, и после сброса настроек или обновления прошивки приложение может вернуться. Восстановить удалённый таким способом пакет можно командой adb shell cmd package install-existing имя.пакета.

⚠️ Внимание: не удаляйте пакеты, назначение которых вам неизвестно. Удаление системных компонентов (например, отвечающих за интерфейс, звонки или обновления) способно нарушить работу устройства вплоть до невозможности загрузки. Перед удалением выясните функцию пакета по его имени.

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

Для обмена файлами между компьютером и смартфоном используются команды push и pull — они выполняются без входа в shell:

adb push файл.zip /sdcard/Download/

adb pull /sdcard/screen.png C:\Users\user\Desktop\

Команда adb pull незаменима, когда экран смартфона повреждён, но отладка по USB была включена заранее: так можно вытащить фотографии и документы без сенсорного управления. Обратная ситуация — отправка файлов на устройство — пригодится для ручной установки APK через adb install приложение.apk.

Учтите, что доступ к части каталогов ограничен правами Android: без рут-доступа вы не сможете читать защищённые системные разделы, а доступ к /sdcard/ — это фактически работа с внутренним хранилищем пользователя.

Настройки и управление устройством

Через команду settings можно читать и изменять системные параметры, которые иногда скрыты в интерфейсе. Формат команды выглядит так:

adb shell settings get system screen_brightness

adb shell settings put system screen_off_timeout 60000

Первый пример показывает текущую яркость экрана, второй устанавливает таймаут отключения дисплея в миллисекундах. Изменения вступают в силу сразу, но часть параметров защищена и требует специальных разрешений — в таком случае команда вернёт ошибку доступа.

Для имитации действий пользователя существует команда input: adb shell input keyevent 26 имитирует нажатие кнопки питания, а adb shell input tap 500 1000 — касание экрана по координатам. Это используют для автоматизации и тестирования интерфейсов.

Как узнать коды клавиш для keyevent

Полный перечень кодов содержится в документации Android по классу KeyEvent. Часто используемые: 3 — Home, 4 — Back, 26 — питание, 24 и 25 — громкость вверх и вниз, 66 — Enter.

Диагностика и чтение логов

Когда приложение вылетает или устройство ведёт себя странно, первым инструментом диагностики становится logcat — системный журнал Android:

adb logcat

Поток сообщений идёт непрерывно, поэтому лог фильтруют. Например, adb logcat *:E покажет только ошибки, а adb logcat -d > log.txt сохранит текущий буфер в файл и завершит работу. Для поиска причины сбоя конкретного приложения удобно фильтровать по имени пакета или тегу, который приложение пишет в лог.

Полезно понимать ограничение метода: начиная с современных версий Android, приложения видят в логе в основном собственные записи, но через ADB с компьютера доступен общий системный журнал — именно поэтому adb logcat остаётся стандартным способом отладки. Если устройство перезагружается само по себе, лог следует снимать сразу после сбоя, пока буфер не перезаписался.

⚠️ Внимание: логи могут содержать личные данные — фрагменты сообщений, идентификаторы, имена сетей. Не публикуйте файлы logcat целиком на форумах, предварительно не просмотрев их содержимое.

Таблица часто используемых команд

КомандаНазначениеПример
adb devicesСписок подключённых устройствПроверка соединения
adb shell pm list packagesСписок установленных пакетовПоиск приложения для удаления
adb pull / pushПередача файловКопирование фото на ПК
adb logcatСистемный журналДиагностика сбоев приложений
adb rebootПерезагрузка устройстваОбычная перезагрузка, а с параметром — в recovery или bootloader

Команда adb reboot с параметрами recovery или bootloader переводит устройство в соответствующий режим, однако состав доступных режимов и их поведение зависят от модели и загрузчика — сверяйтесь с документацией производителя, прежде чем выполнять действия в этих режимах.

Решение типичных проблем с подключением

Если adb devices показывает пустой список, проверьте по порядку: кабель (часть кабелей поддерживает только зарядку, без передачи данных), USB-порт, включённую отладку и драйверы устройства на Windows. В Linux иногда требуется настройка правил udev для доступа к устройству без прав суперпользователя.

При статусе unauthorized отзовите разрешения в разделе «Для разработчиков» (пункт вроде «Отозвать авторизацию отладки по USB»), переподключите кабель и подтвердите запрос заново. Когда устройство «зависло» в списке со старым состоянием, помогает перезапуск сервера:

adb kill-server

adb start-server

Ещё одна ситуация — error: more than one device, когда подключено несколько устройств или эмуляторов. Укажите нужное явно: adb -s серийный_номер shell. Серийный номер виден в выводе adb devices.

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

Частые вопросы

Нужен ли root-доступ для adb shell команд?

Нет, большинство команд работают без рута: просмотр информации, передача файлов, удаление приложений для текущего пользователя, чтение логов. Рут требуется лишь для доступа к защищённым системным разделам и отдельным привилегированным операциям.

Что делать, если команда возвращает permission denied?

Это значит, что у оболочки ADB нет прав на запрошенное действие. Проверьте корректность пути и синтаксиса. Если операция действительно требует повышенных привилегий, без рут-доступа она недоступна — это штатное ограничение системы безопасности Android.

Можно ли удалить системное приложение безвозвратно через ADB?

Стандартная команда pm uninstall --user 0 удаляет пакет только для текущего пользователя, файлы остаются в прошивке, и приложение можно вернуть через cmd package install-existing. Полное удаление из системного раздела требует рут-доступа и относится к рискованным операциям.

Почему устройство не определяется на Windows?

Наиболее вероятные причины: отсутствует драйвер производителя, кабель не передаёт данные, не включена отладка по USB. Проверьте устройство в диспетчере устройств Windows и попробуйте другой кабель и порт.

Как выполнить команду, не входя в интерактивную оболочку?

Добавьте команду в одну строку после adb shell, например: adb shell dumpsys battery. Результат выведется в терминал, и оболочка закроется автоматически.