同様の問題があります:
$ adb devices
List of devices attached
4df15d6e02a55f15 device
???????????? no permissions
調査
を実行するlsusb
と、接続したデバイスと、次の場所を確認できます。
$ lsusb
...
Bus 002 Device 050: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone ...
Bus 002 Device 049: ID 18d1:4e42 Google Inc.
これは、Samsung Galaxy S3とNexus 7 (2012)が接続されていることを示しています。
それらの権限を確認します:
$ ls -l /dev/bus/usb/002/{049,050}
crw-rw-r-- 1 root root 189, 176 Oct 10 10:09 /dev/bus/usb/002/049
crw-rw-r--+ 1 root plugdev 189, 177 Oct 10 10:12 /dev/bus/usb/002/050
待って。何?その「plugdev」グループはどこから来たのですか?
$ cd /lib/udev/rules.d/
$ grep -R "6860.*plugdev" .
./40-libgphoto2-2.rules:ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
./40-libgphoto2-2.rules:ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
(私はそれらの行を折り返しました)
行に注意してくださいGROUP="plugdev"
。また、これは他のデバイス ID では機能しないことに注意してください。
$ grep -Ri "4e42.*plugdev" .
(何も返されません)
それを修正する
わかった。それで、修正は何ですか?
ルールを追加する
/etc/udev/rules.d/99-adb.rules
次の行を含むファイルを作成します。
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e42", ENV{ID_GPHOTO2}="1",
ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1",
MODE="0664", GROUP="plugdev"
これは 1 行である必要があります。読みやすくするためにここでラップしています
udev を再起動します
$ sudo udevadm control --reload-rules
$ sudo service udev restart
それでおしまい
デバイスを抜き差しします。
それを試してみてください
$ adb devices
List of devices attached
4df15d6e02a55f15 device
015d2109ce67fa0c device