Ошибка: insufficient permissions for device: user in plugdev group; are your udev rules wrong?

Ошибка: insufficient permissions for device: user in plugdev group are your udev rules wrong?

Данная ошибка может возникать при попытке послать какую-нибудь команду телефону с помощью adb на ОС Linux. Выглядит эта ошибка, таким вот образом:

adb reboot bootloader
error: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information

Исправляем ошибку (ADB)

В статье будут рассмотрены 2 способа, как эту ошибку можно исправить именно для случая, когда данная ошибка возникает при работе ADB. Первый способ - быстрый, но его придется проделывать каждый раз, второй - способ чуть дольше, зато это надо будет сделать лишь один раз.

Для корректной работы adb в вашем телефоне, необходимо чтобы была активирована настройка "Отладка Android", т.е. был включен интерфейс "Android Debug Bridge (ADB)". Как это сделать на вашей модели телефона, необходимо спросить гугл.

Подключаем кабель к телефону и включаем режим отладки:


Способ 1 (быстрый)

Быстро обойти эту ошибку можно поменяв режим работы USB на "Режим PTP".

Никаких дополнительных действий больше не требуется, после смены режима на PTP ошибка должна исчезнуть.

Способ 2 (чуть дольше)

Если вам лень каждый раз переключать режим работы USB, чтобы избежать этой ошибки, то можно пойти более правильным, но длинным путем.
Первым делом вводим команду lsusb и ищем ID нашего телефона:

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 111: ID 046d:c539 Logitech, Inc. 
Bus 001 Device 007: ID 1b1c:0c13 Corsair 
Bus 001 Device 006: ID 046d:c53d Logitech, Inc. 
Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 048d:8297 Integrated Technology Express, Inc. 
Bus 001 Device 004: ID 0a89:0030  
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 117: ID 18d1:4ee7 Google Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

В моем случае, он называется Google Inc. и его ID 18d1:4ee7.

В вашем случае, ID будет другим и именно ВАШИ значения надо подставлять

Далее, нам необходимо создать файл с настройками для udev (если он уже не был создан ранее). В моем примере я воспользуюсь редактором nano для редактирования файла.

sudo nano /etc/udev/rules.d/51-android.rules

И вносим в этот файл следующую строчку:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0666", GROUP="plugdev"

Для ATTR{idVendor} мы берем первые 4 символа (до символа двоеточия), которые мы получили в предыдущем пункте для нашего телефона, а для ATTR{idProduct} оставшиеся 4 символа (после двоеточия).
После этого сохраняем изменения в файле и применяем изменения следующей командой:

sudo udevadm control --reload-rules

После этого ОБЯЗАТЕЛЬНО, вынимаем из телефона USB кабель и подключаем его еще раз. Включаем режим отладки и данная ошибка должна исчезнуть.

Исправляем ошибку (FASTBOOT)

Если вы получаете такую же ошибку при работе fastboot, то она исправляется аналогичным способом. Переводим наш телефон в режим bootloader.

Когда телефон загрузился соответствующий режим, то в консоли проделываем следующее:
Первым делом вводим команду lsusb и ищем ID нашего телефона:

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 111: ID 046d:c539 Logitech, Inc. 
Bus 001 Device 007: ID 1b1c:0c13 Corsair 
Bus 001 Device 006: ID 046d:c53d Logitech, Inc. 
Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 048d:8297 Integrated Technology Express, Inc. 
Bus 001 Device 004: ID 0a89:0030  
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 119: ID 18d1:d00d Google Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Обратите внимание, что ID для режима работы adb и fastboot у вашего телефона могут различаться, поэтому в 51-android.rules необходимо добавлять 2 строчки с разными ID для каждого режима работы телефона (см. Заключение)

В моем случае, он называется Google Inc. и его ID 18d1:d00d.

В вашем случае, ID будет другим и именно ВАШИ значения надо подставлять

Далее, нам необходимо создать файл с настройками для udev (если он уже не был создан ранее). В моем примере я воспользуюсь редактором nano для редактирования файла.

sudo nano /etc/udev/rules.d/51-android.rules

И вносим в этот файл следующую строчку:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666", GROUP="plugdev"

Для ATTR{idVendor} мы берем первые 4 символа (до символа двоеточия), которые мы получили в предыдущем пункте для нашего телефона, а для ATTR{idProduct} оставшиеся 4 символа (после двоеточия).
После этого сохраняем изменения в файле и применяем изменения следующей командой:

sudo udevadm control --reload-rules

После этого ОБЯЗАТЕЛЬНО, вынимаем из телефона USB кабель и подключаем его еще раз. Ошибка должна исчезнуть:

fastboot devices
20b5b6f5 fastboot

Заключение

В итоге файл настроек 51-android.rules у меня принял вот такой вид:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666", GROUP="plugdev"

Первая строчка отвечает решает проблему с работой adb, а вторая строчка решает проблему с работой fastboot.

Была ли эта статья Вам полезна?

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

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.