1 ramdisk的加载选择
如果命令行中包含skip_initramfs,那么加载system.img的ramdisk而不是boot.img的recovery ramdisk
BoardConfig.mk
BOARD_KERNEL_CMDLINE := ... skip_initramfs ...
Android 8.0之后没有独立的recovery.img,boot.img根据cmdline参数来决定mount哪个ramdisk。
如果有skip_initramfs参数,那么mount打包在system.img中的normal ramdisk(CONFIG_BLK_DEV_INITRD);否则mount打包在boot.img中的recovery ramdisk。
参数BOARD_BUILD_SYSTEM_ROOT_IMAGE的配置决定是将normal ramdisk打包到boot.img中还是打包到system.img中。
打包到boot.img中:
BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
打包到system.img(system-as-root)中:
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
2 URLs
Android A/B System OTA分析(四)系统的启动和升级
https://blog.csdn.net/guyongqiangx/article/details/72604355?locationNum=6&fps=1
3 Abbreviations
GA: MTK General Availability,软件的通用版本
VPD:MTK Vital Product Data,vpd分区,保存MAC地址和序列号等