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:10
Code language: PHP (php)
方法1:sudo で adb start-serverする
今回は、この方法で解決しました。
まず、android機をUSBから抜きます。
$ sudo `which adb` kill-server
$ sudo `which adb` start-server
Code 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 shell
Code 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:1
Code language: PHP (php)