Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

USB接続しても大容量記憶装置デバイスとしか認識されない

しばらくはまってましたが、ようやく解決。。。

現象

HTC Syncをインストールしたりアンインストールしたりしていると、いつの間にかUSB接続してもadbコマンドで端末が認識できなくなってしまいました。

C:\Documents and Settings\shimooka>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached


C:\Documents and Settings\shimooka>

バイスマネージャを見てみると、本来なら出てくるはずの

[Android Phone]→[Android Composite ADB Interface]

というのが出てきてません。

対策

いろいろとググッてみると、以下のページを発見。

内容としてはざっと以下のとおりですが、自己責任で;-)

  1. 既存のドライバを削除する
    1. 端末をUSB接続
    2. バイスマネージャを開く
    3. [ADB Interface > HTC Composite ADB Interface]と[Disk Drives > HTC Android Phone USB Device]があれば、それらのドライバを削除
    4. 端末をUSBから外す
  2. レジストリを編集する
    1. 免責: 以下、何をやってるか解らなかったら、やらないでね :-)
    2. レジストリエディタを起動
    3. キー/値として"vid_0bb4&pid_0c02"(HTC Desireの場合は、"VID_0BB4&PID_0C87"を検索)を検索し、見つかったキーを削除。値の場合はキーフォルダごと削除。
    4. レジストリエディタを閉じる
  3. 再度USB接続する前に:
    1. USBデバッグが有効になっていることを確認
    2. 端末を接続すると、ドライバインストールウィザードが起動するハズ
    3. この時、Windows Updateを選択しないこと
    4. ドライバのインストール元として、Android SDKのudb_driverディレクトリを指定する

ちなみに、Android SDKのudb_driverディレクトリにあるandroid_winusb.infの[Google.NTx86]セクションと[Google.NTamd64]セクションに、次の3行をそれぞれ追加してあることを確認しておいてください。

; HTC Desire
%SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C87
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C87MI_01

で、やってみた

android-sdk_r07-windows.zipを展開し、付属のSDK ManagerでUSBドライバ(Usb Driver package, revision 3)をインストールした環境で、無事ドライバを再インストールでき、デバイスマネージャでちゃんと認識されるようになりました。

adbコマンドの結果も、次のように問題無し。

C:\Documents and Settings\shimooka>adb devices
List of devices attached
HT04FPL06420    device


C:\Documents and Settings\shimooka>