2024年4月5日发(作者:)
在这纷纷扰扰的Android世界里,如何找到那条刷机大道呢,或许它只是个传说,我
们只是一直在探索。让我们从零开始来看一看,看能发现点什么。
1. bootloader
当我们拿到一款手机,第一件事应该就是按下电源键开机,那么从开机到进入到桌面
程序这中间发生了些什么呢,我们从下面这张简化了的手机结构图开始:
注意:该结构图并不反映手机的实际分区顺序和位置,只是一个逻辑结构图。
大家可以简单的把手机的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就是一段启动代码,根据用户按键有选择的进入某种启动模式。
fastboot模式:fastboot是android定义的一种简单的刷机协议,用户可以通过
fastboot命令行工具来进行刷机。比如说fastboot flash boot 这个命令就是把
的内容刷写到boot分区中。一般的手机厂商不直接提供fastboot模式刷机,
而是为了显示他们的牛B之处,总是会提供自己专有的刷机工具和刷机方法。比如说三星
的Odin,摩托的RSD,华为的粉屏等等。但是其本质实际上是相同的,都是将软件直接
flash到各个分区中。
recovery模式:recovery是android定义的一个标准刷机协议。当进入recovery模
式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是
一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux
系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也
由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。一般的手
机厂商都提供一个简单的recovery刷机,而大名鼎鼎的CWM Recovery就是一个加入了
很多增强功能的recovery,要想用上CWM Recovery前提是recovery分区可以被刷写。
大家在论坛上看到的解锁bootloader,通常指的就是解锁recovery或fastboot,允许刷
写recovery分区,这样大家就可以用上喜爱的CWM Recovery了。


发布评论