Команда adb devices возвращает пустой список или статус unauthorized — самая частая точка входа в тему отладки через ADB. В большинстве таких случаев причина находится в одном из трёх мест: не включён режим разработчика на смартфоне, не подтверждён RSA-отпечаток компьютера на экране устройства или система не видит USB-драйвер.
ADB (Android Debug Bridge) — официальная утилита из состава Android SDK Platform-Tools, которая позволяет компьютеру обмениваться командами со смартфоном: устанавливать приложения, снимать логи, передавать файлы и выполнять системные операции без root-доступа. Ниже разберём включение отладки, установку инструментов, базовые команды и типовые ошибки с безопасными способами их устранения.
Что такое ADB и когда он нужен
ADB работает по клиент-серверной схеме: на компьютере запускается ADB-сервер, который через USB-кабель или Wi-Fi связывается с демоном adbd на устройстве. Пока демон не получил разрешение на сопряжение с конкретным компьютером, никакие команды выполняться не будут — это базовый механизм защиты Android.
На практике отладка через ADB применяется для задач, которые недоступны через обычный интерфейс настроек:
- 🔍 снятие системных логов командой
adb logcatпри поиске причины сбоев приложений; - 📦 установка и удаление APK-файлов, включая отключение предустановленных программ без root;
- 📁 передача файлов между ПК и смартфоном через
adb pushиadb pull; - 🔄 перезагрузка в режимы bootloader и recovery для дальнейшей диагностики;
- 🛠️ выполнение shell-команд внутри системы Android прямо с компьютера.
Для разработчика это основной инструмент тестирования, для обычного пользователя — способ решить конкретную задачу, например удалить неудаляемое стандартными средствами приложение или вытащить данные с устройства с повреждённым сенсором.
Включение отладки по USB на смартфоне
Первое действие — активировать режим разработчика. Откройте Настройки → О телефоне и семь раз подряд нажмите на пункт «Номер сборки». Система попросит ввести PIN-код или графический ключ, после чего появится уведомление «Вы стали разработчиком». На некоторых оболочках (например, MIUI или ColorOS) пункт называется иначе — «Версия MIUI» или аналогичный, поэтому сверьтесь с инструкцией именно вашей прошивки.
После этого в настройках появится раздел Для разработчиков (обычно внутри «Система» или «Расширенные настройки»). В нём необходимо включить переключатель «Отладка по USB». Именно этот пункт разрешает демону adbd принимать подключения от компьютера.
⚠️ Внимание: активная отладка по USB снижает защиту устройства. Не подключайте смартфон с включённой отладкой к чужим компьютерам и публичным зарядным станциям — через ADB возможен доступ к данным без разблокировки экрана на уже авторизованных машинах. После завершения работы отладку разумно отключить.
Установка ADB на компьютер
Самый надёжный способ — скачать архив SDK Platform-Tools с официального сайта Android Developers. Он доступен для Windows, macOS и Linux и не требует установки: достаточно распаковать папку, например в C:\platform-tools, и запускать команды из неё через терминал или командную строку.
Для Windows дополнительно может понадобиться USB-драйвер производителя смартфона (у Google-устройств это Google USB Driver, у Samsung, Xiaomi и других — свои пакеты). Без корректного драйвера устройство определится в системе как неизвестное, и ADB его не увидит. Проверить это можно в «Диспетчере устройств»: смартфон в режиме отладки должен отображаться как Android ADB Interface без жёлтого восклицательного знака.
☑️ Подготовка к отладке через ADB
Отдельно проверьте сам кабель. Недорогие «зарядные» кабели часто не содержат линий передачи данных — через них смартфон заряжается, но ADB-подключение физически невозможно. Это одна из самых недооценённых причин проблемы.
Первое подключение и проверка связи
Подключите смартфон кабелем, откройте терминал в папке Platform-Tools и выполните первую команду:
adb devices
При первом запуске на экране телефона появится диалог «Разрешить отладку по USB?» с RSA-отпечатком ключа компьютера. Отметьте «Всегда разрешать с этого компьютера» и подтвердите. До этого подтверждения устройство в списке будет отображаться со статусом unauthorized — это нормальное промежуточное состояние, а не ошибка.
Если всё настроено верно, вывод команды покажет серийный номер устройства и статус device. Это означает, что канал отладки установлен и можно переходить к рабочим командам.
Основные команды ADB
Набор команд ADB широк, но в повседневной работе чаще всего востребована небольшая группа. Ниже — те, которые стоит знать в первую очередь.
| Команда | Назначение | Пример |
|---|---|---|
adb devices | Список подключённых устройств и их статус | adb devices |
adb install | Установка APK-файла | adb install app.apk |
adb shell pm uninstall | Удаление пакета (с ключом --user 0 — для текущего пользователя) | adb shell pm uninstall --user 0 com.example.app |
adb logcat | Просмотр системного журнала в реальном времени | adb logcat |
adb reboot | Перезагрузка (с параметрами bootloader или recovery) | adb reboot recovery |
Команда adb shell открывает интерактивный терминал внутри Android, где доступны стандартные Linux-утилиты и системные команды вроде pm (менеджер пакетов) и settings (изменение системных параметров). Выйти из shell — командой exit.
Как узнать имя пакета приложения для удаления
Выполните adb shell pm list packages — команда выведет все установленные пакеты. Чтобы найти конкретное приложение, добавьте фильтр, например: adb shell pm list packages | findstr "browser" (Windows) или adb shell pm list packages | grep browser (Linux/macOS).
Для передачи файлов используйте связку adb push файл_на_ПК /sdcard/ (с компьютера на телефон) и adb pull /sdcard/файл ./ (обратно). Это удобно, когда MTP-режим работает нестабильно или нужно скопировать данные из системных каталогов, доступных без root.
Отладка по Wi-Fi без кабеля
Начиная с Android 11 в систему встроена беспроводная отладка: пункт «Отладка по Wi-Fi» находится в разделе для разработчиков. Телефон показывает IP-адрес, порт и код сопряжения, после чего подключение выполняется командами вида:
adb pair 192.168.1.50:37000
adb connect 192.168.1.50:42000
Конкретные адрес и порты подставляются из экрана смартфона — они генерируются при каждом новом сеансе. Оба устройства должны находиться в одной сети Wi-Fi.
На более старых версиях Android беспроводное подключение тоже возможно, но требует первичной инициализации по кабелю командой adb tcpip 5555, после чего выполняется adb connect по IP-адресу телефона. Учтите, что после перезагрузки устройства настройка сбрасывается и кабель понадобится снова.
Типичные ошибки и их устранение
Разберём состояния, с которыми чаще всего сталкиваются при отладке через ADB, и безопасные шаги диагностики.
«Device not found» или пустой список. Проверьте по порядку: включена ли отладка по USB, исправен ли кабель (попробуйте другой, гарантированно с линиями данных), установлен ли драйвер, не выбран ли на телефоне режим «Только зарядка». На Windows также помогает перезапуск ADB-сервера:
adb kill-server
adb start-server
Статус unauthorized. Диалог подтверждения не был принят или был отклонён. Отключите и снова подключите кабель, следя за экраном телефона. Если диалог не появляется, в разделе для разработчиков выполните «Отозвать авторизацию отладки по USB» и подключитесь заново.
Статус offline. Обычно указывает на рассинхронизацию версий ADB или сбой демона. Обновите Platform-Tools до актуальной версии, перезапустите сервер, перезагрузите смартфон.
⚠️ Внимание: командыadb shell pm uninstallи изменения черезsettings putдействуют на системные компоненты. Удаление критичных пакетов (например, системного лаунчера или сервисов связи) может нарушить работу устройства. Перед удалением убедитесь, что точно знаете назначение пакета, и не трогайте компоненты, назначение которых вам неизвестно.
⚠️ Внимание: команды fastboot и разблокировка загрузчика стирают все данные устройства и могут лишить гарантии. Если ваша задача ограничивается обычной отладкой — установкой приложений, логами, файлами — разблокировка загрузчика не требуется вовсе.
Безопасность при работе с ADB
ADB предоставляет широкий доступ к системе, поэтому к нему стоит относиться как к административному инструменту. Держите отладку выключенной в повседневном режиме и включайте только на время работы. Не подтверждайте RSA-диалог на чужих компьютерах, а если подтверждение было дано случайно — отзовите авторизацию в настройках разработчика.
Дополнительная мера — периодически проверять список авторизованных компьютеров: если устройство когда-либо подключалось к публичной машине, сбросьте авторизацию. Эти простые действия полностью закрывают основной вектор злоупотребления отладочным интерфейсом.
Часто задаваемые вопросы
Нужен ли root-доступ для работы с ADB?
Нет. Базовые функции — установка приложений, логи, передача файлов, удаление пакетов для текущего пользователя, shell-команды — работают на стоковой прошивке без root. Права суперпользователя расширяют возможности внутри adb shell, но для большинства задач не требуются.
Почему компьютер не видит телефон, хотя отладка включена?
Наиболее вероятные причины: кабель без линий передачи данных, отсутствующий или неисправный USB-драйвер, режим подключения «Только зарядка» или сбой ADB-сервера. Проверяйте эти пункты последовательно, начиная с замены кабеля — это самая частая причина.
Можно ли пользоваться ADB на macOS и Linux?
Да, Platform-Tools выпускаются для всех трёх платформ. На macOS и Linux отдельные USB-драйверы, как правило, не нужны. На Linux может потребоваться настройка правил udev для доступа к устройству без прав суперпользователя — это описано в официальной документации Android.
Что означает статус unauthorized в выводе adb devices?
Устройство физически подключено, но компьютер не авторизован. Разблокируйте смартфон и подтвердите диалог «Разрешить отладку по USB?» на его экране. Если диалог не появляется, отзовите авторизацию в настройках разработчика и переподключите кабель.
Опасно ли оставлять отладку по USB включённой постоянно?
Риск умеренный, но реальный: любой ранее авторизованный компьютер получает расширенный доступ к устройству. Если смартфон не подключается к чужим ПК и публичным зарядкам, постоянная отладка допустима, однако отключение вне работы — более безопасная практика.