手間はかかるけれど、ストレージを圧迫しないADB環境の構築(miyuki)

ハワイ
アロハ~、夏は海だわ~。10人中7、8人をそこそこの強さでイラっとさせる言い方ができたらあなたの勝ち。というわけであなたは今、ハワイにいます。何事にも冴えているあなたのスマホはSIMロックが解除されているので、オアフ島到着そうそうに現地プリペイドSIMを契約してSIMを挿しました。その契約につきあった友人が自分の契約している携帯会社の「海外ローミング」費用と比べてあまりの通信費の安さに感動して自分も契約したいと言いだしました。けれど友人の端末はSIMロックがかかっています。それどころか、むしろガラケーです。

スポンサーリンク

同行者の電話機がガラケーかスマホか知ったこっちゃありませんが、旅行中にあなたから友人に電話すると国際電話になってしまいます。ちなみに、あなたのスマホがデュアルSIM機で、日本のSIMも刺したまま日本の電話番号でも電話を受け取れたとしても、お互いにハワイにいるとかいうことには関係なく国際電話になります。ふと見ると、50ドル少々のスマホがありました。通話とパケット通信のどちらもそこそこ使えるSIMの契約が25ドルほどだったので両方あわせても100ドル未満です。1度キリの旅行でしか使わない電話機とSIMカードの代金としては安いとは思いませんでしたが、本人がそれでいいと言うので契約させることにしました。

日本語ロケールがはいっていなかったの巻

友人はスマホ自体がはじめてなので、とてもではないが英語では操作できそうにありません。あなたは泣く泣く日本語ロケールを導入してあげることにしました。windows10が動作するラップトップパソコンを持ってきているので、どうにかなります。旅行中にそんなことをするとは思っていなかったのでADB環境は入っていません。けれど、なんとかなります。ホテルのルーターさえもう少し強ければ、、、。

・Android SDK(約140MB)
・JDK(約190MB)

がどうしても落ちてきません(ガーン)。途中でWiFi接続が切れまくり、リジュームしないので頭からやり直すこと数回。「プリペイドSIMをつっこんだスマホでテザリングすりゃいいじゃん」、「お断りです」、あなたの頭の中でコントがはじまりました。よくない傾向です。テザリングを本気で検討しはじめたりしています。しかし他にまったくアイデアがないわけではありません。ずいぶん古い知識がもとになっているので、不測の事態でハマるかもしれないのが面倒くさくて気がのらないだけです。

巨大ツールを落とさない方向でGO!

JavaデベロッパキットはAndroid SDKを起動させるために必要なだけなので、Android SDKを使わないなら必要ありません。Androidアプリを開発したいとか、エミュレーターを動かしたいとかいうなら必要ですが、インストールするのが「Android SDK Platform-Tools」と「Google USB Driver」の2つだけならAndroid SDKは必須ではありません。というわけで100MB超の2つのファイルはどっちも落とさない方向で。だってWiFiが切れまくるから。

大方の人がアプリ開発やエミュ起動などしっこないので、特に回線が厳しいわけでもなく、ストレージ容量の厳しい端末しかないわけでもなかったとしても、ちょっと手間がかかるだけなのでやってみたらいいと思います。と、あなたはつぶやきました。

adb.exeとUSBドライバを単体でダウンロードする(押忍っ)!

ADB.exe
Downloads – ADB ShellからADB Kitsをダウンロードします。

USB Driver1
USB Driver2
Install the Google USB DriverからMTK用をダウンロードします。SHARPのサイトから落としてもおなじものです。日本語のほうが楽ですね。

手元にある端末用のドライバがあったとしても、MTK用ので問題ありません。富士通とPanasonicで実証済みです。各メーカーごとのドライバは、ドライバ以外にもお便利機能満載のユーティリティを同梱しているのだと思います。その手のユーティリティに有難味を感じたことはありませんし、トラブったときにそのユーティリティしか使えないと、ユーザーが少なすぎてネットで調べるのが厄介なことがあるのでなるべく汎用にこだわったほうがいいとあなたは思っています。

