推奨されるデバイスの起動フローは次のとおりです。
A/B デバイスのフロー
デバイスが A/B を使用している場合、起動フローは少し異なります。起動するスロットは、ロールバック保護メタデータが更新される前に、ブート コントロール HAL を使用して SUCCESSFUL
とマークする必要があります。
プラットフォームの更新が失敗した場合(SUCCESSFUL
とマークされていない場合)、A/B スタックは Android の以前のバージョンが残っている別のスロットにフォールバックしますが、ロールバック保護メタデータが設定されていると、ロールバック保護のために以前のバージョンを起動することができません。
確認付きブートの状態をユーザーに通知する
デバイスの起動状態を判断した後、その状態をユーザーに伝える必要があります。デバイスに問題がない場合は、何も表示せずに続行します。確認付きブートに関する問題は次のカテゴリに分類されます。
- 黄色: カスタムのルート オブ トラスト セットを持つロックされたデバイスの警告画面
- オレンジ色: ロック解除されたデバイスの警告画面
- 赤色(eio): dm-verity 破損に関する警告画面
- 赤色(OS が見つかりません): 有効な OS が見つからない
カスタムのルート オブ トラストを持つロックされたデバイス
デバイスがロック状態で、カスタムのルート オブ トラストが設定されており、イメージがこのカスタムのルート オブ トラストで署名されている場合は、黄色の画面が表示されます。黄色の画面は 10 秒後に閉じ、デバイスは起動を続けます。電源ボタンを押すと、テキスト「一時停止するには電源ボタンを押してください」が「続行するには電源ボタンを押してください」に変わります。デバイスの画面が閉じることはありません(ただし、焼き付きを防ぐために暗くなったり消えたりすることはあります)。電源ボタンをもう一度押すと、画面は閉じますが、スマートフォンは起動を続けます。
hex-number には、確認に使用する libavb 表現の公開鍵の sha256 の最初の 8 桁(例: d14a028c
)を使用します。
推奨テキスト:
デバイスが別のオペレーティング システムを読み込んでいます。
詳しくは、別のデバイスで次のリンクにアクセスしてご確認ください。
g.co/ABH
ID: hex-number
一時停止するには電源ボタンを押します
ロック解除されたデバイス
デバイスがロック解除されている場合、起動するたびにオレンジ色の画面が表示されます。オレンジ色の画面は 10 秒後に閉じ、デバイスは起動を続けます。電源ボタンを押すと、テキスト「一時停止するには電源ボタンを押してください」が「続行するには電源ボタンを押してください」に変わります。デバイスの画面が閉じることはありません(焼き付きなどを防ぐために必要に応じて、暗くなったり消えたりすることがあります)。電源ボタンをもう一度押すと、画面は閉じますが、スマートフォンは起動を続けます。
hex-number の場合、確認に使用する libavb 表現の公開鍵の sha256 の最初の 8 桁を使用します(d14a028c
など)。
推奨テキスト:
ブートローダーがロック解除されていると、ソフトウェアの完全性は保証できません。デバイスに保存されているデータが攻撃者に読み取られる可能性があります。センシティブ データはこのデバイスに保存しないでください。
詳しくは、別のデバイスで次のリンクにアクセスしてご確認ください。
g.co/ABH
ID: hex-number
一時停止するには電源ボタンを押します。
dm-verity の破損
有効なバージョンの Android が見つかり、デバイスが現在 eio
dm-verity モードの場合は、赤色の eio
画面が表示されます。続行するには、電源ボタンをクリックする必要があります。ユーザーが 30 秒以内に警告画面に同意しない場合、デバイスの電源がオフになります(画面の焼き付きを防ぎ、電力を節約するため)。
推奨テキスト:
デバイスが破損しています。デバイスは信頼できず、正常に動作しない可能性があります。
詳しくは、別のデバイスで次のリンクにアクセスしてご確認ください。
g.co/ABH
電源ボタンを押して続行します。
有効な OS が見つからない
Android の有効なバージョンが見つからない場合は、赤色の画面が表示されます。デバイスの起動を続行できません。ユーザーが 30 秒以内に警告画面に同意しない場合、画面の焼き付き防止と電力節約のため、デバイスの電源がオフになります。
hex-number には、確認に使用する libavb 表現の公開鍵の sha256 の最初の 8 桁(例: d14a028c
)を使用します。
推奨テキスト:
有効なオペレーティング システムが見つかりませんでした。デバイスを起動できません。
詳しくは、別のデバイスで次のリンクにアクセスしてご確認ください。
g.co/ABH
ID: hex-number
電源ボタンを押して電源をオフにします。
ロック解除の確認
fastboot インターフェースを介して fastboot flashing unlock
コマンドが実行されたことを示すロック解除の確認画面を表示します。最初はロック解除しないが選択されています。ユーザーが 30 秒以内に警告画面を操作しなかった場合、画面は表示されなくなり、コマンドは失敗します。
推奨テキスト:
ブートローダーのロックを解除すると、このスマートフォンにカスタム オペレーティング システム ソフトウェアをインストールできます。カスタム OS は、元の OS と同じテストの対象ではなく、お使いのスマートフォンやインストール済みのアプリケーションが正常に動作しなくなる可能性があります。ソフトウェアの完全性はカスタム OS で保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。
個人データへの不正なアクセスを防ぐため、ブートローダーのロックを解除すると、スマートフォンの個人データもすべて削除されます。
音量大 / 小ボタンを押してブートローダーのロックを解除するかどうかを選択し、電源ボタンを押して続行します。
ロック解除
ブートローダーのロックを解除します。
ロック解除しない
ブートローダーのロック解除およびスマートフォンの再起動を行いません。
ロックの確認
fastboot インターフェースを介して実行される fastboot flashing
lock
コマンドに対するロック確認画面を表示します。最初はロックしないが選択されています。ユーザーが 30 秒以内に警告画面を操作しなかった場合、画面は表示されなくなり、コマンドは失敗します。
テキスト:
ブートローダーをロックすると、このスマートフォンにカスタム オペレーティング システム ソフトウェアをインストールできなくなります。個人データへの不正なアクセスを防ぐため、ブートローダーをロックすると、スマートフォンの個人データもすべて削除されます。
音量大 / 小ボタンを押してブートローダーをロックするかどうかを選択し、電源ボタンを押して続行します。
ロック
ブートローダーをロックします。
ロックしない
ブートローダーのロックおよびスマートフォンの再起動を行いません。
確認付きブートの状態を Android に通知する
ブートローダーは、カーネル コマンド パラメータまたは bootconfig(Android 12 以降)を使用して確認付きブートの状態を Android に通知します。androidboot.verifiedbootstate
オプションを次のいずれかの値に設定します。
green
: デバイスがLOCKED
状態で、ユーザー設定可能なルート オブ トラストが使用されていない場合yellow
: デバイスがLOCKED
状態で、ユーザー設定可能なルート オブ トラストが使用されている場合orange
: デバイスがUNLOCKED
状態の場合
androidboot.veritymode
オプションは、dm-verity エラーの処理時のブートローダーの状態に応じて、eio
または restart
に設定されます。詳しくは、確認エラーの処理をご覧ください。