Ошибка: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
- AJIekceu4
- 08.06.2020
- 9 744
- 2
- 12
- 12
- 0
Данная ошибка может возникать при попытке послать какую-нибудь команду телефону с помощью 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. Первый способ - быстрый, но его придется проделывать каждый раз, второй - способ чуть дольше, зато это надо будет сделать лишь один раз.
Подключаем кабель к телефону и включаем режим отладки:
Способ 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.
Далее, нам необходимо создать файл с настройками для 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
51-android.rules
необходимо добавлять 2 строчки с разными ID для каждого режима работы телефона (см. Заключение)В моем случае, он называется Google Inc. и его ID 18d1:d00d.
Далее, нам необходимо создать файл с настройками для 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.
Добавить комментарий