ねんのためウィルスチェックはしましょう。

(2017年7月14日現在)virusTotalでチェックしたところ、usb_driver/amd64/Colnstaller01009.dllからHW64.packed.5CC0が検出されました。HW64.packedにて検索したところ、英語の情報しかヒットしないので読むのに疲れました。無害そうなんだけど気になるのでSHARPのサイトからもドライバを落としてきてチェックしたところ、まったくおなじ結果でした。こりゃだいじょぶだな。と、あなたは思いました。逆に52種類のアンチウィルスが問題ないって言ってるのにBkavという聞いたことないアプリだけが警告してくるので誤検出かな? と思ってしまいます。深い意味はないのですが、ドメインを見て「誤検出あるな」とあなたは思いました。

誤検出というか厳格なのではないでしょうか? おそらく広告がらみの何かだという印象です。52社はグーグルじゃ仕方ねぇ、とマルウェア判定を免除することにしたのでは?

端末のインスタンスを調べる

デバイスのVIDPIDを知りたいので

ビルドNo
1)スマホで「Settings」→「About phone」を開いた最下段の「Build number」を7、8回連打します。4回くらいでしょうか? それだけ叩くと誤タッチではないと判断するらしく「あと何回叩け~」とメッセージが出てのこり回数をカウントダウンしてくれるので、その回数叩きます。やけくそになって回数以上叩いても別にどーということはないと思います。

USB デバッギング
2)すると「Developer options」の「USB debugging」にチェックをいれられるようになるので、チェックをいれて有効にします。有効にしたとたん「許可するか?」と聞いてくるので「OK」します。スマホの画面はそのままでいいです。ホームにもどりたかったらもどってもかまいません。

USBストレージ オン
デバイス
スマホとパソコンをUSBケーブルで接続します。スマホにアラートが出るので「OK」。PCで「デバイスマネージャー」を起動します。コルタナさんに文字で尋ねてもよいけれど、よかったら明るく話しかけてあげてください。あなたはスタート(=旗マーク)の上で右クリですけどね。

「デバイスマネージャー」に見慣れないデバイスができているのでダブクリ→「イベント」タブに目的の記述がありました。

※windows10になってドライバが増えたようです。だいぶ以前にXPでやったときには「Android Phone」→「ADB」になっていて、「ADB」→ダブクリ→「詳細」タブだったけれど、端末に搭載されているOSの名前(?)を認識しています。

スポンサーリンク

デバイス2
「イベント」タブだろうと「詳細」タブだろうとどこでもいいので、片っぱしから開いてVIDPIDの書いてあるところを見つけてメモしてください。

ドライバのインストール用テキストファイルを編集する

USBドライバーの解凍
ダウンロードしてきたUSBドライバを解凍した中身。android_winusb.infを編集するので「メモ帳」でも使って開いてください。

[Google.NTx86]で検索しましょう。このセクションに32ビットOS用の命令を書きます。そこからだーっと下の方にスクロールしてもいいですが、検索するなら[Google.NTamd64]で見つかった行以降が64ビットOS用の命令を書く箇所です。たいがいセクション直下はNexus One用の記述になっているハズです。

[Google.NTamd64]

;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01

こんな感じだと思うので
Nexus One用の記述から2行コピーし、セミコロンをつけてわかりやすい名前をメモとして書きこんでおきます。コピーした行を「デバイスマネージャー」で調べた自分の端末のインスタンスに書き換えるだけ。以下のサンプルでは目立つようにアスタリスクにしたところです。

[Google.NTamd64]

;マイ・デバイス
%SingleAdbInterface% = USB_Install, USB\VID_****&PID_****
%CompositeAdbInterface% = USB_Install, USB\VID_****&PID_****&MI_01

;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_0

かんたん。
自分のマシンのOSが32ビットか、64ビットか把握していないむきは、どっちのセクションにも記述してしまえばいいです。OSがよきにはからってどちらからかドライバをインストールしてくれます。

ドライバのインストール

