no permissions (user in plugdev group; are your udev rules wrong?)

Ubuntu18.04に、あるandroid機種をUSB接続して、adb devices -l したところ、次のような表示がされました。

$ adb devices -l
List of devices attached
xxxxxxxx               no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html] usb:1-7.3 transport_id:10Code language: PHP (php)

方法1:sudo で adb start-serverする

今回は、この方法で解決しました。

まず、android機をUSBから抜きます。

$ sudo `which adb` kill-server
$ sudo `which adb` start-serverCode language: JavaScript (javascript)

android機をUSBに接続します。

$ adb devices -l
List of devices attached
xxxxxxxx               device usb:1-7.3 product:XXXX model:XXXXX device:XXXXXXX transport_id:1

$ adb shellCode language: PHP (php)

adb shellでログインできました。

方法2:udev rulesに記述する

android機をUSBから抜きます。

$ lsusb
Bus 002 Device 002: ID 174c:5136 ASMedia Technology Inc. ASM1053 SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 014: ID 24ea:0197  
Bus 001 Device 004: ID 0853:0140 Topre Corporation 
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

android機をUSBに接続します。

$ lsusb
Bus 002 Device 002: ID 174c:5136 ASMedia Technology Inc. ASM1053 SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 014: ID 24ea:0197  
Bus 001 Device 004: ID 0853:0140 Topre Corporation 
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 060: ID 0e8d:201d MediaTek Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

さきほどのlsusbと比較すると、下から2行目が、android機のUSB情報です。"0e8d"がUSBのVendor IDです。

Bus 001 Device 060: ID 0e8d:201d MediaTek Inc. Code language: CSS (css)

/etc/udev/rules.d/51-android.rules がなければ新規作成します。

$ sudo touch /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules

次の行を記述します。

SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0666", GROUP="plugdev"Code language: JavaScript (javascript)

udevサービスを再起動します。

$ sudo service udev restart

android機をUSBに接続して、adb devices -l を見ます。

$ adb devices -l
List of devices attached
xxxxxxxx               device usb:1-7.3 product:XXXX model:XXXXX device:XXXXXXX transport_id:1Code language: PHP (php)
タイトルとURLをコピーしました