裝置狀態表明軟體可以隨心所欲刷新到裝置的程度。
檢查是否強制執行驗證裝置狀態為「LOCKED
」和
UNLOCKED
。LOCKED
部裝置無法刷新裝置
軟體傳送至裝置,UNLOCKED
裝置則允許
修改內容。
裝置開機後,系統啟動載入程式會先檢查裝置是否
LOCKED
或 UNLOCKED
。如果裝置
UNLOCKED
:系統啟動載入程式會向使用者顯示警告,然後繼續
即可啟動。
如果裝置是 LOCKED
,則系統啟動載入程式會執行
驗證開機程序以進行驗證
存取裝置軟體會在LOCKED
載入的 OS 已經過信任根層級簽署。詳情請參閱
啟動流程:
變更裝置狀態
如要變更裝置的狀態,請使用
fastboot flashing [unlock | lock]
指令。保護使用者
資料,「所有」狀態都會轉換抹除資料分區,並要求使用者說明
確認資料。
預計 UNLOCKED
轉換為 LOCKED
的時間:
使用者購買了二手的開發裝置。裝置鎖定之後,
使用者應確信處於裝置產生的狀態
不需要任何警告。目標的 LOCKED
如果開發人員要停用,預計會進行 UNLOCKED
項轉換作業
以便進行開發
信任根
信任根是用來簽署 Android 副本的加密編譯金鑰 儲存在裝置上。信任根的私有部分只知道 這類裝置,用於簽署適用於此服務的所有 Android 版本 發行。信任根的公開部分會嵌入裝置中, 儲存於位置,因此無法竄改 (通常是唯讀) 如果 90 天內讀取資料不到一次 建議使用 Nearline Storage
在載入 Android 時,系統啟動載入程式會使用信任根憑證進行驗證 真實性如要進一步瞭解這項程序,請參閱 驗證開機程序。裝置可能具有 並可能同時使用多個加密編譯金鑰。
使用者可設定的信任根
裝置可選擇允許使用者設定信任根 例如公開金鑰)。裝置可以將這個由使用者設定的信任根層級用於 驗證開機程序,而非內建信任根。這樣一來,使用者 在不犧牲安全性的情況下,安裝及使用自訂的 Android 版本 改善驗證開機程序。
如果已實作使用者可設定的信任根,則應以此方式完成 顯示:
- 必須進行實體確認,才能設定/清除使用者設定的 信任關係
- 只能由使用者設定,且可由使用者設定的信任根。不能 在使用者收到 裝置。
- 使用者可設定的信任根儲存在防竄改儲存空間中, Tamper-evident 表示可以偵測 Android 是否 內容遭竄改,例如資料遭到覆寫或變更。
- 如果已設定使用者可設定的信任根,裝置應允許版本 以內建信任根或由使用者設定的 Android 簽署的 Android 使用者 啟動所需的信任根
- 每次裝置透過使用者設定的信任根層級啟動時,使用者
應通知裝置正在載入自訂版本的 Android。適用對象
警告畫面
LOCKED
具備自訂鍵的裝置。
想要實作由使用者設定的信任根,其中一種方法是擁有
只有在裝置位於
UNLOCKED
狀態。Google Pixel 2 裝置都採用這種做法,
虛擬分區稱為 avb_custom_key
資料是輸出內容的
avbtool extract_public_key
指令。以下範例將說明
使用者可設定的信任根:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
如要清除使用者設定的信任根,您可以核發以下資訊:
fastboot erase avb_custom_key