Fastboot/ADBの使い方、トラブルシューティング

モバイル

だいぶ前に、ADB/Fastbootを使ってアンドロイドのシステム復旧という記事を書いたのですが、思い出しながら書いたのと、当時は特にトラブルにならなかったので、今日記事を自分で見ながらAndroidを復旧させていたところ、どことなく足りない気がしたのでもう一つ記事を書くことにしました。

ADB/Fastbootを使ってアンドロイドのシステム復旧
Android端末がいかれてしまいました。電源は入るので、Android SDKを使ってドライバを入れたり、ROMファイル+Google Appsを入手したりと復活させるための準備をしました。Android復活までの手順についてはこちらの記...

ADB.exe

ADBは、アンドロイド端末がUSBデバッグモードになっていれば、

  • 普通に動いている時
  • 起動動作中
  • リカバリーモード

で作動しています。ドライバのインストールは通常の状態でWindowsのデバイスマネージャーからハードウェアIDを読み取り、ドライバー情報に追記すれば足りるので簡単です。

Windows 8、Windows 8.1、Windows 10では署名がないドライバであるために特別な設定が必要になりますが、それだけです。

ADB接続できているかどうかは、adb.exeがおいてあるディレクトリに移動してコマンドプロンプトで

adb.exe devices

を入力して、デバイスが表示されるかどうかでわかります。

Fastboot.exe

FastbootもADBと同じ要領で動くはずなのですが、以前OnePlus Oneで試した時にはうまくいきましたが、今回はうまくいきませんでした。

なぜなのかはわかりませんが、FastbootモードになるとデバイスIDが変わってしまっていたせいでした。なので、Fastbootモードで起動した状態でWindowsデバイスマネージャーでハードウェアIDを読み取り、android_winusb.infに追記したら、ドライバーがインストールできました。

%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D001&REV_0232
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D001

AOSP版のAndroid NougatをOnePlus Oneに入れてみた状態ではこのようになっていました。infファイルからインストールしてみても動かなかったので、デバイスマネージャー上から指定してドライバ更新をしたところ認識されました。

接続できているかどうかは、

fastboot.exe devices

を入れることで、adb.exeのときと同じように表示されることで確認できます。

ADBとFastboot

ADBでできることとFastbootでできることを確認しておきます。詳しいことはもっと詳しいサイトをどうぞ。

fastboot-exe

ADBの使い道

adb.exeはアンドロイド(かリカバリー)を動作させた状態でシステムにアクセスするツールです。

  • パソコン上のパッケージファイルをインストールする(adb install パッケージファイル.apk)
    • 最近のアンドロイド端末は物理的にSDカードがないのでインストール用のAPKファイルを入れる場所が、Android起動後にアクセスしにくくなっていたり、Gappsがない状態だと、アプリのインストールに支障があるので、必要になりました。
    • 今回は、Nougatをインストールしてみたら、GAPPSが入らない上に標準でファイルマネージャーもないし、ハードウェアボタンがないくせにソフトウェアボタンも無効の状態になってしまったので、この機能に頼りました。
  • パソコン上のファイルを指定ディレクトリに送る(adb push ファイル名 送り先)
    • 送り先には「/」ルート、「/sdcard/」ディレクトリなどを指定します。
    • 書き込み権限がないと書き込めないので、詰み気味になりました。普段使っていたシステムではなく、Nougatを入れたらディレクトリ構造が変わったのか、ディレクトリがありませんとか、書き込み権限がありませんとか、、、いろいろ言われてしまって。
  • 再起動する(adb reboot system/bootloader/recovery)
    • 各パーティションのbootを行う。systemは入れなくても同じことになり、recoveryはリカバリモード、bootloaderはFASTBOOTモードに。

ADBの落とし穴

リカバリーをしている途中でシステムパーティションを書き換えると、ADBが無効になってしまっている場合があります。ADBが無効になってしまったら、開発者ユーティリティを起動して(カーネルバージョンをひたすらクリックして出す)、USBデバッグの許可をしないといけません。

リカバリーモードでも動きますが、FASTBOOTでは動かないので、今回はNougatを入れようとしたらカスタムリカバリまで消えてしまったため、ちょっと苦労しました。

FASTBOOTの使い道

fastboot.exeは、アンドロイドシステムをインストールするためのツールです。リカバリーとシステム(Android本体)をインストール(フラッシュ)できるのと、キャッシュなどの各パーティションをクリアできます。

  • ファームウェア・リカバリをインストールする(fastboot flash system/recovery ファイル名)
    • 大きなファイルを転送するので時間がかかることがあり、ケーブルの品質が悪いと途中でエラーが起こり止まってしまいます
    • 今回は、何度も試しましたが何かの原因でうまくいきませんでした
  • キャッシュなどのパーティションを削除する(fastboot erase system/dalvik/cache/recovery)
  • 再起動する(fastboot reboot/fastboot reboot bootloader)
  • 指定したファイルから起動する(fastboot boot ファイル名)
    • 今回は、これでカスタムリカバリを起動して、カスタムリカバリー上からシステムのインストールをしたら動くようになりました。
    • この機能でAndroidを起動することもできますが、非常に時間がかかるので待ちくたびれます。

FASTBOOT/ADBのTIPS

ADBは起動中でも動作していますので、

fastboot reboot

をした後すぐに

adb reboot recovery

コマンドが効くようになります。起動し終わるのを待たなくて良いので時間短縮になります。コマンドが効くようになったかどうかを見るには、デバイスマネージャーを見るか、ADB devicesを見るか、コマンドを入れてみるか、USB接続時に音が出るようにしておくか、しておくとわかります。

コメント

タイトルとURLをコピーしました