Команда adb devices возвращает пустой список, хотя смартфон подключён кабелем и заряжается — это самая частая точка входа в тему ADB у пользователей. Причина почти всегда одна из трёх: не включена отладка по USB, не установлен драйвер на компьютере или смартфон не подтвердил запрос на разрешение отладки. Разберём всё по порядку.
ADB (Android Debug Bridge) — официальная утилита из состава Android SDK Platform Tools, которая позволяет управлять Android-устройством с компьютера: устанавливать приложения, копировать файлы, снимать логи, перезагружать устройство в recovery. Инструмент одинаково нужен и разработчику, и обычному пользователю, который хочет удалить предустановленные приложения или сделать бэкап.
Что такое ADB и как он устроен
ADB работает по клиент-серверной архитектуре и состоит из трёх компонентов. Клиент — это команда, которую вы вводите в терминале. Сервер — фоновый процесс на компьютере, который управляет подключениями. Демон (adbd) — служба на самом смартфоне, которая выполняет пришедшие команды.
Связь возможна двумя способами: по USB-кабелю и по сети Wi-Fi (TCP/IP). Первый способ надёжнее и не требует настройки, второй удобен, когда устройство физически недоступно или порт занят. На современных версиях Android доступна беспроводная отладка через «Параметры разработчика» без предварительного подключения кабелем.
Установка ADB на компьютер
Скачайте архив SDK Platform Tools с официального сайта для разработчиков Android — он доступен для Windows, macOS и Linux. Распакуйте его в папку с простым путём без кириллицы и пробелов, например C:\platform-tools. Это весь «процесс установки»: утилита портативная и не требует инсталлятора.
Чтобы не прописывать полный путь к adb.exe при каждом запуске, откройте терминал прямо в папке с утилитой. В Windows это делается через адресную строку проводника: введите cmd и нажмите Enter. Альтернатива — добавить папку в системную переменную PATH, тогда команда будет работать из любого каталога.
Включение отладки по USB на смартфоне
На устройстве нужно активировать два пункта. Сначала откройте «Настройки → О телефоне» и семь раз нажмите на строку Номер сборки — появится сообщение «Вы стали разработчиком». Затем в разделе «Для разработчиков» (точное расположение зависит от оболочки: у Xiaomi, Samsung и других производителей пункт может находиться в разных подменю) включите «Отладка по USB».
При первом подключении к компьютеру на экране смартфона появится запрос «Разрешить отладку по USB?» с отпечатком RSA-ключа — обязательно подтвердите его и при желании отметьте «Всегда разрешать с этого компьютера». Без этого подтверждения устройство в списке ADB будет отображаться со статусом unauthorized.
☑️ Подготовка смартфона к работе с ADB
⚠️ Внимание: некоторые USB-кабели поддерживают только зарядку и не передают данные. Если смартфон заряжается, но не определяется, первым делом замените кабель на заведомо «дата-кабель» — это устраняет заметную часть проблем с подключением.
Базовые команды ADB
Начните с проверки связи. Команда ниже покажет все подключённые устройства и их статус:
adb devices
Если в списке появилась строка с серийным номером и статусом device — всё настроено правильно. Дальше можно работать с основными командами:
- 📦
adb install app.apk— установка APK-файла на устройство - 🗑️
adb uninstall com.example.app— удаление приложения по имени пакета - 📁
adb push file.txt /sdcard/— копирование файла с ПК на смартфон - 📥
adb pull /sdcard/DCIM/ ./— скачивание файлов со смартфона на ПК - 🔄
adb reboot— перезагрузка устройства (варианты:adb reboot recovery,adb reboot bootloader) - 📋
adb logcat— просмотр системного журнала в реальном времени
Отдельно стоит упомянуть adb shell — она открывает командную оболочку прямо на устройстве. Через неё выполняют команды вроде pm list packages (список установленных пакетов) или pm disable-user для отключения системных приложений без root. Действуйте осторожно: отключение критичных системных компонентов может нарушить работу устройства.
Типичные ошибки и их решение
Разберём статусы, которые возвращает adb devices, и сопутствующие проблемы:
| Симптом | Вероятная причина | Что делать |
|---|---|---|
| Список устройств пуст | Нет драйвера, кабель только для зарядки, отладка выключена | Проверить кабель, включить отладку, установить драйвер |
| Статус unauthorized | Не подтверждён запрос RSA на смартфоне | Отозвать разрешения в настройках разработчика и подключить заново |
| Статус offline | Завис ADB-сервер или конфликт версий | Выполнить adb kill-server, затем adb start-server |
| error: more than one device | Подключено несколько устройств или эмуляторов | Указать цель: adb -s <серийный номер> команда |
| Устройство пропадает при перезагрузке | Сброс авторизации или нестабильный порт USB | Сменить порт на USB напрямую, без хаба |
Универсальное действие при любом «зависании» — перезапуск сервера. Выполните последовательно:
adb kill-server
adb start-server
⚠️ Внимание: не устанавливайте драйверы ADB из сторонних «сборников драйверов» — используйте драйвер от производителя смартфона (например, для устройств Google это Google USB Driver) или стандартный драйвер Windows, который подтягивается автоматически.
ADB по Wi-Fi: беспроводное подключение
На Android 11 и новее беспроводная отладка включается штатно: в «Параметрах разработчика» выберите Беспроводная отладка и подключитесь по коду сопряжения:
adb pair IP-адрес:порт
adb connect IP-адрес:порт
На старых версиях Android требовалось сначала подключить устройство кабелем и выполнить adb tcpip 5555, после чего подключаться по сети. Учтите, что оба устройства должны находиться в одной Wi-Fi сети, а после перезагрузки смартфона настройку на старых версиях приходится повторять.
Почему беспроводной ADB отключается сам
Многие прошивки разрывают ADB-соединение по сети при переходе смартфона в глубокий сон или при смене точки Wi-Fi. Это нормальное поведение, а не неисправность. Просто выполните adb connect заново. Если соединение рвётся постоянно, проверьте, не блокирует ли роутер изоляцию клиентов (AP isolation) — при включённой изоляции устройства в сети не видят друг друга.
Безопасность при работе с ADB
Отладка по USB — это полноценный канал управления устройством. Любой компьютер, которому вы подтвердили RSA-ключ, получает доступ к установке приложений, чтению файлов и выполнению команд. Поэтому держать отладку постоянно включённой без необходимости не стоит.
- 🔒 После завершения работы выключайте отладку по USB в настройках разработчика
- 🚫 Никогда не подтверждайте запрос RSA на чужом или публичном компьютере
- 🧹 Периодически используйте пункт «Отозвать разрешения на отладку по USB», если подключались к разным ПК
- ⚡ Не выполняйте команды
adb shell pm disableдля системных пакетов, назначение которых вам неизвестно
⚠️ Внимание: команды вроде adb reboot bootloader и последующие действия в fastboot могут привести к потере данных при разблокировке загрузчика — на большинстве устройств она сопровождается полным сбросом. Перед любыми операциями с загрузчиком сделайте резервную копию важных данных.
Часто задаваемые вопросы
Нужен ли root для работы с ADB?
Нет. Большинство команд ADB работают без root-прав: установка приложений, передача файлов, логи, отключение пакетов. Root требуется лишь для отдельных операций внутри adb shell, затрагивающих защищённые разделы системы.
Что делать, если adb devices показывает unauthorized?
Разблокируйте смартфон — на экране должен быть запрос на разрешение отладки. Если его нет, отключите и включите отладку по USB заново, отзовите прежние разрешения в настройках разработчика и переподключите кабель. Также помогает перезапуск сервера командой adb kill-server.
Можно ли пользоваться ADB без установки Android Studio?
Да. Достаточно скачать отдельный пакет SDK Platform Tools — он содержит adb и fastboot и не требует ни Android Studio, ни полного SDK. Именно этот вариант подходит большинству пользователей.
Почему Windows не видит смартфон в ADB, хотя файлы передаются?
Передача файлов работает в режиме MTP, а ADB требует отдельного интерфейса и драйвера. Проверьте в диспетчере устройств, нет ли устройства с восклицательным знаком, установите драйвер от производителя смартфона и убедитесь, что отладка по USB включена.
Как узнать имя пакета приложения для удаления через ADB?
Выполните adb shell pm list packages — команда выведет полный список. Для фильтрации добавьте фрагмент названия: adb shell pm list packages | findstr "название" в Windows или grep в macOS и Linux.