从Android 9开始,boot映象的header包含一个字段用于标识header版本号。引导加载程序必须检查header版本号字段,并相应地解析header。通过对boot映象header进行版本编号,可在将来对header进行修改,保持向后兼容性。
旧版本中的unused
字段在Android 9之后会转换为header_version
字段,Android 9之间版本的boot映象的header版本会被视为0。所有新发布的Android 9设备必须使用v1版本的boot header。所有新发布的Android 10设备必须使用v2版本的boot header。
Android 9在创建boot映象的mkbootimg工具添加了header_version
、recovery_dtbo
参数用于设置boot映象header版本和recovery dtbo映象的路径。可在BoardConfig.mk中使用BOARD_MKBOOTIMG_ARGS
配置这些参数,如:
1 | BOARD_MKBOOTIMG_ARGS := --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --tags_offset $(BOARD_KERNEL_TAGS_OFFSET) --header_version $(BOARD_BOOTIMG_HEADER_VERSION) |