PCからAndroidスマートフォンにアプリをインストールしたり、スマートフォン内のシェルを起動したりする際に使うadbやfastbootですが、Vine Linuxでも利用可能です。
このページでは、Vine Linuxでのadbの導入方法について説明します。
2017/11現在、adbやfastbootを導入するには、Android Studio(旧Android SDK)をインストールする方法と、Android StudioのサブセットであるAndroid SDK Platform Tools(以降「Platform Tools」と記述)を導入する方法の2つがあります。
前者では、Java実行環境をインストールする必要がありますが、後者では不要です。
このページでは、Platform Toolsを導入する方法について説明します。
また、USBケーブル経由でadbを使うには、PC側でUSB周りの設定をする必要があります。
これらの手順についてもあわせて説明します。
Platform Toolsは、以下のサイトからダウンロードできます。
【ご参考】SDK Platform Tools Release Notes | Android Studio
SDK Platform-Tools for LinuxのリンクからPlatform Toolsをダウンロードしてください。
32bit版のPlatform Toolsは、以下のURLからダウンロードできます。
【ご参考】https://dl-ssl.google.com/android/repository/platform-tools_r23.0.1-linux.zip
ダウンロード後、ファイルの拡張子がzipの場合はunzipで、tgzの場合はtarで、それぞれ展開します。
$ unzip FILENAME.zip
$ tar -xvzf FILENAME.tgz
アーカイブを展開したら、そこにpathを通します。
VINE Linuxのデフォルトのシェルはbashなので、ホーム直下の.bashrcに以下の記述を追加します。
この例では、自分のhome直下展開したandroid-sdkにpathを通しています。
PATH="$PATH":~/android/platform-tools
編集が完了したら、シェルを再起動させるか、以下のようにして設定を反映させます。
$ source .bashrc
設定反映後、マンドラインから以下のようにして、adbツールが実行できればOKです。
$ adb
どちらかがうまくいかない場合には、.bashrc内の設定が正しいかもう一度確認してください。
次に、Android端末とUSBで接続できるよう、USBデバイスの設定を行います。
rootになってファイル「/etc/udev/rules.d/50-android.rules」を編集/新規作成してください。
このファイルに、以下の記述を追記します。
SUBSYSTEM=="usb",SYSFS{idVendor}=="XXXX",MODE="0666"
XXXXにはAndroid端末のUSB Vendor IDを入れます。
接続したいUSBデバイスが複数ある場合には、その分の行を複数記述してください。
なお、Android端末のUSB Vendor IDは、端末とPCをUSB転送ケーブルで繋いだ状態で以下のようにすると確認できます。
$ lsusb
参考までに、私の手元にあったAndroid端末での表示例は以下の通りです。
SH-01E Bus 001 Device 002: ID 04dd:9625 Sharp Corp.
N-06C Bus 001 Device 004: ID 0409:0319 NEC Corp.
HTL21 Bus 001 Device 006: ID 0bb4:0dfe HTC (High Tech Computer Corp.)
「0409」がNECの、「0bb4」がHTCのVendor IDになります。
この値を上記の「XXXX」の部分に記入してください。
上記ファイル編集の後、設定を反映させるために、adbを再起動させる必要があります。
以下のようにして、adbを再起動させてください。
$ adb kill-server ; adb start-server
これで設定は完了です。
上記の設定が完了し、Android端末とVine Linux PCをUSB転送ケーブルで接続すれば、adbを使って様々な操作をできるようになります。
adbの主な使い方は以下の通りです。
コマンドラインから以下のように入力すると、接続デバイス一覧が表示されます。
$ adb devices
ここで「no permissions」と表示される場合には、前述のUSBデバイスのVendor IDの登録がうまくいっていないので、再度編集内容を確認してください。
また、場合によって接続しているAndroid端末が一切表示されない場合があります。
この場合は、Android端末側の設定不足が考えられます。
端末側の設定でUSBデバッグをONにするなど、Android端末側の設定を変更してください。
以下のようにすることで、Android端末内のシェルを起動することが出来ます。
$ adb shell
試しに「top」とやると、動いているプロセスが表示されます。
Androidアプリ(apkファイル)をインストールする場合には、以下のようにします。
$ adb install [FILENAME]
Android端末内へファイル転送する場合には、以下のようにします。
$ adb push [FILENAME] [PATH]
以下のようにすることで、Android端末を再起動させてbootloaderコンソールモードに入れることができます。
$ adb reboot bootloader
adbの詳しい使い方は、もっと詳しく説明しているサイトがたくさんあるので、検索してみてください。
fastbootは、ブートローダーのコンソールモードに入った時に利用します。
以下のように入力すると、指定したイメージファイルを利用してブートします。
[FILENAME]には、予めadb push等でAndroid端末の内部に配置したイメージファイルのパスを指定します。
$ fastboot boot [FILENAME]
リカバリー領域にTWRPなどのカスタムリカバリーなどを書き込むには、以下のようにします。
[FILENAME]には、予めadb push等でAndroid端末の内部に配置したイメージファイルのパスを指定します。
$ fastboot flash recovery [FILENAME]
Android端末を再起動させ、リカバリーモードに入れるには、以下のようにします。
デバイスによって、指定の仕方が違うようです。
主だった指定の仕方を列挙してみたので、試してみてください。
$ fastboot reboot recovery $ fastboot reboot-recovery $ fastboot oem reboot-recovery
fastbootの詳しい使い方は、もっと詳しく説明しているサイトがたくさんあるので、検索してみてください。
・「lsusb」の綴りが誤って「lausb」になっていたのを修正。
・fastbootの利用方法について追記。
・fastbootの利用方法の追記に伴い、タイトルを変更。
・32bit版のPlatform-Toolsの在処を追記。
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まさにこれだ 5 (83%) |
参考になった 1 (17%) |
【参考になった】 「接続中のUSBデバイスの確認」のコマンドが、間違っています。
訂正前…lausb
訂正後…lsusb (2018/08/12 Sun 20:56:25)
→ ご指摘ありがとうございます、本文を修正いたしました。