Androidアプリ開発のために、adbをLinuxやWindowsから利用したいが自動的に認識してくれない場合の対策です。
ドライバはGoogle USB Driverから最新がダウンロード可能です。
ドライバが正しく入っていれば、adbサーバを再起動して、
スポンサードリンク
% adb kill-server % adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully *
端末のUSBデバッグを有効にすると認識します。
Android端末の「設定」に「開発者向けオプション」が存在しない場合(Android4.2以降)は次のようにして表示します。
USB接続を抜き差しするとadb接続することができます。
「コントロール パネル」→」デバイスマネージャ」から、adb USB接続らしきデバイスを探します。
右クリックで「プロパティ」を開いて、プロパティから「ハードウェアID」を確認する(例)
USB\VID_2207&PID_0000&REV_0222&MI_01 USB\VID_2207&PID_0000&MI_01
確認できたら、Android SDKに入っているusb_driverのandroid_winusb.infに次のように追加します。
[Google.NTx86] ; New Android %SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0000&REV_0222&MI_01 %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0000&MI_01 ...(省略) [Google.NTamd64] ; New Android %SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0000&REV_0222&MI_01 %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0000&MI_01
基本的には標準ドライバのvendor id, product idの設定値を正しく書き換えてインストールすれば動きます。
「/etc/udev/rules.d/51-android.rules」に、次のような形で記載します。
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
デバッグに使用する端末をUSB接続してベンダーIDを調べます。
例えば、次の場合は「ベンダーIDは0fce」「プロダクトIDは5167」となります。
$ lsusb ... Bus 002 Device 002: 0fce:5167 ID Sony Ericsson Mobile Communications AB
その後、次のコマンドを実行します。
chmod a+r /etc/udev/rules.d/51-android.rules
/etc/udev/rules.d/51-android.rules を作成(Root権限が必要) してudevを再起動します。
{idVendor}はテスト端末のベンダーIDへ置き換えます。範囲を狭めたければ{idProduct}も指定します。
$ sudo nano /etc/udev/rules.d/51-android.rules $ sudo /etc/init.d/udev restart # New devices SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="*", MODE="0777"
/etc/udev/rules.d/51-android.rules. SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
次に上記ファイルに実行権限を与えます。
chmod a+r /etc/udev/rules.d/51-android.rules
スポンサードリンク