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

Команда adb shell возвращает ошибку error: device not found, зависает без ответа или выводит device offline — значит, связь между компьютером и смартфоном нарушена на одном из этапов: отладка по USB не включена, драйвер не установлен или подключение не авторизовано. Диагностику стоит начинать с команды adb devices: именно её вывод показывает, видит ли компьютер устройство и в каком оно состоянии.

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

Шаг 1: Проверка видимости устройства через adb devices

Прежде чем запускать adb shell, откройте терминал или командную строку в папке с Platform-Tools и выполните базовую проверку:

adb devices

Результат команды определяет дальнейшие действия. Если список пуст, компьютер вообще не видит смартфон. Если рядом с серийным номером стоит статус unauthorized — устройство подключено, но не получило разрешение на отладку. Статус offline указывает на рассинхронизацию между ADB-сервером и демоном на смартфоне.

Вывод adb devicesЧто означаетПервичное действие
Список пустУстройство не обнаруженоПроверить кабель, драйвер, отладку по USB
unauthorizedНет разрешения на отладкуПодтвердить RSA-запрос на экране смартфона
offlineСбой связи сервера и демона adbdПерезапустить ADB-сервер
deviceПодключение работаетЗапускать adb shell
no permissionsНет прав доступа (часто в Linux)Настроить udev-правила или запустить с sudo

Шаг 2: Включение отладки по USB на смартфоне

Без активированной отладки по USB демон adbd на устройстве не принимает подключения, и adb shell не будет работать в принципе. Сначала нужно разблокировать режим разработчика: откройте Настройки → О телефоне и несколько раз подряд нажмите на пункт «Номер сборки» до появления сообщения о том, что вы стали разработчиком.

После этого найдите раздел Для разработчиков (на разных прошивках он может находиться внутри «Система» или «Расширенные настройки») и включите переключатель Отладка по USB. Точное расположение пунктов зависит от оболочки производителя — сверьтесь с документацией вашей модели, если найти раздел не удаётся.

  • 🔌 Подключите смартфон к компьютеру кабелем, поддерживающим передачу данных (некоторые кабели — только для зарядки).
  • 📱 На экране устройства выберите режим USB-подключения «Передача файлов (MTP)», если отладка не активируется в режиме «Только зарядка».
  • ✅ При первом подключении подтвердите запрос «Разрешить отладку по USB?» и при желании отметьте «Всегда разрешать с этого компьютера».
  • 🔒 Разблокируйте экран смартфона — на заблокированном устройстве диалог авторизации может не появиться.
⚠️ Внимание: если диалог разрешения отладки не появляется, откройте в настройках разработчика пункт «Отозвать доступ для отладки по USB» (название может отличаться), переподключите кабель и дождитесь нового запроса на экране смартфона.

Шаг 3: Установка и проверка драйверов на Windows

Частая причина, почему adb shell не работает на ПК с Windows — отсутствующий или некорректный USB-драйвер для Android-устройства. Откройте Диспетчер устройств и посмотрите, как определяется смартфон при подключении.

Если устройство отображается с жёлтым восклицательным знаком или в разделе «Другие устройства», драйвер необходимо установить вручную. Возможные варианты: универсальный Google USB Driver из состава SDK Manager либо фирменный драйвер производителя смартфона. После установки переподключите кабель и снова выполните adb devices.

☑️ Диагностика adb shell — чек-лист

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

На Linux проблема чаще связана с правами доступа: система видит устройство, но обычный пользователь не может к нему обратиться. Проверка простая — выполните adb devices через sudo. Если устройство появилось, потребуется настроить udev-правила для вашего вендора; точный идентификатор производителя можно узнать из вывода команды lsusb.

📊 На каком этапе у вас возникла проблема с adb shell?
Устройство вообще не определяется
Статус unauthorized или offline
Ошибка при вводе самой команды adb shell
ADB работал, но перестал после обновления

Шаг 4: Перезапуск ADB-сервера и устранение конфликтов

Статус offline или зависание команд часто лечится перезапуском серверной части ADB. Выполните последовательно две команды:

adb kill-server

adb start-server

После этого повторите adb devices и подтвердите запрос на смартфоне, если он появится снова. Если команда adb вообще не распознаётся системой («не является внутренней или внешней командой»), терминал запущен не в папке Platform-Tools либо путь к утилите не добавлен в переменную окружения PATH. Решение — перейти в каталог с adb.exe командой cd или прописать путь в системных переменных.

