fastboot、fastbootd とは? 何が違う?

fastboot、fastbootd とはなにか、解説します。

fastboot とは?

Android のブートローダーアンロックしたり、イメージファイルを焼いたりするために、その専用のモードが用意されています。これを「fastboot モード」と呼びます。fastboot モードは、ブートローダーに実装されています。

また、fastboot モードでデバイスを操作するための通信プロトコルを、fastboot と呼びます。そして、その通信を行うために使用されるツールもまた、fastboot と呼びます。

つまり fastboot は、通信プロトコルであり、ツールであり、プログラムでもあります。Android のディープなカスタマイズ、例えばカスタム ROM の導入ルート化に挑戦する場合、最初はこの fastboot の門を叩くところからすべてが始まります

fastbootd とは?

Android 10 以降では、動的パーティションという仕組みが導入されました。これにより、物理的に存在していたパーティションの一部は、super パーティションにまとめられるようになりました。

ブートローダーからは、super パーティションの中身を見ることはできません。そのため super パーティションとしてイメージファイルをフラッシュすることはできますが、super パーティションの中にあるパーティションを操作することは不可能です。

そこで登場するのが fastbootd です。fastbootd は、リカバリなどの領域に実装された fastboot のことです。fastbootd はブートローダーの外に実装されているので、super パーティションを適切に処理することができます。

また、リカバリなどの領域に実装することにより、システムのアップデートに合わせて fastbootd をアップデートすることが可能になりました。

fastboot、fastbootd を使用するには?

デバイスを fastboot モードにするには、主に 2 つの方法があります。

  • USB デバッグを有効化し、ブートローダーに再起動する。
  • 起動時に特定のキーの組み合わせを押したり、USB ケーブルを挿したりする。
    • この方法は、デバイスによってやり方が変わります。例えば Google Pixel の場合、電源オフの状態から「音量下」と「電源」を同時に長押しします。

fastboot モードではなく、fastbootd モードにするには、次の 2 つの方法があります。

  • USB デバッグを有効化し、fastbootd モードに再起動する。
    • adb コマンドが使える環境と接続して、ターミナルで $ adb reboot fastboot を実行します。
  • fastboot モードの状態で、fastboot コマンドで fastbootd モードに切り替える。
    • fastboot コマンドが使える環境と接続して、ターミナルで $ fastboot reboot fastboot を実行します。