建議的設備啟動流程如下:
A/B 設備的流程
如果裝置使用 A/B,則啟動流程略有不同。在更新回滾保護元資料之前,必須先使用引導控制 HAL將要引導的插槽標記為SUCCESSFUL
。
如果有一個平台更新失敗(未標記為SUCCESSFUL
),A/B 堆疊將回退到另一個插槽,其中仍包含先前版本的 Android。但是,如果已設定回滾保護元數據,則先前的版本將因回滾保護而無法啟動。
向使用者傳達驗證啟動狀態
確定裝置的啟動狀態後,您需要將該狀態傳達給使用者。如果設備沒有任何問題,則繼續操作而不顯示任何內容。已驗證的啟動問題分為以下幾類:
- 黃色:帶有自訂信任根設定的鎖定裝置的警告螢幕
- 橘色:未鎖定裝置的警告螢幕
- RED (eio):dm-verity 損壞的警告螢幕
- 紅色(未找到作業系統):未找到有效的作業系統
具有自訂信任根的鎖定設備
如果裝置已鎖定、已設定自訂信任根並且已使用此自訂信任根對映像進行簽名,則每次啟動時都會顯示黃色螢幕。十秒後黃色螢幕消失,裝置繼續啟動。如果使用者按下電源按鈕,“按電源按鈕暫停”文字將更改為“按電源按鈕繼續”,並且螢幕永遠不會關閉,儘管裝置可能會變暗或關閉螢幕以防止燒屏。如果再次按下,螢幕將消失並且手機繼續啟動。
對於hex-number ,使用用於驗證的公鑰的 libavb 表示形式的 sha256 的前 8 位數字,例如d14a028c
。
建議文字:
您的裝置已載入不同的作業系統。
在其他裝置上造訪此連結以了解更多資訊:
g.co/ABH
ID: hex-number
按電源按鈕暫停
解鎖的設備
如果裝置已解鎖,則每次啟動時都會顯示橘色螢幕。十秒後橘色螢幕消失,裝置繼續啟動。如果使用者按下電源按鈕,“按電源按鈕暫停”文字將更改為“按電源按鈕繼續”,並且螢幕永遠不會關閉(如果需要,設備可能會變暗和/或關閉螢幕以防止燒毀)或類似)。如果再次按下,螢幕將消失並且手機繼續啟動。
對於hex-number ,使用用於驗證的公鑰的 libavb 表示形式的 sha256 的前 8 位數字,例如d14a028c
。
建議文字:
引導程式已解鎖,無法保證軟體完整性。攻擊者可能可以獲得設備上儲存的任何資料。不要在設備上儲存任何敏感資料。
在其他裝置上造訪此連結以了解更多資訊:
g.co/ABH
ID: hex-number
按電源按鈕暫停。
dm-verity 腐敗
如果找到有效的 Android 版本且裝置目前處於eio
dm-verity 模式,則顯示紅色eio
畫面。用戶需要點擊電源按鈕才能繼續。如果使用者在 30 秒內未確認警告螢幕,裝置將關閉(以防止螢幕燒屏並節省電量)。
建議文字:
您的設備已損壞。它不可信並且可能無法正常工作。
在其他裝置上造訪此連結以了解更多資訊:
g.co/ABH
按電源按鈕繼續。
未找到有效的作業系統
如果找不到有效的 Android 版本,則會顯示紅色螢幕。設備無法繼續啟動。如果使用者在 30 秒內未確認警告螢幕,裝置將關閉以防止螢幕燒屏並節省電量)。
對於hex-number ,使用用於驗證的公鑰的 libavb 表示形式的 sha256 的前 8 位數字,例如d14a028c
。
建議文字:
找不到有效的作業系統。設備將無法啟動。
在其他裝置上造訪此連結以了解更多資訊:
g.co/ABH
ID: hex-number
按電源按鈕關閉電源。
解鎖確認
顯示解鎖確認畫面,以回應透過 fastboot 介面執行的fastboot flashing unlock
指令。焦點最初位於Don't unlock 。如果使用者在 30 秒內未與警告螢幕進行交互,則螢幕會消失且命令失敗。
建議文字:
如果您解鎖引導程序,您將能夠在此手機上安裝自訂作業系統軟體。自訂作業系統不接受與原始作業系統相同級別的測試,並且可能會導致您的手機和安裝的應用程式停止正常運作。自訂作業系統無法保證軟體完整性,因此引導程式解鎖時儲存在手機上的任何資料都可能面臨風險。
為了防止未經授權存取您的個人數據,解鎖引導程式還將刪除您手機上的所有個人資料。
按音量增加/音量降低選擇是否解鎖引導程序,然後按電源按鈕繼續。
開鎖
解鎖引導程式。
不要解鎖
不要解鎖引導程式並重新啟動手機。
鎖定確認
顯示鎖定確認畫面,以回應透過 fastboot 介面執行的fastboot flashing lock
指令。焦點最初位於Don't lock 。如果使用者在 30 秒內未與警告螢幕進行交互,則螢幕會消失且命令失敗。
文字:
如果鎖定引導程序,您將無法在此手機上安裝自訂作業系統軟體。為了防止未經授權存取您的個人數據,鎖定引導程式還將刪除手機上的所有個人資料。
按音量增加/音量降低選擇是否鎖定引導程序,然後按電源按鈕繼續。
鎖
鎖定引導程式。
不要鎖定
不要鎖定引導程式並重新啟動手機。
將驗證啟動狀態傳達給 Android
引導程式透過核心命令參數或從 Android 12 開始透過 bootconfig 將驗證啟動狀態傳達給 Android。它將androidboot.verifiedbootstate
選項設為下列值之一:
-
green
:如果裝置已LOCKED
且未使用使用者可設定的信任根 yellow
:如果裝置已LOCKED
並且使用使用者可設定的信任根orange
:如果設備已UNLOCKED
androidboot.veritymode
選項設定為eio
或restart
,取決於引導程式在處理 dm-verity 錯誤時所處的狀態。有關更多詳細信息,請參閱處理驗證錯誤。