android系统的分区结构
转载
ANTIBili_MC 关注
(一)Android的主要分区
Modem分区bootloader分区boot分区recoverty分区system分区data分区1. modem分区
a) 实现手机必需的通信功能,大家通常所的刷RADIO就是刷写modem分区,在所有适配的ROM中这部分是不动,否则会造成通话不稳定;
2. bootloader分区
a) bootloader的primarybootloader部分,主要执行硬件检测,确保硬件能正常工作,然后将secondarystagebootloader拷贝到内存(RAM)开始执行。
b) Secondarystagebootloader会进行一些硬件初始化工作,获取内存大小信息等,然后根据用户的按键进入到某种启动模式。比如说大家所熟知的通过电源键和其它一些按键的组合,可以进入到recovery,fastboot或者选择启动模式的启动界面等。
fastboot模式:fastboot是android定义的一种简单的刷机协议,用户可以通过fastboot命令行工具来进行刷机。比如说fastboot flash boot boot.img这个命令就是把boot.img的内容刷写到boot分区中。一般的手机厂商不直接提供fastboot模式刷机,总是会提供自己专有的刷机工具和刷机方法。比如说三星的Odin,摩托的RSD,华为的粉屏等等。但是其本质实际上是相同的,都是将软件直接flash到各个分区中。这种通常称为线刷,是比较原始的方法。当手机处于开不了机的情况下,可以使用此厂家提供的工具进行刷入;
3. boot分区
当我们只是按下电源键开机时,会进入正常启动模式。Secondarystagebootloader会从boot分区开始启动。Boot分区的格式是固定的,首先是一个头部,然后是Linux内核,最后是用作根文件系统的ramdisk。当Linux内核启动完毕后,就开始执行根文件系统中的init程序,init程序会读取启动脚本文件(init.rc和init.xxxx.rc)。
android内核挂载/nfsroot/androidfs之后,根据init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是:
1)设置一些环境变量
2)创建system、sdcard、data、