Android: adb без sudo

Если при попытке получить список подключенных устройств командой adb devices получаем сообщение:

????????????   no permissions

или при подключении к консоли андроид adb shell видим ошибку:

error: insufficient permissions for device

То явно существует какая-то проблема с правами доступа.

Самый простой вариант решения этой проблемы — запуск adb из под sudo

adb kill-server
sudo adb shell

Но это не путь настоящего джедая, правильный путь — это добавить правило для udev.

Итак, по порядку:

Создадим файл /etc/udev/rules.d/51-android.rules со следующим содержанием:

SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"

Это правило означает, что при появлении в подсистеме «usb» устройства с vendor-id равным 0x19d2 регистрируему устройству надо установить права доступа 0666 и группу plugdev.

vendor-id можно узнать при помощи команды lsusb, пример вывода для телефона ZTE Geek V975

Bus 005 Device 009: ID 19d2:0344 ZTE WCDMA Technologies MSM 

После того как создано новое правило перезапускаем udev:

sudo udevadm control --reload-rules

Проверяем, находится ли текущий пользователь в группе plugdev.

id | grep plugdev

Если в консоль ничего не вывелось, то добавляем пользователя в группу plugdev

sudo gpasswd -a USERNAME plugdev

USERNAME надо заменить на имя пользователя.

После этого заново логинимся в систему и можно запускать adb без sudo.

Запись опубликована в рубрике Программирование под android с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>