momoto.github.io

Android端末を検出するためのudevの設定

デバイス管理ツールとしてudevを使用しているLinuxシステムで、USB接続したAndroid端末を検出できない場合、USBベンダーIDごとにudevルールを加える必要がある。

例えば、USBベンダーIDが0bb4になるHTCの端末を検出する場合、次の内容のファイルを51-android.rulesとして/etc/udev/rules.dに加える。

/etc/udev/rules.d/51-android.rules
1
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

各メーカーに対応するUSBベンダーIDは、http://developer.android.com/tools/device.html%E3%81%A7%E5%8F%82%E7%85%A7%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82

また、/etc/udev/rules.dへの書き込みにはroot権限が必要で、ファイルを追加した後は読み出しを許可する必要がある。

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

USB接続したAndroid端末を検出できているかどうかは、lsusbまたはAndroid SDKに含まれるadbコマンドで確認できる。

/etc/udev/rules.d/51-android.rules
1
2
3
$ lsusb 

  Bus 002 Device 008: ID 0bb4:0c8d High Tech Computer Corp. EVO 4G (debug)
/etc/udev/rules.d/51-android.rules
1
2
3
4
$ ~/android-sdks/platform-tools/adb devices

  List of devices attached 
  SHTBB106827 device

adbから検出できれば、EclipseプラグインADTの「Device Chooser」からも同様に認識できる。

参考