Android 开机流程 FAQ

1,593 阅读2分钟

一篇文章看明白 Android 系统启动时都干了什么:blog.csdn.net/freekiteyu/…

image.png

BootLoader:初始化硬件设备,建立内存空间的映像图,读取 ROM 找到操作系统并将 Linux 内核加载到 RAM 中。

Kernel:初始化各种软硬件环境,加载驱动程序,挂载根文件系统,Linux 内核加载的最后阶段会启动执行第一个用户空间进程 init 进程。

Android Verified Boot 2.0 AVB详解(基于Android P) www.cnblogs.com/schips/p/wh…

浅谈 Android 的安全启动和完整性保护 evilpan.com/2020/11/14/…

linux文件系统(inode block superblock) www.cnblogs.com/chengkanghu…

常见问题

fastboot&recovery、adb&fastboot

1、系统启动阶段,BootLoader可以加载kernel镜像(boot.img中的kernel和ramdisk)再进一步加载system镜像(system.img),也可以加载recovery镜像(recovery.img)进入recovery模式;总结:fastboot模式对应BootLoader阶段,recovery模式对应加载kernel镜像/recovery镜像阶段。

fastboot模式(该模式下无adb口)的进入方式:1)关机状态组合键进入(power键+音量下键);2)adb命令进入(adb reboot bootloader)

还有一种fastbootd模式(该模式下无adb口),是用户空间的fastboot,可用用户控件的fastboot工具刷system/product/vendor/odm/cust/version/preload等镜像(fastboot.exe erase system, fastboot.exe reboot, fastboot flash super super.img),进入方式:1)adb reboot bootloader, fastboot reboot fastboot;2)adb reboot fastboot;3)adb reboot fastbootd

recovery模式(该模式下有adb口)的进入方式:1)关机状态组合键进入(power键+音量上键),在解锁界面长按3秒音量上键;2)adb命令进入(adb reboot recovery)

2、Android SDK的platform-tools目录下提供了adb和fastboot工具,adb用于recovery/system级别的调试,fastboot用于BootLoader级别的调试;

3、手机主控芯片:adb命令调试Android系统;手机基带芯片:AT串口命令调试Modem子系统(或手机进BootLoader及之前阶段,个人理解)

4、BootLoader阶段负责初始化TEE,并在加载kernel前校验boot和recovery分区的完整性。

参考

fastboot:baike.baidu.com/item/fastbo…

boot.img:baike.baidu.com/item/boot.i…

安卓系统中各镜像介绍:www.cnblogs.com/schips/p/in…

引导加载程序-概览:source.android.google.cn/devices/boo…

引导加载程序-分区布局:source.android.google.cn/devices/boo…

引导加载程序-分区和映像:source.android.google.cn/devices/boo…

Android的ADB和AT调试端口:blog.csdn.net/melancholy1…

lk(little kernel)

本篇文章简单介绍了Android系统中LK启动流程,LK是一个轻量级的线程系统,是一个Bootloader,其最主要的目的就是将Linux内核镜像从emmc或nand flash中加载入RAM中,然后将Linux内核系统启动起来。

Android系统之LK启动流程分析(一):www.cnblogs.com/Cqlismy/p/1…