Данная ошибка может возникать при попытке послать какую-нибудь команду телефону с помощью 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, чтобы избежать этой ошибки, то можно пойти более правильным, но длинным путем.
Первым делом вводим команду Isusb
и ищем 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}=="ваши значения", ATTR{idProduct}=="ваши значения", 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}=="ваши значения", ATTR{idProduct}=="ваши значения", 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}=="ваши значения", ATTR{idProduct}=="ваши значения", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="ваши значения", ATTR{idProduct}=="ваши значения", MODE="0666", GROUP="plugdev"
Первая строчка отвечает решает проблему с работой adb, а вторая строчка решает проблему с работой fastboot.