はじめに

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のインストール

Platform Toolsは、以下のサイトからダウンロードできます。

【ご参考】SDK Platform Tools Release Notes | Android Studio

SDK Platform-Tools for LinuxのリンクからPlatform Toolsをダウンロードしてください。

2017/10現在、上記サイトでLinux向けに配布されているPlatform Toolsは、64bit版のみです。
i686な32bit OS環境では動作しませんので、ご注意ください。

32bit版のPlatform Toolsは、以下のURLからダウンロードできます。

【ご参考】https://dl-ssl.google.com/android/repository/platform-tools_r23.0.1-linux.zip

ダウンロード後、ファイルの拡張子がzipの場合はunzipで、tgzの場合はtarで、それぞれ展開します。

zipの場合
$ unzip FILENAME.zip
tgzの場合
$ tar -xvzf FILENAME.tgz

アーカイブを展開したら、そこにpathを通します。
VINE Linuxのデフォルトのシェルはbashなので、ホーム直下の.bashrcに以下の記述を追加します。
この例では、自分のhome直下展開したandroid-sdkにpathを通しています。

「.bashrc」の設定
PATH="$PATH":~/android/platform-tools

編集が完了したら、シェルを再起動させるか、以下のようにして設定を反映させます。

.bashrcの変更の反映
$ source .bashrc

設定反映後、マンドラインから以下のようにして、adbツールが実行できればOKです。

adbの実行
$ adb

どちらかがうまくいかない場合には、.bashrc内の設定が正しいかもう一度確認してください。

USBデバイスの登録

次に、Android端末とUSBで接続できるよう、USBデバイスの設定を行います。
rootになってファイル「/etc/udev/rules.d/50-android.rules」を編集/新規作成してください。
このファイルに、以下の記述を追記します。

「/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転送ケーブルで繋いだ状態で以下のようにすると確認できます。

接続中の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の再起動
$ adb kill-server ; adb start-server

これで設定は完了です。
上記の設定が完了し、Android端末とVine Linux PCをUSB転送ケーブルで接続すれば、adbを使って様々な操作をできるようになります。

adbの使い方

adbの主な使い方は以下の通りです。

接続デバイスの一覧表示

コマンドラインから以下のように入力すると、接続デバイス一覧が表示されます。

接続デバイスの確認
$ adb devices

ここで「no permissions」と表示される場合には、前述のUSBデバイスのVendor IDの登録がうまくいっていないので、再度編集内容を確認してください。

また、場合によって接続しているAndroid端末が一切表示されない場合があります。
この場合は、Android端末側の設定不足が考えられます。
端末側の設定でUSBデバッグをONにするなど、Android端末側の設定を変更してください。

Android端末内のシェルの起動

以下のようにすることで、Android端末内のシェルを起動することが出来ます。

Android端末内のシェルの実行
$ adb shell

試しに「top」とやると、動いているプロセスが表示されます。

Androidアプリのインストール

Androidアプリ(apkファイル)をインストールする場合には、以下のようにします。

Androidアプリのインストール
$ adb install [FILENAME]

Android端末内へのファイル転送

Android端末内へファイル転送する場合には、以下のようにします。

Android端末内へのファイル転送
$ adb push [FILENAME] [PATH]

Android端末の再起動

以下のようにすることで、Android端末を再起動させてbootloaderコンソールモードに入れることができます。

再起動してbootloaderコンソールに入る
$ adb reboot bootloader

adbの詳しい使い方は、もっと詳しく説明しているサイトがたくさんあるので、検索してみてください。

fastbootの使い方

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の詳しい使い方は、もっと詳しく説明しているサイトがたくさんあるので、検索してみてください。

変更履歴

2018/08/15

・「lsusb」の綴りが誤って「lausb」になっていたのを修正。

2017/12/02

・fastbootの利用方法について追記。
・fastbootの利用方法の追記に伴い、タイトルを変更。

2017/11/10

・32bit版のPlatform-Toolsの在処を追記。


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まさにこれだ
4 (80%)
参考になった
1 (20%)

【参考になった】 「接続中のUSBデバイスの確認」のコマンドが、間違っています。 訂正前…lausb 訂正後…lsusb (2018/08/12 Sun 20:56:25)
→ ご指摘ありがとうございます、本文を修正いたしました。