デバイス
「デバイスマネージャー」を開き、いま接続されているスマホに対応するのはこれだろうと思われるデバイスを選択してダブクリ。この端末は特殊です。普通は「Android Phone」だの「ADB」だのそれっぽい名称なので見つけやすいと思います。これはこれで絶対にスマホの記述だろうと見当がつきますが。

ドライバーのインストール
ドライバーのインストール2
「ドライバー」タブにて、「ドライバーの更新」ボタン。
「コンピューターを参照してドライバーソフトウェアを検索します」

ドライバーのインストール3
ドライバーのインストール4
「参照」ボタンで、たったいま編集したandroid_winusb.infを格納しているフォルダをコンピューターに教えます。ファイル転送のダイアログが表示されて、しばらく待つとインストールが終わります。

ちなみにsystem32あたりへなんでしょうがドライバのコピーは終わったので、たった9MB弱ですけれど、あなたはとっととダウンロード+解凍したUSBドライバをフォルダごと捨てました。

adb.exeの配置

ADB.exeの解凍
ADB Kitsを解凍した中身。
どこに配置してもいいのですが、コマンドを打つのが楽なのでCドライブの直下なんていかがですか? 一般にはかのあゆさんの記事開発者でなくても必須ツール。Android開発キットに含まれているADBを導入しよう6セクション目「起動を容易に」の作業をして、いわゆるPathを通すということをします。しかし今回ADBを使ったら、あと何年も、もしかしたら二度と触らないという人もいるかと思います。そういう人は、手間がかかるので割愛しましょう。

あなたは、ダウンロード+解凍して得たフォルダadbを、Cドライブの真下にカット&ペーストしてしまいました。

adb shellの起動確認

コマンドプロンプト
Microsoft Windows[Version 10.0.1056]
(c)2015 Microsoft Corporation. All rights reserved.

C:¥Users¥オレ>cd c:¥adb

c:¥ADB>

コルタナさんに「コマンドプロンプト」の場所を教えてもらって起動しましょう。あなたは「スタート(=旗マーク)」→右クリ→「コマンドプロンプト」で起動しましたけど、ね。
cd c:¥adbとタイプします。(Change Dirctoryの略)

コマンドプロンプト
Microsoft Windows[Version 10.0.1056]
(c)2015 Microsoft Corporation. All rights reserved.

C:¥ADB>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は ****-**** です

 c:¥ADB のディレクトリ

2016/07/14 14:23     <DIR>.
2016/07/14 14:23     <DIR>..
2016/07/14 09:00         1,011,200 adb.exe
2016/07/14 09:00            96,256 AdbWinApi.dll
2016/07/14 09:00            60,928 AdbWinUsbApi.dll
          3 個のファイル         1,168,384 バイト
          2 個のディレクトリ     **,***,***,*** バイトの空き領域

dirとタイプしてみます。しなくてもいいです。今いるディレクトリに格納されているファイル名の一覧が表示されます。ファイル名の一覧のなかにadb.exeがあれば正しいディレクトリに移動できた証拠です。

コマンドプロンプト – adb shell
Microsoft Windows[Version 10.0.1056]
(c)2015 Microsoft Corporation. All rights reserved.

c:¥ADB>adb shell
chell@***:/ $

Shell Allow
adb shellとタイプしてエンターを押すと、スマホ側にアラートがでるので「OK」。コマンドラインの表記がshell@***:/ $に変化します。無事シェルにはいれました。

コマンドプロンプト – adb shell
Microsoft Windows[Version 10.0.1056]
(c)2015 Microsoft Corporation. All rights reserved.

c:¥ADB>adb shell
chell@***:/ $ exit

c:ADB¥>

adb shellから抜けるにはexit。

あとがき

友人がハワイで買ったスマホは、契約したプリペイドSIMを扱っている通信会社のSIMロックがかかっています。SIMロックをかけているのは日本だけではないのです。なので帰国してしまうと使えません。モバイルルーターと一緒に携帯するという手もありますけれど、モバイルルーターにまた投資が必要になると教えたら、機種変でガラケーからスマホに乗り換えたようです。地図とかYouTubeがとても気に入ったようでした。

スポンサーリンク