安卓启动流程

背景

  andriod设备,按下电源键后,经过一系列硬件初始化,软件服务启动,到显示桌面。整个流程,尽量详细的记录。

启动流程概览

  1. 按下电源键,加载Boot Rom。
  2. 加载XBL
  3. 加载ABL
  4. 启动内核。
  5. 加载init.rc,启动init进程
  6. 启动Zygote进程
  7. 启动system_server进程,以及system相关服务
  8. 启动桌面

启动流程详情

  1. 按下电源键,加载Boot Rom。
    1、按下电源键,电源管理芯片,为各个硬件加电
    2、cpu上电,执行的第一个代码,在cpu内部的boot rom中。boot rom中代码是只读的,在芯片制造时写入,流片后不可更改。也叫做PBL。boot rom的存在是为了确保bootloader可信,从而将信任链传导到后面的avb验证chain
    3、验证并加载XBL。
  2. 加载XBL
    1、XBL(Extensible Boot Loader)也叫SBL负责初始化硬件环境(DDR、clocks)和代码安全环境(TrustZone)。XBL代码存在闪存上。高通9008模式在此。
    2、验证并加载ABL
  3. 加载ABL
    1、ABL(Android Boot Loader),是我们通常理解的bootloader,解锁后可以刷机(fastboot线刷)。
    2、根据用户选择,进入recovery模式(卡刷)、或者线刷、或者启动内核。
    3、如果用户选择正常启动,则通过AVB验证vbmeta.img。vbmeta.img中记录了boot.img、vendor.img、odm.img等镜像的摘要,用于启动时的avb验证,保证Img的合法性和完整性。boot.img验证通过后,就挂载并启动内核。
  4. 启动内核。
  5. 加载init.rc,启动init进程
  6. 启动Zygote进程
  7. 启动system_server进程,以及system相关服务
  8. 尽情期待
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值