android8.1系统启动过程(一)

仲浩歌
2023-12-01

这里分享一篇比较好的文章https://cloud.tencent.com/developer/article/1199503


android启动过程

1.    poweron          -- 上电


2.    bootloader       --  cup内部的bootloader根据硬件GPIO的设置 判断系统是以什么方式启动(U盘 、SD卡、内置flash) 

                                 --  开始引导  [3.    uboot]  


3.    uboot [1]            --  初始化相关外设(内存、flash、I/O) 

                                  --  通过串口修改启动参数

                                  --  引导内核启动  


4.    kernel [1]          --  初始化相关外设(系统主频、内存、flash)     source/kernel/init/main.c

                                --  驱动加载(系统驱动、外设驱动)

                                --  根据  [3.    uboot]  配置的启动参数启动系统


5.    android [1]         --  挂载分区

                                 --  创建android目录

                                 --  动态加载驱动

                                 --  启动系统服务(mediaservice、servicemanager、adbd、bootanimation、surfaceflinger、zygote)

                                 --  配置环境变量(硬件版本、软件版本)

                                 --  守护系统(服务出错重新创建)

android启动两种模式     

    升级模式 (recovery)   启动recovery分区的内核合文件系统   小、服务少

                                        recovery模式可以完成  --  清除数据

                                                                               --  系统升级  [2]  (差量包升级、全包升级)  差量包主要对system分区进行差量升级  全包对system分区全部升级

    正常启动模式              引导内核和启动android系统

             在何时进行启动模式区分               --  在  [3.    uboot]  启动区分 

             如何进入升级模式 (recovery)       --  当设备启动到  [3.    uboot]  并且进行输入recovery命令  在重启的时候就会检查recovery命令进行升级模式

                                                                   --  等待按键输入  捕获相应按键输入  引导升级模式

                                                                   --  下载安装包  调用reboot命令进行recovery升级  重启后直接进入recovery模式  默认安装相应安装包


[1]  android的启动时间可以从 3 4 5 过程优化

[2]  升级失败可以在设备重启后在cache分区查看相应log

 类似资料: