本页面将介绍您在为自己的设备设置 build 时可能需要执行的几项任务。
创建自定义刷写配置
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
:更新 super 分区。if-wipe
:如果指定了 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