2012/11/17

MK808でadbが出来るまでの長い道のり

前回記事で書いた通り、MK808で色々遊んでみようと思い、いつも通りデスクトップにUSB接続して、自作アプリをインストールテストしようと思っていたんです。ところがどっこい、長い道のりでした。

まず、adbとは、Android Debug Bridgeという開発用便利ツールでして、Androidに色々アプリを入れなくてもPCからリモートで色んな操作が出来ます。adbはUSBまたはネットワーク越しでリモート操作が出来ます。
このUSBで接続ってところの話です。Android端末は数種類扱ってますが、今回は苦労しました。

ドライバセットアップ

Macだとこんなことしないでいいんですが、Windowsだと普通にUSB接続してもドライバがないと言われるんで、ハイハイってことで色々やります。まずは、Android SDKをダウンロードします。その中に、google-usb_driverというフォルダがあります。これを入れてやれば通常動きます。

が、このドライバのinfファイルにはNexus用の記述しか書かれていません。なので自分のMK808でインスール出来るように、android_winusb.infというドライバ記述ファイルに、以下のように書き加えます。
[Google.NTamd64]
;MK808
%SingleAdbInterface%     = USB_Install, USB\VID_2207&PID_0006&REV_0222
%CompositeAdbInterface%  = USB_Install, USB\VID_2207&PID_0006
USB_Install, 以降のコードは、デバイスマネージャで不明なデバイスとして認識されているデバイスのプロパティの詳細タブからプロパティ=デバイスIDを選ぶと表示される文字列です。
自分のWindowsは64Bitなのでamd64側にだけ書き加えました。

で、ドライバの更新でこのドライバフォルダを指定してやればインストールされます。
コンソールから
$ adb kill-server
$ adb usb
$ adb devices
ってやれば大体どんなAndroidでも接続できるもんです。もんです。あれ?
端末の方では、「USBデバッグが接続されました」と「USB接続」がちゃんと出ている。USBストレージをONにしてみる。ふむ。ちゃんとデスクトップでストレージマウント出来る。

adbだけが出来ない

マックでやってみた。同じ状態・・・
セルフパワーUSBハブかましてみた。駄目だった・・・
OTG側と電源用USBのさす順番変えたり、どっちかだけにしたり。変わらず・・・
ネット上探しても同じ状況の書き込みは見当たらない。微妙な不良品をゲットしてしまったか。

apk入れるだけなら別手段は色々ある。がっつり開発用ではないし。

microSD経由で入れる。
AirDroidとかサーバークライアント系のアプリ使って入れる。
Webサーバー上に置いておいてダウンロードして入れる。

とまあどんな方法でも入れることは出来るんで割り切ってもよかったんですが、心残りが出来るのも事実。次の手を考えます。

adb tcpip でいいか

冷静に考えれば、この端末はリビングTVに繋いで使うつもりなので、そもそもUSBでPCに接続するシチュエーションはめったにない。Wifi通して操作する方が合っています。

普通、Wifi経由のadbは以下の手順でできます。
  1. 一度USB接続して認識させる
  2. $ adb tcpip 5555 ってやってadbをusbからtcpipに切り替える。ポートも指定する。
  3. USBを抜く
  4. $ adb connect {device-ip-addr} ってやる。接続される。
Android側にadb-wifi切り替えアプリとか入れずとも、こんな感じでできますね。接続が切れてたら4だけやれば再接続されます。駄目だったら1からやり直します。

よく、adb connect {ip-addr}:5555ってやれって書いてあるけど、本当ですかね。
:5555:5555ってなって、失敗しますよね。:5555はいらないんじゃないかな。

普通はこれでいけるんですが、今回は最初のUSB接続で認識が出来ません。そのために、やはりAndroid側にWifiでADB出来るようにするアプリ使う必要があります。その手のものは沢山ありますね。でも大体どれもがルート権限が必要なのです!

自分のMK808はルート化されていなかったので

この辺でもう何だかなぁという気分ですが、始めてしまったので最後までやります。
ルート化されているFirmイメージを探しました。見つけました。
http://tabletrepublic.com/forum/downloads.php?do=file&id=164
他にもいくつか見つけましたが、どれもダウンロードするためにアカウント登録が必要だったり有料ダウンロードだったり・・・この手のものはそういう世界なので安全手軽なものを見つけるのは一苦労です。このファイルも突然別のところに移動するかもしれません。

ここからダウンロードしたrarパッケージはとてもいいですね。RKBatchToolと必要なドライバとフラッシュイメージがセットで入っていました。

沢山のネット記事で説明されている通り、リセットボタン押しながらUSB接続! 無反応・・・
はぁ。これもだめですか。普通はデバイスが認識されてドライバを入れる手順に進むのに。

microSDでアップデート

仕方がないので別手段です。USBストレージマウントはできるので、rarパッケージに入っているフラッシュイメージファイルを”update.img"という名前でmicroSDのルートにコピーします。(このパッケージのイメージファイルは最初からupdate.imgになってました)
Android側のストレージマウントをOffにします。するとその瞬間に、ファームイメージ見つけたけどインストールする?ってAndroidが聞いてきくるので、インストールします。

この方法は外部ツールいらずでお手軽&安全です。アプリや設定は保存されたままシステムだけアップデートされます。逆に言えばクリーンインストールは出来ません。

再度リセット押しながらUSB接続してみたら、今度はちゃんとPCが認識したので、改めてRKBachTool使ってクリーンインストールしました。単に気持ちの問題です。

これでルート化されたので、やっとルート権限が必要なアプリが実行できます。
だいぶ遠回りした気分ですが、これでtcpip経由でのadbが無事機能するようになりました。

eHomeMediaCenter・・・(余談です)

ファームアップデートしたらこんなアプリが入っていました。試しに動かしたらWindowsのメディアセンターやらマックにためしに入れていたTVMOBiLiとかがスパッと表示されてびっくり。
ビデオプレーヤーアプリ作る前に、ちょっとこっち方面をやってみようかな。

0 件のコメント:

コメントを投稿