Команда adb shell открывает интерактивную консоль прямо внутри операционной системы Android, но у многих пользователей подключение обрывается ещё на этапе запуска: устройство не определяется, в списке adb devices висит статус unauthorized, либо терминал возвращает error: no devices/emulators found. Все эти симптомы связаны с тремя проверяемыми вещами: включена ли отладка по USB, установлен ли корректный драйвер и подтверждён ли RSA-ключ на экране смартфона.
ADB (Android Debug Bridge) — официальный инструмент из состава Android SDK Platform-Tools, который Google распространяет бесплатно. Через него можно устанавливать приложения, читать системные логи, удалять предустановленные программы и выполнять десятки других задач без root-доступа. В этой статье разберём полный цикл работы с adb shell: от установки до практических команд и диагностики типовых ошибок.
Что такое ADB Shell и зачем он нужен
ADB работает по клиент-серверной схеме. На компьютере запускается ADB-сервер, который принимает команды от клиента (терминала) и передаёт их демону adbd, работающему на устройстве Android. Команда adb shell открывает удалённую оболочку, по сути аналогичную терминалу Linux, но с правами пользователя shell — они шире, чем у обычного приложения, но уже, чем у root.
Типовые сценарии, где оболочка незаменима:
- 🔍 Чтение системных логов через
logcatпри поиске причины сбоев приложений. - 📦 Удаление или отключение предустановленных программ без root-прав.
- ⚙️ Изменение скрытых настроек системы через
settings put. - 📊 Диагностика батареи, памяти и процессов командами
dumpsysиtop. - 🧪 Автоматизация действий: эмуляция нажатий, свайпов и ввода текста.
Установка ADB на компьютер
Загрузите архив SDK Platform-Tools с официального сайта Android Developers — это единственный источник, которому стоит доверять. Сторонние «установщики ADB» нередко содержат устаревшие версии, несовместимые с новыми выпусками Android. Распакуйте архив в папку с простым путём без кириллицы, например C:\platform-tools.
Чтобы вызывать adb из любой директории, добавьте путь к папке в переменную окружения PATH. В Windows это делается через «Система → Дополнительные параметры системы → Переменные среды». Альтернатива — открыть терминал прямо в папке platform-tools: в проводнике Windows зажмите Shift, щёлкните правой кнопкой по пустому месту и выберите «Открыть окно PowerShell здесь».
Проверьте установку командой:
adb version
Если терминал выводит номер версии, инструмент готов к работе. Если появляется ошибка «не является внутренней или внешней командой», путь в PATH указан неверно или терминал не был перезапущен после изменения переменных.
Подготовка Android-устройства
Отладка по USB скрыта в разделе для разработчиков. Чтобы его активировать, откройте Настройки → О телефоне и семь раз подряд нажмите на пункт «Номер сборки». На некоторых оболочках (например, у отдельных производителей) путь может немного отличаться — ищите пункт со словами «сборка» или «версия» в разделе о телефоне. После активации в настройках появится раздел «Для разработчиков», где нужно включить переключатель «Отладка по USB».
Подключите устройство кабелем к компьютеру. Первое сопряжение обязательно требует подтверждения: на экране смартфона появится диалог «Разрешить отладку по USB?» с отпечатком RSA-ключа. Отметьте «Всегда разрешать с этого компьютера» и нажмите OK. Если диалог не появился — смените режим USB с «Только зарядка» на «Передача файлов (MTP)» и перевоткните кабель.
⚠️ Внимание: не включайте отладку по USB на устройстве, которое выносите в общественные места, без необходимости. Открытый режим ADB в связке с неблокированным загрузчиком упрощает доступ к данным при физическом доступе к аппарату. После завершения работы отладку можно отключить — настройки при этом сохранятся.
☑️ Чек-лист перед первым подключением
Первое подключение и проверка связи
Запустите проверку видимости устройства:
adb devices
Результат интерпретируется так: строка с серийным номером и статусом device означает успешное подключение. Статус unauthorized говорит о том, что RSA-диалог на телефоне не подтверждён — отзовите авторизации в настройках разработчика («Отозвать доступ для отладки по USB») и подключите кабель заново. Пустой список чаще всего указывает на проблему с драйвером или кабелем.
Когда устройство видно, войдите в оболочку:
adb shell
Приглашение командной строки сменится на что-то вроде device_name:/ $ — вы внутри системы Android. Выход из оболочки — команда exit. Если к компьютеру подключено несколько устройств, указывайте конкретное: adb -s серийный_номер shell.
Основные команды ADB Shell
Набор доступных команд зависит от версии Android, но базовый арсенал един. Ниже — команды, которые проверяются на любом устройстве и не требуют root:
| Команда | Назначение | Пример |
|---|---|---|
pm list packages | Список установленных пакетов | pm list packages | grep chrome |
pm uninstall --user 0 | Удаление приложения для текущего пользователя | pm uninstall --user 0 com.example.app |
dumpsys battery | Состояние батареи и статистика | dumpsys battery |
settings put | Изменение системных настроек | settings put global window_animation_scale 0.5 |
input | Эмуляция касаний и клавиш | input tap 540 1200 |
logcat | Просмотр системного журнала | logcat -d | grep -i error |
Обратите внимание на конструкцию pm uninstall --user 0: она удаляет приложение только для текущего пользователя, а сам пакет остаётся в системном разделе. Это относительно безопасный способ избавиться от предустановленного софта — после сброса к заводским настройкам всё вернётся. Вернуть удалённый таким способом пакет можно командой cmd package install-existing имя_пакета.
⚠️ Внимание: не удаляйте системные пакеты, назначения которых вы не знаете. Удаление компонентов оболочки, сервисов телефонии или системного UI может привести к циклической перезагрузке. Перед удалением проверьте назначение пакета по его имени и убедитесь, что он не связан с базовыми функциями аппарата.
Полезные флаги logcat
Ключ -d выводит текущий буфер и завершает работу (не «висит» в ожидании). Ключ -c очищает буфер логов. Фильтрация по тегу выглядит так: logcat ActivityManager:I *:S — показывать только сообщения тега ActivityManager уровня Info и выше. Для сохранения лога в файл используйте перенаправление: adb logcat -d > log.txt
Решение типовых проблем подключения
Самая частая жалоба — устройство не появляется в adb devices на Windows. Возможная причина — отсутствующий или некорректный USB-драйвер: откройте Диспетчер устройств и проверьте, нет ли аппарата с жёлтым восклицательным знаком в разделе «Переносные устройства» или «Другие устройства». Для многих смартфонов подходит стандартный драйвер Google USB Driver из состава SDK, но отдельные производители требуют фирменные драйверы — их следует брать с официального сайта вендора.
Если статус устройства периодически сменяется на offline, помогает перезапуск сервера:
adb kill-server
adb start-server
Также проверьте сам кабель: значительная часть «проблем с ADB» сводится к кабелю, в котором работают только линии питания. Признак — телефон заряжается, но не предлагает выбор режима USB в шторке уведомлений. Если устройство определяется на одном компьютере, но не видно на другом, почти всегда дело в драйвере или кабеле, а не в настройках Android.
Для подключения по Wi-Fi (на устройствах с Android 11 и новее есть штатная «Беспроводная отладка») используется сопряжение по коду через adb pair с последующим adb connect IP:порт. Точные пункты меню зависят от версии системы, поэтому сверяйтесь с настройками разработчика на конкретном аппарате.
Ограничения и меры предосторожности
Оболочка ADB — мощный инструмент, и у него есть понятные границы. Без root-доступа вы не сможете редактировать системный раздел, читать данные других приложений в /data/data или менять защищённые параметры ядра. Попытка выполнить такие операции вернёт Permission denied — это нормальное поведение, а не сбой.
Команды, которые требуют повышенного внимания:
- 🗑️
pm uninstall— необратимо до сброса настроек или переустановки пакета. - 🔧
settings put— неверное значение может сломать функцию системы. - 📴
reboot bootloader— переводит устройство в fastboot-режим; не выполняйте без понимания дальнейших шагов. - 🧹
pm clear— стирает все данные указанного приложения без подтверждения.
⚠️ Внимание: команды в adb shell выполняются немедленно и почти никогда не запрашивают подтверждение. Перед нажатием Enter перепроверяйте имя пакета и параметры — опечатка в одном символе может затронуть не тот компонент.
Часто задаваемые вопросы
Нужен ли root-доступ для работы ADB Shell?
Нет. Большинство команд — просмотр пакетов, логи, удаление приложений для пользователя, изменение настроек — работают на стоковом устройстве без root. Права суперпользователя нужны лишь для операций с системным разделом и чужими данными приложений.
Почему adb devices показывает unauthorized?
Устройство ждёт подтверждения RSA-ключа. Разблокируйте экран смартфона, перевоткните кабель и подтвердите диалог «Разрешить отладку по USB». Если диалог не появляется, отзовите прежние авторизации в настройках разработчика и повторите подключение.
Можно ли использовать ADB без кабеля?
Да, через отладку по Wi-Fi. На Android 11 и новее функция «Беспроводная отладка» встроена в систему: включите её в настройках разработчика, выполните сопряжение командой adb pair и подключитесь через adb connect. На старых версиях беспроводной режим требует первичной настройки по кабелю.
Как вернуть удалённое через pm uninstall --user 0 приложение?
Выполните adb shell cmd package install-existing имя_пакета — пакет восстановится из системного раздела. Также приложения возвращаются после сброса устройства к заводским настройкам.
Безопасно ли удалять предустановленные приложения через ADB?
Относительно безопасно, если удалять только те пакеты, назначение которых вам известно: магазины, игры, дублирующие фирменные утилиты. Не трогайте пакеты, связанные с телефонией, системным интерфейсом и сервисами Google, если не уверены в последствиях.