Команда adb devices возвращает пустой список или строку no devices/emulators found, хотя смартфон физически подключён к компьютеру, — это классический симптом разрыва на одном из трёх уровней: USB-подключение, драйвер на ПК или авторизация отладки на самом телефоне. Прежде чем переустанавливать что-либо, стоит локализовать, на каком именно уровне теряется связь.
Проблема встречается на Windows, macOS и Linux, причём на Windows чаще всего виноваты драйверы, на Linux — права доступа (правила udev), а на macOS — конфликтующие процессы. Ниже разберём диагностику по шагам: от самых простых проверок к более глубоким.
Шаг 1: Проверка кабеля и USB-порта
Самая частая и самая обидная причина — кабель, который умеет только заряжать. Многие дешёвые USB-кабели не содержат линий передачи данных, поэтому телефон заряжается, но компьютер его просто не видит. Замените кабель на заведомо «дата-кабель», например тот, которым телефон успешно подключался к ПК как накопитель.
Далее проверьте порт. Подключайте устройство напрямую к USB-порту материнской платы (на задней панели ПК), минуя хабы, разветвители и переднюю панель корпуса. Если есть возможность, попробуйте порт USB 2.0 вместо USB 3.x — с некоторыми связками контроллеров и драйверов это помогает.
- 🔌 Замените кабель на заведомо рабочий с поддержкой передачи данных
- 🖥️ Подключитесь напрямую к порту ПК, без USB-хабов
- 🔄 Попробуйте другой USB-порт, в том числе USB 2.0
- 📱 Проверьте, определяется ли телефон как MTP-накопитель — если нет, проблема точно на уровне кабеля или порта
Шаг 2: Включение отладки по USB на устройстве
Без активированной отладки по USB (USB debugging) ADB не увидит устройство в принципе. Сначала нужно разблокировать режим разработчика: откройте Настройки → О телефоне и несколько раз нажмите на пункт «Номер сборки» до появления сообщения о включении режима разработчика. Точное название пункта может отличаться в зависимости от оболочки — MIUI, One UI, ColorOS имеют свои вариации.
Затем перейдите в появившийся раздел Для разработчиков (обычно внутри «Система» или «Расширенные настройки») и включите переключатель «Отладка по USB». После этого переподключите кабель.
⚠️ Внимание: на некоторых устройствах переключатель отладки по USB автоматически отключается после отзыва авторизаций, сброса настроек или обновления системы. Если ADB раньше работал, а теперь нет — первым делом проверьте, не сбросился ли этот переключатель.
Шаг 3: Авторизация RSA-ключа на смартфоне
Даже при включённой отладке устройство может отображаться в списке как unauthorized или не отображаться вовсе, если вы не подтвердили запрос на доверие к компьютеру. При первом подключении на экране телефона должно появиться диалоговое окно «Разрешить отладку по USB?» с отпечатком ключа — отметьте «Всегда разрешать с этого компьютера» и нажмите «ОК».
Если окно не появляется, выполните в терминале последовательно:
adb kill-server
adb start-server
adb devices
Перезапуск сервера заново инициирует рукопожатие, и запрос авторизации обычно появляется повторно. Если диалог так и не показывается, в разделе «Для разработчиков» найдите пункт «Отозвать авторизацию отладки по USB», нажмите его и переподключите устройство.
Шаг 4: Драйверы ADB на Windows
На Windows отсутствие корректного драйвера — причина номер один, когда телефон виден в системе, но adb devices возвращает пустой список. Откройте Диспетчер устройств и посмотрите, как определяется подключённый смартфон:
- ⚠️ Устройство с жёлтым восклицательным знаком — драйвер отсутствует или повреждён
- 📁 Устройство в разделе «Переносные устройства» — установлен MTP-драйвер, но нет ADB-интерфейса
- ✅ Пункт «Android Device» → «Android Composite ADB Interface» — драйвер установлен правильно
Для установки драйвера скачайте Google USB Driver через SDK Manager в Android Studio или используйте драйвер от производителя смартфона. Затем в Диспетчере устройств: правый клик по устройству → Обновить драйвер → Найти на этом компьютере → Выбрать из списка и укажите распакованную папку с драйвером.
☑️ Чек-лист установки драйвера ADB
Шаг 5: Особенности Linux и macOS
На Linux ADB часто не видит устройство из-за отсутствия прав доступа к USB. Симптом: adb devices показывает no permissions. Решение — добавить правила udev для вашего устройства или запустить сервер с повышенными правами для проверки:
sudo adb kill-server
sudo adb start-server
adb devices
Если с sudo устройство видно, значит проблема именно в правах, и нужно настроить правила udev — конкретный файл и его содержимое зависят от дистрибутива, поэтому сверяйтесь с документацией вашей системы. На macOS драйверы не требуются, но помогает перезапуск сервера и проверка того, что ADB установлен корректно (например, через Homebrew или официальные platform-tools).
⚠️ Внимание: постоянная работа ADB через sudo — плохая практика. Используйте её только для диагностики, а затем настройте корректные права доступа, чтобы сервер работал от обычного пользователя.
Шаг 6: Конфликты версий и процессов ADB
Если на компьютере установлено несколько копий ADB — например, из Android Studio, отдельные platform-tools и какая-нибудь утилита прошивки — они могут конфликтовать. Разные версии сервера несовместимы: при запуске второй копии первая «отваливается», и устройство пропадает из списка.
Проверьте, какая версия и откуда запускается:
adb version
where adb
На Windows команда where adb покажет все найденные копии в PATH (на Linux/macOS — which -a adb). Оставьте одну актуальную версию platform-tools и уберите остальные из переменной PATH. Также завершите фоновые процессы программ для прошивки и синхронизации, которые могут занимать ADB-интерфейс.
Сводная таблица диагностики
| Симптом | Вероятная причина | Что делать |
|---|---|---|
| ПК вообще не видит телефон | Кабель без линий данных, неисправный порт | Заменить кабель, подключиться напрямую к порту ПК |
| adb devices — пустой список | Отключена отладка по USB или нет драйвера | Включить отладку, установить ADB-драйвер |
| Статус unauthorized | Не подтверждён RSA-ключ на телефоне | Разрешить отладку в диалоге на экране устройства |
| Статус no permissions (Linux) | Нет прав доступа к USB | Настроить правила udev, проверить через sudo |
| Устройство периодически пропадает | Конфликт версий ADB или нестабильный порт | Оставить одну версию platform-tools, сменить порт |
Что делать, если ничего не помогло
Проверьте устройство на другом компьютере — если и там не определяется, проблема на стороне смартфона (разъём, настройки, прошивка). Попробуйте перезагрузить телефон, очистить данные приложения «Настройки» не нужно, но можно сбросить настройки USB в разделе разработчика, если такой пункт есть в вашей оболочке. Как крайняя мера — проверка через ADB over Wi-Fi, если устройство и ПК в одной сети и функция поддерживается вашей версией Android.
Часто задаваемые вопросы
Почему adb devices показывает устройство как unauthorized?
Это означает, что на смартфоне не подтверждён запрос «Разрешить отладку по USB?». Разблокируйте экран телефона, выполните adb kill-server и adb devices заново — диалог должен появиться повторно. Отметьте «Всегда разрешать» и подтвердите.
Телефон заряжается, но компьютер его не видит. Это проблема ADB?
Нет, в этом случае проблема на физическом уровне: кабель без линий передачи данных, неисправный порт или разъём. ADB здесь ни при чём — сначала добейтесь, чтобы телефон определялся системой как устройство (например, MTP-накопитель).
Нужно ли устанавливать Android Studio целиком ради ADB?
Не обязательно. Google распространяет platform-tools отдельным пакетом, который содержит adb и fastboot. Для большинства задач этого достаточно; Android Studio нужна только для полноценной разработки.
ADB видел устройство, а после обновления телефона перестал. Почему?
Обновление системы может сбросить настройки разработчика, отозвать авторизации отладки или изменить USB-конфигурацию. Проверьте, включена ли отладка по USB, отзовите старые авторизации и подтвердите запрос заново.
Можно ли использовать ADB без кабеля?
Да, если устройство и ПК находятся в одной сети и устройство поддерживает отладку по Wi-Fi. В современных версиях Android есть соответствующий пункт в разделе «Для разработчиков». Однако для первичной настройки может потребоваться подключение по кабелю — это зависит от версии системы.