版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zoosenpin/article/details/82951141
1 ramdisk的加载选择
如果命令行中包含skip_initramfs,那么加载system.img的ramdisk而不是boot.img的recovery ramdisk
@ BoardConfig.mk
BOARD_KERNEL_CMDLINE := ... skip_initramfs ...
AndroidO之后没有独立的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中:
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