本頁介紹了在為自己的裝置設定建置時可能需要執行的多項任務。
建立自訂快閃記憶體配置
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.java
-
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java