本頁說明為自有裝置設定建構版本時,可能需要執行的幾項工作。
建立自訂閃光燈設定
Fastboot 指令定義在名為 fastboot-info.txt 的構件中。如果您建構多個目標,$OUT_DIR 中就會有多個 fastboot-info.txt 檔案。並以 $ANDROID_PRODUCT_OUT 指向您建立的最新目標。這個頁面會列出 fastboot 要執行的工作,並可使用 m fastboot_info 重新產生。您可以修改 fastboot-info.txt 檔案,導入自訂閃爍邏輯。
fastboot-info.txt 檔案支援下列指令:
flash %s:閃爍指定分割區。選用引數包括 `--slot-other,filename_path, and--apply-vbmeta`。update-super:更新超級分區。if-wipe:如果指定清除作業,則有條件地執行其他元件。erase %s:清除指定分割區 (只能與if-wipe一併使用 -> 例如if-wipe erase cache)。
判斷快閃鎖定狀態
如果您要為裝置建構自訂 flashboot 常駐程式 (flashbootd),必須能夠取得系統啟動載入程式和系統啟動載入程式鎖定狀態。getFlashLockState() @SystemApi 會傳輸系統啟動載入程式狀態,而 PersistentDataBlockManager.getFlashLockState() 系統 API 會在相容裝置上傳回系統啟動載入程式的鎖定狀態。
| 傳回值 | 條件 |
|---|---|
FLASH_LOCK_UNKNOWN |
如果裝置先前支援刷新鎖定/解鎖功能,但升級至 Android 7.x 以上版本時,不支援取得刷新鎖定狀態所需的系統啟動載入程式變更,就會傳回這個值。
|
FLASH_LOCK_LOCKED |
如果裝置不支援刷機鎖定/解鎖 (也就是裝置一律處於鎖定狀態),或裝置支援刷機鎖定/解鎖,但處於鎖定狀態,就會傳回這個值。 |
FLASH_LOCK_UNLOCKED |
由支援刷寫鎖定/解鎖功能且處於解鎖狀態的任何裝置傳回。 |
製造商應測試系統啟動載入程式鎖定和解鎖時,裝置傳回的值。舉例來說,AOSP 包含參考實作,會根據 ro.boot.flash.locked 開機屬性傳回值。程式碼範例位於下列目錄中:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.javaframeworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java