玩机入门 - 基础概念

一、Android ROM的各大分区

FQ

1.boot分区--内核与引导

这个分区上有Android系统的引导程序,包括内核和内存操作程序。如果没有这个分区,该设备将无法启动系统。恢复系统的时候会擦拭此分区,并且必须重新安装引导程序和ROM才能重启系统。

2.system分区--系统底层

这个分区基本包含了整个安卓操作系统,包括安卓用户界面、和所有预装的系统应用程序。擦除这个分区,会删除整个安卓系统。

目标目录为/system

3.userdata分区--用户数据

这个分区保存着用户数据。通讯录、短信、设置和你安装的apps都在这个分区上。当第一次启动设备的时候或者在安装了官方或者客户的ROM之后系统会自动重建这个分区。当执行恢复出厂设置时,就是在擦除这个分区。早期的手机有单独的data分区,而现在data分区与手机的内置存储合并在一起了,所以格式化data分区就会连内置存储里的数据一起清除。

4.cache分区--系统缓存

这个分区是Android系统存储频繁访问的数据和app的地方。擦除这个分区不影响你的个人数据,当你继续使用设备时,被擦除的数据就会自动被创建。

5.misc

这个分区包含各种复杂的类似于on/off的系统设置。这些设置可能是USB配置和某些硬件配置信息。这是一个重要的分区,如果该分区损坏或者丢失,设备的功能可能就工作不正常。

6.sdcard

这个分区不是ROM的存储区,而是SD card。这是你个人存储文件的地方,存储多媒体文件、文档、资料等等。通常会备份该分区的数据,如个人相册、文档资料等。但注意一些用户安装的apps会存储数据和设置参数到SD card上,擦除这个分区会掉的这些数据。

7.recovery

recovery分区是一个可以启动的分区,里面存有我们熟悉的recovery模式,你可以启动设备进入recovery控制台去执行高级的系统恢复和管理操作。

8.SPL

它是second bootloader1的缩写,该分区中放置着引导程序,它是在little kernel(lk)前启动,起到引导lk的作用,如果将该分区擦除,则手机表现为进入紧急下载模式,即,擦除该分区后,插入USB显示QDload端口。

9.aboot

该分区放置设lk相关系统文件(bootloader引导),和Fastboot模式。lk主要是初始化相关底层硬件,起到引导boot的作用。在编译时,可以利用指令 make aboot单独编译lk,擦出这个分区设备将无法启动。

10.modem

主要管理手机的基带部分。与电信网络交互就是靠它了,一般往往用专用开发环境来开发。手机无线信号、蓝牙、wifi等无线管理也在这里。

11.splash

该分区主要存放开机的第一帧画面。


大家可以简单的把手机的ROM存储类比为我们电脑上的硬盘,这个硬盘被分成了几个分区:bootloader分区,boot分区,system分区等等。后面我们会逐渐介绍各个分区的用途。所谓的刷机我们可以简单的理解成把软件安装在手机的某些分区中,类似于我们在电脑上安装Windows系统。

  当按下电源键手机上电启动后,首先从bootloader分区中一个固定的地址开始执行指令,bootloader分区分成两个部分,分别叫做primary bootloader和secondary stage bootloader。Primary bootloader主要执行硬件检测,确保硬件能正常工作后将secondary stage bootloader拷贝到内存(RAM)开始执行。Secondary stage bootloader会进行一些硬件初始化工作,获取内存大小信息等,然后根据用户的按键进入到某种启动模式。比如说大家所熟知的通过电源键和其它一些按键的组合,可以进入到recovery,fastboot或者选择启动模式的启动界面等。我们在论坛上看到的bootloader通常指的就是secondary stage bootloader。不过我们不需要关心太多的细节,可以简单的理解为bootloader就是一段启动代码,根据用户按键有选择的进入某种启动模式。


二、Android系统的启动模式


1.正常启动

当我们只是按下电源键开机时,会进入正常启动模式。Secondary stage bootloader会从boot分区开始启动。Boot分区的格式是固定的,首先是一个头部,然后是Linux内核,最后是用作根文件系统的ramdisk。

当Linux内核启动完毕后,就开始执行根文件系统中的init程序,init程序会读取启动脚本文件(init.rc和init.xxxx.rc) 来完成启动。

2.Fastboot模式

fastboot是android定义的一种简单的刷机协议,用户可以通过fastboot命令行工具来进行刷机。

一般是同时按住音量减和电源键进入该模式。

3.Recovery模式

recovery是android定义的一个标准刷机协议。当进入recovery模式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。一般的手机厂商都提供一个简单的recovery刷机,而大名鼎鼎的TWRP Recovery就是一个加入了很多增强功能的recovery,要想用上TWRP Recovery前提是recovery分区可以被刷写。大家在论坛上看到的解锁bootloader,通常指的就是解锁recovery或fastboot,允许刷写recovery分区,这样大家就可以用上喜爱的TWRP Recovery了。

4.紧急下载模式

此模式并不是固件里的,而是处理器厂商提供的,比如我们熟知的高通9008深度刷机就是如此,它是救砖最佳方法,通常都是关机之后按住音量下键 + 音量上键,再插入USB线,或者使用工程线或主板短接的方法进入此模式。

5.FFBM模式

此模式为工厂测试模式,它也是处理器厂商提供的,它的主要作用是用于快速测试手机的一些基本功能。在开机过程中bootloader通过读取misc分区字串如果读取到ffbm-fy字符则进入该模式。

你可能感兴趣的:(玩机入门 - 基础概念)