欢迎光临散文网 会员登陆 & 注册

Android系统是如何启动的?

2023-04-15 01:41 作者:初代目葱娘  | 我要投稿

安卓系统启动流程

第一阶段 BootRom:为处理器上电/复位后执行的第一段代码(固化在Rom中),负责加载TEE与REE和拉起下一阶段BootLoader

*高通SOC的此阶段叫PBL


第二阶段 BootLoader:负责硬件的基本初始化和引导操作系统内核

1.早期安卓:使用uboot/LittleKernel引导

*其中LittleKernel(LK)使用较多

2.骁龙820后:使用UEFI引导

第一阶段SBL/XBL:基本硬件初始化(CPU MMU等),拉起aboot/ABL

第二阶段aboot/ABL:其余硬件初始化,校验启动镜像签名(AVB校验),加载启动镜像(内核)到系统

*解BL即为解开此阶段的AVB校验

*fastboot在此阶段提供,为通过USB与BootLoader通信的协议


第三阶段 Linux内核启动

1.判断启动为正常启动/Recovery

1.1.正常启动:合并并加载boot.img和vendor_boot.img到Ramdisk

1.2.Recovery:加载boot.img到Ramdisk

2.执行first stage init:调用Ramdisk中的init,用于加载各种分区

3.执行second stage init:调用 /system/bin/init


第四阶段 安卓启动

调用ActionManager组件,组件读取并执行系统中的配置文件

1.执行init.rc:负责各种基本的初始化操作

2.执行zygote.rc:负责启动系统

2.1.调用app_process拉起zygote和开启SystemServer

2.2.SystemServer拉起AMS等更多的系统级服务

2.3.AMS拉起Launcher(启动器)


Android系统是如何启动的?的评论 (共 条)

分享到微博请遵守国家法律