Команда adb devices выводит пустой список или строку no permissions — именно с этой ситуации чаще всего начинается знакомство с ADB в Linux. Причина почти всегда одна из трёх: не установлены пакеты platform-tools, отсутствуют udev-правила для доступа к USB-устройству или на смартфоне не включена отладка по USB. Всё это решается за несколько минут, если действовать в правильном порядке.
ADB (Android Debug Bridge) — это консольная утилита для взаимодействия компьютера с Android-устройством: установка приложений, передача файлов, доступ к shell, снятие логов и прошивка разделов. В Linux инструмент работает без дополнительных драйверов, в отличие от Windows, но требует корректной настройки прав доступа. Ниже разберём установку, подключение и основные сценарии использования.
Установка ADB в Linux
Самый простой способ — поставить пакеты из официального репозитория вашего дистрибутива. В Debian, Ubuntu и производных используется команда:
sudo apt update
sudo apt install adb fastboot
В Fedora пакет называется android-tools, в Arch Linux — android-tools из официального репозитория. После установки проверьте версию командой adb version — если выводится номер версии, бинарный файл на месте.
Альтернативный вариант — скачать SDK Platform Tools с официального сайта Android Developers. Архив распаковывается в любую папку, а исполняемые файлы запускаются напрямую или добавляются в переменную PATH. Этот способ даёт самую свежую версию инструментов, что важно для работы с новыми устройствами.
Включение отладки по USB на Android
Без активированной отладки ADB не увидит устройство. Последовательность действий на смартфоне:
- 📱 Откройте
Настройки → О телефонеи семь раз нажмите на пункт «Номер сборки» — появится сообщение о разблокировке режима разработчика. - 🔧 Вернитесь в настройки и найдите раздел «Для разработчиков» (обычно внутри «Система» или «Расширенные настройки»).
- 🔌 Включите переключатель «Отладка по USB».
- ✅ Подключите устройство кабелем и подтвердите запрос на разрешение отладки на экране смартфона.
Пункт «Номер сборки» и расположение меню разработчика могут отличаться в зависимости от оболочки — MIUI, One UI, ColorOS и «чистый» Android размещают их по-разному. Если пункт не находится, воспользуйтесь поиском по настройкам.
⚠️ Внимание: не включайте отладку по USB на устройстве, которое используете в общественных местах с чужими компьютерами. Открытая отладка позволяет выполнять команды на смартфоне без разблокировки экрана при наличии подтверждённого RSA-ключа.
Настройка udev-правил и решение ошибки no permissions
Если adb devices показывает устройство со статусом no permissions или unauthorized, система не даёт вашему пользователю доступ к USB-узлу. В большинстве современных дистрибутивов пакет android-udev-rules или встроенные правила решают проблему автоматически, но иногда требуется ручная настройка.
Универсальный обходной путь — перезапуск сервера ADB с правами root:
adb kill-server
sudo adb start-server
adb devices
Более правильное решение — создать файл udev-правил в /etc/udev/rules.d/ с идентификатором производителя устройства. Узнать idVendor можно командой lsusb при подключённом смартфоне. После добавления правила выполните sudo udevadm control --reload-rules и переподключите кабель.
Проверка подключения и первые команды
Когда устройство определилось, можно переходить к практике. Базовый набор команд, который покрывает большинство задач:
| Команда | Назначение |
|---|---|
adb devices | Список подключённых устройств и их статус |
adb shell | Интерактивная командная оболочка на устройстве |
adb install app.apk | Установка APK-файла на устройство |
adb push file /sdcard/ | Копирование файла с компьютера на смартфон |
adb pull /sdcard/file ./ | Копирование файла со смартфона на компьютер |
Если к компьютеру подключено несколько устройств, указывайте целевое через флаг -s и серийный номер из вывода adb devices, например: adb -s emulator-5554 shell.
☑️ Проверка готовности ADB к работе
Продвинутые сценарии: логи, перезагрузка, Wi-Fi
Для диагностики приложений полезна команда adb logcat — она выводит системный журнал в реальном времени. Поток можно фильтровать по тегу или уровню важности, а также сохранять в файл для последующего анализа.
ADB умеет перезагружать устройство в разные режимы: adb reboot — обычная перезагрузка, adb reboot bootloader — переход в режим загрузчика для работы с fastboot, adb reboot recovery — вход в рекавери. Доступность отдельных режимов зависит от конкретной модели устройства.
Отладка по Wi-Fi позволяет обойтись без кабеля. На Android 11 и новее функция «Беспроводная отладка» встроена в меню разработчика и работает через сопряжение по коду. На более старых версиях требуется сначала подключиться по USB и выполнить adb tcpip 5555, после чего подключиться по IP-адресу командой adb connect 192.168.1.x:5555.
⚠️ Внимание: беспроводная отладка открывает сетевой порт на устройстве. Используйте её только в доверенной домашней сети и отключайте после завершения работы.
Типичные ошибки и их решение
«command not found» — пакет не установлен или путь к бинарному файлу не добавлен в PATH. Проверьте установку через пакетный менеджер или запускайте ADB из папки Platform Tools с префиксом ./adb.
Пустой список устройств — проверьте кабель: часть дешёвых кабелей передаёт только питание, но не данные. Также попробуйте другой USB-порт, желательно напрямую на материнской плате, без хабов. На смартфоне убедитесь, что режим USB-подключения не ограничен «только зарядкой».
«device offline» — обычно помогает перезапуск сервера: adb kill-server && adb start-server, а затем переподключение устройства. Иногда требуется отозвать авторизации отладки в меню разработчика и подтвердить запрос заново.
FAQ: частые вопросы про ADB в Linux
Нужен ли root на смартфоне для работы ADB?
Нет. Базовые команды — установка APK, передача файлов, logcat, перезагрузка — работают на любых устройствах с включённой отладкой. Root требуется только для операций с системными разделами и защищёнными данными.
Чем ADB отличается от Fastboot?
ADB работает при загруженной системе Android и предназначен для отладки и управления файлами. Fastboot работает в режиме загрузчика и используется для прошивки разделов, разблокировки bootloader и низкоуровневых операций.
Почему ADB не видит устройство, хотя оно заряжается от ПК?
Зарядка не гарантирует передачу данных. Проверьте кабель, смените USB-порт, убедитесь, что на смартфоне включена отладка по USB и выбран режим передачи данных (MTP или «Передача файлов»), а также проверьте udev-правила и вывод lsusb.
Как удалить приложение через ADB без root?
Команда adb shell pm uninstall --user 0 имя.пакета удаляет приложение для текущего пользователя. Это работает и для части предустановленных программ, но удаление критичных системных компонентов может нарушить работу устройства — действуйте осторожно и заранее узнайте назначение пакета.
Безопасно ли держать отладку по USB включённой постоянно?
На личном устройстве, которое не подключается к чужим компьютерам, риск невелик — каждое новое подключение требует подтверждения на экране. Тем не менее, если отладка не нужна ежедневно, её разумно отключать.