Команда adb devices выводит пустой список или статус no permissions — самая частая ситуация при первом запуске ADB на Linux, и почти всегда причина в отсутствии udev-правил для USB-идентификатора устройства, а не в неисправности кабеля или смартфона. ADB (Android Debug Bridge) — это официальная утилита из состава Android SDK Platform Tools, которая позволяет управлять Android-устройством с компьютера: устанавливать приложения, передавать файлы, снимать логи и выполнять команды в shell устройства.
В отличие от Windows, где требуется установка отдельного USB-драйвера, в Linux поддержка ADB уже встроена в ядро. Однако дистрибутивы по-разному поставляют пакет, а права доступа к USB-устройству по умолчанию часто ограничены. В этом руководстве разберём установку ADB на популярные дистрибутивы, настройку прав доступа, базовые команды и решение типовых проблем.
Что такое ADB и зачем он нужен в Linux
ADB работает по клиент-серверной архитектуре: на компьютере запускается серверный процесс, который обменивается данными с демоном adbd на Android-устройстве. Соединение возможно по USB-кабелю или по сети (Wi-Fi), если устройство и компьютер находятся в одной подсети.
Инструмент полезен не только разработчикам. С его помощью можно удалить предустановленные приложения без root, сделать скриншот или запись экрана, снять системные логи для диагностики, а также выполнить команды, недоступные через обычный интерфейс смартфона.
- 📱 Установка и удаление APK-файлов без магазина приложений
- 📁 Передача файлов между компьютером и устройством командами
pushиpull - 🐞 Просмотр системных логов через
adb logcatдля диагностики сбоев - 🔧 Выполнение shell-команд прямо на устройстве
Установка ADB на разные дистрибутивы
Самый простой способ — установить готовый пакет из официального репозитория дистрибутива. В Debian, Ubuntu и производных пакет называется adb или android-tools-adb в зависимости от версии системы:
sudo apt update
sudo apt install adb
В Fedora и родственных системах пакет называется android-tools, в Arch Linux — android-tools из основного репозитория. После установки проверьте версию командой adb version: она должна вывести номер версии и путь к исполняемому файлу.
Альтернативный вариант — скачать свежие Platform Tools с официального сайта Android для разработчиков. Это актуально, если версия в репозитории устарела и возникают проблемы совместимости с новыми устройствами. Архив достаточно распаковать и запускать бинарный файл из каталога, либо добавить путь в переменную PATH.
Подготовка Android-устройства
Перед подключением необходимо активировать отладку по USB на самом смартфоне или планшете. Для этого откройте настройки устройства, найдите раздел «О телефоне» и несколько раз нажмите на пункт «Номер сборки», пока не появится сообщение о разблокировке режима разработчика. Точное название пунктов может отличаться в зависимости от оболочки производителя.
Затем в появившемся меню «Для разработчиков» включите переключатель Отладка по USB. При первом подключении к компьютеру на экране устройства появится запрос на разрешение отладки — подтвердите его и при желании отметьте пункт «Всегда разрешать с этого компьютера».
☑️ Подготовка устройства к работе с ADB
⚠️ Внимание: некоторые USB-кабели поддерживают только зарядку и не передают данные. Если устройство заряжается, но не определяется системой, первым делом замените кабель — это устраняет значительную часть проблем с подключением.
Настройка udev-правил и прав доступа
Именно на этом этапе возникает ошибка no permissions (user in plugdev group; are your udev rules wrong?). Linux по умолчанию не даёт обычному пользователю доступ к USB-устройствам отладки, поэтому нужно либо добавить правило udev, либо воспользоваться пакетом android-udev-rules, если он доступен в репозитории вашего дистрибутива.
Ручной способ: определите идентификатор производителя устройства командой lsusb при подключённом смартфоне. Строка вывода содержит пару вида 18d1:4ee7, где первая часть — idVendor. Затем создайте файл правила:
sudo nano /etc/udev/rules.d/51-android.rules
В файл добавьте строку, подставив свой идентификатор:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
После сохранения перезагрузите правила командой sudo udevadm control --reload-rules, отключите и заново подключите устройство. Также убедитесь, что ваш пользователь входит в группу plugdev (в некоторых дистрибутивах группа может называться иначе).
Основные команды ADB
После успешного подключения команда adb devices покажет серийный номер устройства со статусом device. Статус unauthorized означает, что на смартфоне не подтверждён запрос на отладку — разблокируйте экран и проверьте уведомления.
| Команда | Назначение |
|---|---|
adb install app.apk | Установка APK-файла на устройство |
adb uninstall com.example.app | Удаление приложения по имени пакета |
adb push file /sdcard/ | Копирование файла с ПК на устройство |
adb pull /sdcard/file ./ | Копирование файла с устройства на ПК |
adb logcat | Просмотр системных логов в реальном времени |
adb shell | Интерактивная командная оболочка устройства |
Для перезагрузки устройства в режим восстановления или загрузчика используются команды adb reboot recovery и adb reboot bootloader. Это удобно, когда аппаратные кнопки не работают или комбинация клавиш неизвестна для конкретной модели.
Как удалить системное приложение без root
Через adb shell можно отключить предустановленное приложение командой вида: pm uninstall -k --user 0 имя.пакета. Приложение удаляется только для текущего пользователя и возвращается после сброса настроек. Перед удалением убедитесь, что пакет не является критичным для работы системы — удаление важных компонентов может нарушить функциональность устройства.
ADB по Wi-Fi и типовые проблемы
На устройствах с современными версиями Android доступна беспроводная отладка через раздел «Для разработчиков». После её включения устройство показывает IP-адрес, порт и код сопряжения. Подключение выполняется командами adb pair адрес:порт для сопряжения и adb connect адрес:порт для установки соединения. Точный порядок зависит от версии Android — на старых версиях требовалось сначала выполнить adb tcpip 5555 при подключении по USB.
Если соединение периодически обрывается, проверьте, не «засыпает» ли Wi-Fi-модуль устройства, и не блокирует ли трафик брандмауэр на компьютере. Также сервер ADB иногда зависает: помогает перезапуск командами adb kill-server и adb start-server.
⚠️ Внимание: не оставляйте беспроводную отладку включённой постоянно в недоверенных сетях. Открытый порт ADB без должной защиты теоретически позволяет третьим лицам получить доступ к устройству — отключайте функцию после завершения работы.
Часто задаваемые вопросы
Что означает статус unauthorized в выводе adb devices?
Устройство обнаружено, но компьютер не авторизован для отладки. Разблокируйте экран смартфона — там должен отображаться запрос на разрешение отладки с RSA-отпечатком. Подтвердите его. Если запрос не появляется, отключите и снова включите отладку по USB, а также попробуйте пункт «Отозвать авторизацию отладки» в настройках разработчика.
Нужен ли root-доступ для работы ADB?
Нет, ADB работает на устройствах без root. Отладка по USB — штатная функция Android. Однако некоторые команды внутри adb shell требуют повышенных привилегий и будут недоступны без root.
adb: command not found — что делать?
Утилита не установлена или её каталог не добавлен в PATH. Установите пакет через пакетный менеджер дистрибутива либо, если вы распаковали Platform Tools вручную, запускайте ./adb из каталога распаковки или добавьте путь в файл ~/.bashrc.
Устройство видно в lsusb, но adb его не видит
Это классический признак отсутствия udev-правил. Создайте файл /etc/udev/rules.d/51-android.rules с правилом для вашего idVendor, перезагрузите правила через udevadm и переподключите устройство. Дополнительно проверьте, что на смартфоне выбран режим USB-подключения, допускающий передачу данных.
Можно ли пользоваться ADB без установки всего Android SDK?
Да. Пакет adb из репозитория дистрибутива или отдельный архив Platform Tools полностью самодостаточны — полная среда Android Studio для работы с ADB не требуется.