Adb devices => нет разрешений (пользователь в группе plugdev; ваши правила udev неверны?)

Я получаю следующий журнал ошибок, если подключаю свой телефон Android с ОС Android Oreo к ПК с Linux.

$ adb devices
List of devices attached
xxxxxxxx    no permissions (user in plugdev group; are your udev rules wrong?);
see [http://developer.android.com/tools/device.html]

Я попытался использовать ссылку, указанную в сообщении об ошибке, но все равно получаю ту же ошибку.

У меня была такая же проблема, и я решил ее, выполнив шаги по ссылке. adb был установлен вручную и добавлен в мой путь (свежая установка Linux), но я продолжал получать ошибку. Я удалил его и снова установил через apt install adb (дистрибутив на основе Ubuntu). После этого я дважды проверил, действительно ли мой пользователь является частью группы plugdev, перезагрузил машину и снова подключил устройство. Отображается диалоговое окно разрешений, и все работает, как ожидалось, без какого-либо взлома. :)

Mokkun 07.01.2020 05:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
116
1
97 897
2

Ответы 2

Я не знаю причины этой проблемы. Но временным решением было бы установить телефон на Режим передачи файлов или Режим MTP.

Проблема с этим исправлением заключается в том, что вам нужно будет переключать режим из режима зарядки в режим передачи файлов или режим MTP при каждом подключении кабеля.

почему-то эта работа. Перейдите в режим передачи файлов, и устройство запросит разрешение. Затем adb kill-server adb start server, и теперь мое устройство распознается. спасибо

cesarsicas 28.12.2018 14:27

Самый простой ответ, который сработал

nmeln 21.02.2019 18:42

Причина, по которой это работает, заключается в том, что он меняет pid в lsusb на тот, который находится в ваших правилах udev.

Pieter 22.06.2019 22:20

android 10 заработало !!! спасибо

sudhakar selva 09.11.2020 09:46

Это работает, если вам нужен только adb, но чтобы fastboot также работал, вам нужно использовать другой ответ.

Jan Pokorný 14.04.2021 20:19

Это все еще отлично работает

solomon njobvu 17.11.2021 19:32

Проверьте идентификатор поставщика устройства и идентификатор продукта:

$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 078: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 5986:0652 Acer, Inc 
Bus 002 Device 081: ID 22b8:2e81 Motorola PCS 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Вот мое устройство Android - Motorola PCS. Итак, мои vid=22b8 и pid=2e81.

Теперь создайте правило udev:

$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM= = "usb", ATTR{idVendor}= = "22b8", ATTR{idProduct}= = "2e81", MODE = "0666", GROUP = "plugdev"

Теперь устройство можно обнаружить после перезагрузки правила udev. Итак, приступим:

$ sudo udevadm control --reload-rules

После этого еще раз проверьте, определяется ли ваше устройство по adb:

$ adb devices
List of devices attached
ZF6222Q9D9  device

Итак, все готово.

Если по-прежнему не работает, отключите / снова подключите устройство.

Если по-прежнему не работает, перезагрузите ОС.

Этот ответ является более надежным решением, поскольку обходной путь передачи файлов (MTP) не сохраняется при перезагрузке устройства и т. д.

JPvRiel 14.04.2019 20:22

Это принятый ответ.

Roger 18.04.2019 18:52

Не смейтесь, но мне на самом деле пришлось перезагрузить Mint, чтобы это работало, казалось, что команда udevadm была неэффективной.

Henrique de Sousa 03.07.2019 22:49

@HenriquedeSousa Пришлось отключить и снова подключить, что вызвало диалоговое окно «Разрешить этому компьютеру ...» на устройстве Android.

Majkeee 05.08.2019 09:49

@HenriquedeSousa Мне пришлось сделать то же самое на монетном дворе.

Wiktor Wardzichowski 30.08.2019 11:27

у меня не работает

2xMax 08.09.2019 19:14

Работал у меня. Раньше "флаттер-устройства" давали мне "Android Null (API null)". А теперь «Android 10 (API 29)». Спасибо

phyyyl 17.12.2019 23:27

Почему мы назвали файл 51-android.rules? Т.е. почему 51?

v_johan 03.05.2020 16:37

Оно работает! Спасибо. В Fedora нет группы plugdev, поэтому игнорируйте GROUP = "plugdev", если вы используете Fedora.

Manuel Lopera 19.05.2020 21:44

Просто обновление - запуск sudo udevadm trigger с последующим повторным подключением устройства сработал для меня (не требовала перезагрузки) в Linux Mint.

roshnet 24.06.2020 12:31

Для меня сработали настройки USB / модема на устройстве (раскрытие глобального меню уведомлений), переключение на передачу файлов и отключение модема.

fatal_error 07.08.2020 17:47

На Xaomi Redmi Note 8, Ubuntu 20.04.1 LTS мне пришлось добавить его в файл 51-android.rules (SUBSYSTEM == "usb", ATTR {idVendor} == "ff08", MODE = "0666", GROUP = "plugdev"), а затем выберите режим передачи файлов во всплывающем диалоговом окне, когда я подключу устройство.

James Moore 20.08.2020 19:28

Что бы я делал без stackoverflow ...

Boern 17.11.2020 21:25

Использовал комбинацию этого ответа, а также этого stackoverflow.com/a/12664045/2356570.

capt.swag 17.12.2020 19:20

У меня все заработало после перезагрузки системы. Но в целом все правильно!

gc986 13.01.2021 11:33

Думаю, переключение между режимом восстановления и быстрой загрузкой меняет idProduct. Таким образом, вы можете опустить часть ATTR {idProduct} в правиле. Ваше здоровье

MRazian 09.02.2021 09:27

Если вы используете Ubuntu, вы можете установить пакет android-sdk-platform-tools-common, который содержит поддерживаемый сообществом набор правил udev по умолчанию для устройств Android: developer.android.com/studio/run/device#setting-up

Benedikt Köppel 11.07.2021 21:10

Я закончил добавлением двух строк SUBSYSTEM= = "usb", ATTR{idVendor}= = "18d1", ATTR{idProduct}= = "d00d", MODE = "0666", GROUP = "plugdev" и SUBSYSTEM= = "usb", ATTR{idVendor}= = "2717", ATTR{idProduct}= = "ff48", MODE = "0666", GROUP = "plugdev"

Mohammed Sufian 23.07.2021 15:40

Другие вопросы по теме