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位址和序列号等