web-dev-qa-db-ja.com

adbデバイス=>権限なし(plugdevグループのユーザー。udevルールは間違っていますか?)

Android電話をAndroid Oreo OSからLinux PCに接続すると、次のエラーログが表示されます。

$ 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]

エラーメッセージで提供されるリンクを試しましたが、それでも同じエラーが発生します。

21

デバイスベンダーIDと製品IDを確認します。

$ 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=22b8pid=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

これで完了です。

それでも動作しない場合は、デバイスのプラグを抜いてください。

それでも動作しない場合は、OSを再起動します。

42

この問題の原因はわかりません。ただし、一時的な解決策は、電話をファイル転送モードまたはMTPモードに設定することです。

この修正の問題は、ケーブルを接続するたびに、充電モードからファイル転送モードまたはMTPモードにモードを設定する必要があることです。

32
Nabin Bhandari