ADB Shell Commands: команды для управления Android через компьютер

Команда adb shell pm list packages показывает все установленные пакеты на устройстве, а adb shell dumpsys battery — реальное состояние аккумулятора, и это лишь две из десятков команд, доступных после подключения смартфона к компьютеру через Android Debug Bridge. Инструмент ADB входит в состав Android SDK Platform Tools и позволяет выполнять операции, недоступные из обычного интерфейса системы: удалять предустановленные приложения, снимать скриншоты, читать системные логи и менять скрытые настройки.

Работа с adb shell требует включённой отладки по USB на устройстве и установленных драйверов на компьютере. В этой статье разберём базовый синтаксис, самые востребованные команды и меры предосторожности, которые помогут не навредить системе.

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

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

В меню для разработчиков включите переключатель «Отладка по USB». Затем подключите устройство к компьютеру кабелем и при первом подключении подтвердите на экране смартфона запрос на разрешение отладки с данного ПК. Проверить, видит ли компьютер устройство, можно командой:

adb devices

Если в списке отображается серийный номер со статусом device — соединение установлено. Статус unauthorized означает, что разрешение на смартфоне не подтверждено, а пустой список обычно указывает на проблему с драйверами или кабелем.

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

Конструкция adb shell открывает интерактивную командную строку прямо на устройстве. Внутри этой оболочки работают стандартные Unix-подобные команды: ls для просмотра каталогов, cd для перехода между папками, cat для чтения файлов. Можно также выполнять одиночные команды без входа в оболочку, дописывая их после adb shell.

Чаще всего пользователям нужны следующие команды:

  • 📱 adb shell getprop ro.product.model — показывает модель устройства
  • 🔋 adb shell dumpsys battery — выводит уровень заряда, температуру и статус батареи
  • 📸 adb shell screencap /sdcard/screen.png — делает скриншот и сохраняет его в память устройства
  • 🔄 adb reboot — перезагружает смартфон
  • 📂 adb pull /sdcard/file.txt — копирует файл с устройства на компьютер

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

📊 Для чего вы чаще всего используете ADB?
Удаление предустановленных приложений
Отладка собственных приложений
Снятие скриншотов и запись экрана
Диагностика и чтение логов

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

Менеджер пакетов pm (package manager) — один из самых востребованных инструментов внутри adb shell. С его помощью можно просматривать, отключать и удалять приложения, включая часть предустановленных системных. Базовый синтаксис выглядит так:

adb shell pm list packages

adb shell pm list packages -3

Флаг -3 ограничивает список только сторонними приложениями, установленными пользователем. Чтобы найти конкретный пакет, добавьте фильтр: adb shell pm list packages | grep имя (в Windows вместо grep используйте findstr).

Для удаления приложения текущего пользователя применяется команда:

adb shell pm uninstall -k --user 0 com.example.app

Здесь -k сохраняет данные приложения, а --user 0 указывает основного пользователя системы. Удаление через pm не требует root-прав, но затрагивает только текущего пользователя — пакет физически остаётся в системном разделе и вернётся после сброса к заводским настройкам. Более мягкая альтернатива — отключение пакета командой adb shell pm disable-user --user 0 имя_пакета, которую легко отменить через pm enable.

☑️ Безопасное удаление приложения через ADB

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

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

Работа с файлами и логами

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

adb push photo.jpg /sdcard/Download/

adb pull /sdcard/DCIM/ ./backup/

Обратите внимание: запись возможна только в разделы, доступные без root-прав, — обычно это /sdcard/ и её подкаталоги. Попытка записать файл в системные пути вроде /system/ завершится ошибкой доступа, и это нормальное поведение.

Чтение системных логов выполняется командой logcat. Она незаменима при диагностике сбоев приложений:

adb logcat -d > log.txt

adb logcat *:E

Первая команда сохраняет текущий буфер логов в файл, вторая фильтрует вывод, показывая только сообщения уровня ошибок (Error). Логи обновляются в реальном времени, поэтому для остановки нажмите Ctrl+C.

Почему logcat показывает слишком много информации

Системный лог Android пишут все процессы одновременно, поэтому полезно фильтровать вывод по тегу приложения (adb logcat -s ИмяТега) или по уровню важности: V — verbose, D — debug, I — info, W — warning, E — error. Для поиска причины сбоя обычно достаточно уровней W и E.

Полезные команды настроек и ввода

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

adb shell settings get system screen_brightness

adb shell settings get global airplane_mode_on

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

КомандаНазначениеТребует root
adb shell pm list packagesСписок установленных пакетовНет
adb shell dumpsys batteryСостояние аккумулятораНет
adb shell wm sizeРазрешение экранаНет
adb logcatЧтение системных логовНет
adb reboot recoveryПерезагрузка в рекавериНет

⚠️ Внимание: изменение параметров через settings put и wm size / wm density может нарушить отображение интерфейса. Запишите исходные значения командой get перед любыми изменениями, чтобы иметь возможность откатить настройку.

Типичные ошибки при работе с ADB

Наиболее частая проблема — устройство не определяется командой adb devices. Проверьте по порядку: включена ли отладка по USB, подтверждён ли запрос на разрешение на экране смартфона, установлены ли драйверы (в Windows — через Диспетчер устройств), исправен ли кабель. Некоторые кабели поддерживают только зарядку и не передают данные.

Ошибка device unauthorized решается отзывом разрешений в меню разработчика и повторным подключением. Ошибка more than one device означает, что подключено несколько устройств или эмуляторов — укажите нужный флагом -s и серийным номером: adb -s серийник shell.

Если команда выполняется, но возвращает permission denied, скорее всего, действие требует root-прав или запрещено политикой производителя. В таком случае не пытайтесь обходить ограничение без понимания последствий — многие операции корректно недоступны на заблокированных устройствах.

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

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

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

Как вернуть удалённое через pm приложение?

Если пакет удалён только для текущего пользователя (с флагом --user 0), он физически остался в системе. Восстановить его можно командой adb shell cmd package install-existing имя_пакета. Также помогает сброс к заводским настройкам, но это крайняя мера с потерей данных.

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

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

Чем отличается adb shell от просто adb?

Команды adb выполняются на уровне самого моста: установка APK, перезагрузка, передача файлов. Конструкция adb shell открывает командную оболочку внутри Android, где доступны системные утилиты самой ОС — pm, am, dumpsys, settings и другие.

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

Относительно безопасно при соблюдении осторожности: удаление через pm uninstall --user 0 затрагивает только текущего пользователя и обратимо. Однако удаление критичных системных пакетов способно нарушить работу устройства, поэтому предварительно выясняйте назначение каждого пакета и предпочитайте отключение через disable-user.