Ещё одна типичная ситуация — конфликт нескольких версий ADB. На компьютере могут одновременно стоять Platform-Tools, драйвер-паки сторонних программ и встроенные ADB из прошивальщиков. Разные версии сервера конфликтуют, и подключение обрывается. Удалите лишние копии и оставьте одну актуальную версию Platform-Tools.

Шаг 5: Проверка кабеля, портов и режима подключения

Аппаратная сторона недооценена: повреждённый или «зарядочный» кабель без линий данных — одна из самых частых причин, почему adb shell не работает. Проверьте подключение другим, гарантированно исправным кабелем и другим USB-портом компьютера. Порты на передней панели корпуса и USB-хабы иногда дают нестабильное соединение — надёжнее использовать порт непосредственно на материнской плате.

На самом смартфоне проверьте выбранный режим USB в шторке уведомлений после подключения. Режим «Только зарядка» на ряде прошивок блокирует ADB. Переключитесь на MTP или PTP и проверьте вывод adb devices повторно. Точный набор режимов зависит от версии Android и оболочки производителя.

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

Шаг 6: Ошибки при вводе команды adb shell

Отдельный случай — устройство определяется корректно (статус device), но сама команда adb shell возвращает ошибку. Разберём типичные варианты.

  • ⚠️ error: more than one device/emulator — к ПК подключено несколько устройств или запущен эмулятор. Укажите целевое устройство: adb -s серийный_номер shell.
  • ⚠️ permission denied внутри shell — команда требует прав, которых нет у обычного shell-пользователя. Без root-доступа часть системных команд недоступна, и это нормальное ограничение Android.
  • ⚠️ closed или обрыв сессии — нестабильное соединение; вернитесь к проверке кабеля и перезапуску сервера.
  • ⚠️ Команда не найдена внутри shell — не все Unix-утилиты присутствуют в Android; набор доступных команд зависит от версии системы.

Если подключено несколько устройств, список их серийных номеров выводится командой adb devices — скопируйте нужный идентификатор и подставьте его после флага -s.

Как подключиться по Wi-Fi, если USB не работает

На Android 11 и новее (если функция поддерживается прошивкой) доступна беспроводная отладка: включите её в настройках разработчика и выполните сопряжение через adb pair с кодом из настроек, затем adb connect с адресом устройства. На старых версиях Android требуется сначала выполнить adb tcpip 5555 по кабелю, после чего подключиться командой adb connect IP_устройства:5555. Устройство и ПК должны быть в одной сети.

Шаг 7: Когда ничего не помогло

Если все проверки пройдены, а adb shell по-прежнему не работает, действуйте методом исключения. Подключите смартфон к другому компьютеру со свежими Platform-Tools: если там всё работает — проблема в конфигурации вашего ПК (драйверы, антивирус, блокирующий соединения, старые версии ADB). Если не работает и там — вероятна проблема на стороне смартфона.

На стороне устройства попробуйте отозвать авторизации отладки, выключить и снова включить отладку по USB, перезагрузить смартфон. В редких случаях помогает сброс настроек сети и USB, однако к радикальным мерам вроде полного сброса устройства прибегать стоит в последнюю очередь и только после резервного копирования данных.

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

Почему adb devices показывает пустой список?

Наиболее вероятные причины: не включена отладка по USB, не установлен драйвер устройства на ПК, кабель не поддерживает передачу данных либо смартфон находится в режиме «Только зарядка». Проверяйте эти пункты последовательно.

Что делать при статусе unauthorized?

Разблокируйте экран смартфона и подтвердите диалог «Разрешить отладку по USB?». Если диалог не появляется, отзовите прежние авторизации в настройках разработчика и переподключите кабель.

Почему возникает ошибка more than one device?

К компьютеру подключено несколько Android-устройств или работает эмулятор. Уточните цель командой adb -s серийный_номер shell либо отключите лишние устройства.

Можно ли использовать adb shell без USB-кабеля?

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

ADB работал, но перестал после обновления — в чём причина?

Обновление системы на смартфоне может сбросить настройки разработчика и авторизации отладки. Проверьте, что отладка по USB включена, и подтвердите запрос заново. На ПК помогает обновление Platform-Tools до актуальной версии.