Команды ADB Shell для Android: подробное руководство

Команда adb shell открывает прямой доступ к командной строке Android-устройства с компьютера — через неё можно удалить системное приложение, снять лог ошибки, перезагрузить смартфон в recovery или поменять скрытую настройку, недоступную в меню. Чтобы начать, на устройстве должна быть включена отладка по USB, а на компьютере установлен пакет Android SDK Platform-Tools — официальная утилита от Google, скачиваемая бесплатно с сайта для разработчиков.

Эта статья — практический справочник по командам adb shell: от подключения устройства до управления приложениями, файлами и системными параметрами. Все приведённые команды являются стандартными инструментами ADB, однако часть возможностей зависит от версии Android и прошивки конкретного производителя — там, где поведение может отличаться, это отдельно отмечено.

Что такое ADB и зачем нужен режим shell

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

Подкоманда shell переводит ADB в режим интерактивной командной строки устройства — аналог терминала внутри самого Android. В этом режиме доступны стандартные Unix-утилиты (ls, cd, cat) и специфичные Android-команды: pm для пакетов, am для активностей, settings для системных параметров.

Зачем это нужно на практике:

  • 🔧 удаление предустановленных приложений без root-прав;
  • 📋 сбор логов для диагностики сбоев приложений;
  • ⚙️ изменение скрытых настроек интерфейса и системы;
  • 📦 установка и тестирование APK-файлов;
  • 🔄 управление перезагрузкой в recovery и bootloader.

Подготовка: включение отладки и установка ADB

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

После этого в настройках появится раздел «Для разработчиков», где нужно включить переключатель Отладка по USB. На компьютер скачайте архив Platform-Tools с официального сайта Android Developers и распакуйте его в удобную папку. Терминал или командную строку следует открывать именно в этой папке, чтобы система видела исполняемый файл adb.

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

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

⚠️ Внимание: не все USB-кабели поддерживают передачу данных — часть кабелей от зарядных устройств содержит только линии питания. Если компьютер не видит смартфон, первым делом попробуйте другой кабель.

Подключение устройства и проверка связи

Подключите смартфон кабелем и выполните в терминале команду проверки:

adb devices

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

Для входа в интерактивную оболочку устройства используется команда:

adb shell

После её выполнения приглашение командной строки изменится — теперь вы работаете внутри Android. Выйти из оболочки можно командой exit. Если к компьютеру подключено несколько устройств, укажите нужное через параметр adb -s <серийный_номер> shell.

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

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

Менеджер пакетов pm — самый востребованный инструмент внутри ADB shell. Он позволяет просматривать, отключать и удалять приложения, включая те, что не имеют кнопки «Удалить» в настройках. Базовый набор команд выглядит так:

adb shell pm list packages

adb shell pm list packages | grep имя

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

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

Первая команда выводит полный список установленных пакетов, вторая фильтрует его по названию. Команда disable-user отключает приложение без удаления — это обратимая и более безопасная операция. Uninstall с флагом --user 0 удаляет приложение только для текущего пользователя: сам пакет остаётся в системном разделе и возвращается после сброса настроек.

Менеджер активностей am нужен для запуска приложений и компонентов из командной строки. Например, am start -n имя.пакета/.MainActivity запускает конкретную активность, что полезно при тестировании. Также через am можно отправлять интенты — системные сообщения Android.

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

Работа с файлами и базовые команды shell

Внутри оболочки действует стандартная файловая система Android. Перемещаться по каталогам можно привычными Unix-командами: ls показывает содержимое папки, cd меняет директорию, pwd выводит текущий путь. Пользовательские данные обычно находятся в /sdcard/, а системные разделы доступны только на чтение без root-прав.

Для обмена файлами между компьютером и смартфоном используются отдельные команды ADB, которые выполняются вне оболочки:

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

adb pull /sdcard/DCIM/photo.jpg ./

Команда push копирует файл с компьютера на устройство, pull — в обратную сторону. Это удобный способ переноса крупных файлов, когда MTP-подключение работает нестабильно. Дополнительно полезны команды adb install app.apk для установки приложений и adb logcat для просмотра системного журнала в реальном времени.

Полезные опции logcat

Команда adb logcat выводит поток системных сообщений. Фильтрация по тегу: adb logcat -s ИмяТега. Очистка буфера перед записью: adb logcat -c. Сохранение в файл: adb logcat > log.txt. Остановка вывода — комбинация Ctrl+C в терминале.

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

Команда settings открывает доступ к системным параметрам, которые хранятся в трёх пространствах имён: system, secure и global. Чтение значения выполняется через get, изменение — через put. Например, посмотреть текущую яркость экрана можно так:

adb shell settings get system screen_brightness

Перезагрузка устройства в различные режимы выполняется командами adb reboot (обычная перезагрузка), adb reboot recovery (режим восстановления) и adb reboot bootloader (загрузчик). Доступность режимов recovery и bootloader зависит от модели — на некоторых устройствах они могут быть ограничены производителем.

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

КомандаНазначение
adb devicesСписок подключённых устройств
adb shell pm list packagesСписок установленных пакетов
adb install app.apkУстановка приложения из APK
adb logcatПросмотр системного журнала
adb reboot recoveryПерезагрузка в режим восстановления

Ещё одна практичная возможность — эмуляция ввода. Команда input tap x y имитирует касание экрана по координатам, input swipe — свайп, а input text — ввод текста. Это применяется для автоматизации действий и тестирования интерфейсов.

Типичные ошибки и их решение

Самая частая проблема — пустой вывод adb devices. Проверяйте по порядку: включена ли отладка по USB, исправен ли кабель, установлены ли драйверы устройства на Windows. На Linux может потребоваться настройка правил udev, иначе устройство будет недоступно без прав суперпользователя.

Ошибка device unauthorized означает, что на смартфоне не подтверждён запрос на отладку. Отзовите ранее выданные разрешения в разделе «Для разработчиков» (пункт вроде «Отозвать доступ для отладки по USB») и подключите устройство заново — запрос появится снова. Иногда помогает перезапуск сервера командами adb kill-server и adb start-server.

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

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

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

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

Можно ли навредить смартфону командами ADB?

Да, если удалять или отключать системные пакеты без понимания их назначения. Безопасная практика — сначала использовать pm disable-user вместо удаления и проверять назначение каждого пакета перед действием.

Работает ли ADB по Wi-Fi?

Да, начиная с Android 11 доступна беспроводная отладка через раздел «Для разработчиков» — устройство сопрягается с компьютером по коду или QR-коду. На более старых версиях беспроводной режим требовал первичного подключения по кабелю.

Что делает команда adb shell pm uninstall --user 0?

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

Почему команда adb не распознаётся в терминале?

Терминал не находит исполняемый файл adb. Либо откройте командную строку непосредственно в папке Platform-Tools, либо добавьте путь к этой папке в системную переменную PATH вашей операционной системы.