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]
エラーメッセージで提供されるリンクを試しましたが、それでも同じエラーが発生します。
デバイスベンダー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=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
これで完了です。
それでも動作しない場合は、デバイスのプラグを抜いてください。
それでも動作しない場合は、OSを再起動します。
この問題の原因はわかりません。ただし、一時的な解決策は、電話をファイル転送モードまたはMTPモードに設定することです。
この修正の問題は、ケーブルを接続するたびに、充電モードからファイル転送モードまたはMTPモードにモードを設定する必要があることです。