-
[Android] 以HTC Wildfire为例讲解Android的几种启动模式
日期:2010-10-09 | 分类:Android |
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://anriqing.blogbus.com/logs/77409931.html
Note: 以下内容是我自己的学习、理解,如果您有不同看法,欢迎批评指正。
根据我对Android的理解,Android系统大致支持这几种启动模式:Normal, Bootloader, Fastboot, Recovery, Factory(其中Bootloader和Fastboot也可以归为一类),这些命名是我自己根据实际情况起的名字。这里先简单介绍一下这几种模式:
1. Normal: 即正常启动到OS的模式,对于不同的Android设备来说,一般都是按下电源键开机即可。
2. Bootloader: 即启动到Bootloader。对于Linux来说,目前最常见的Bootloader是GRUB,对Android OS来说,常见的Bootloader是uBoot,不过不同的公司会使用自己的Bootloader,比如HTC的Bootloader是HBoot。另外,Bootloader一般会分为两阶段,IPL(Initial Program Loader)和SPL(Second Program Loader)。
3. Fastboot: Fastboot是SPL的一项特殊功能,即可以通过USB将Android设备与Windows/Linux主机连接起来,然后通过Android SDK的tools目录下的工具Fastboot来对Android设备进行一些操作,比如清除userdata分区(挂载点为/data),cache分区(挂载点为/data),甚至是boot分区和system分区(挂载点为/system),flash update.zip更新文件和一些.img文件。不过一般来说,即使支持Fastboot的Android设备,Fastboot默认也是被锁住的。
4. Recovery: 即启动到恢复模式,进入Recovery模式可以进行恢复出厂设置(所作操作为format /data和/cache两个分区),执行更新update.zip(一般可以更新Bootloader/boot/Recovery/system这四种image)。
5. Factory: 即进入工厂恢复模式,该模式一般用于重烧整个ROM上的image。
我自己的手机是HTC Wildfire(野火),所以下面我会以HTC Wildfire为例来讲解这几种启动模式,下面先看一下HTC Wildfire的相关实体键:
HTC Wildfire机身上有4个键,分别为电源键,音量调大键, 音量调小键以及光学键(也有人称轨迹球,拍照键)。

下面讲解HTC Wildfire如何进入不同启动模式(其它Android设备请自行摸索或者Google):
1. Normal:
HTC Wildfire按一下电源键即可正常开机。
这里也提一下重启的方法:Wildfire同时按下电源键+音量调小键+光学键可以重启。
另外,在Windows/Linux下,也可以借助Android SDK的tools目录下的工具adb来操作让Android设备重启,具体命令为”adb reboot”。
2. Bootloader:
HTC Wildfire同时按下电源键+音量调小键开机即可进入Bootloader。下图为HTC Wildfire进入Bootloader后的画面,在该模式下,电源键相当于选择键,音量调大键相当于向上选择,音量调小键相当于向下选择。
另外,在Windows/Linux下,也可以借助Android SDK的tools目录下的工具adb来操作让Android设备进入Bootloader,具体命令为”adb reboot Bootloader”。但是,HTC Wildfire实际进入的是Fastboot。

3. Fastboot:
HTC Wildfire同时按下电源键+光学键开机即可进入Fastboot。下图为HTC Wildfire进入Fastboot后的画面,在该模式下,电源键相当于选择键,音量调大键相当于向上选择,音量调小键相当于向下选择。第一行的”S-ON”代表security-on,也就是Fastboot被锁住了。

4. Recovery:
HTC Wildfire进入Bootloader后,按音量调小键向下选择”Recovery”,然后按下电源键即可进入Recovery模式。下图为HTC Wildfire进入Recovery模式的画面(已经root过,不是Wildfire进入Recovery模式的默认画面了),在该模式下,电源键相当于返回键,音量调大键相当于向上选择,音量调小键相当于向下选择,光学键相当于确认。
另外,在Windows/Linux下,也可以借助Android SDK的tools目录下的工具adb来操作让Android设备进入Bootloader,具体命令为”adb reboot Recovery”。
再另外,在Recovery模式下,ClockworkMod的Recovery image可以使用adb,应该是该image内置了adbd。

5. Factory:
HTC Wildfire同时按下电源键+音量调大键即可进入工厂模式。进入该模式后,初始是黑屏的。
Ps:Wildfire的这种模式是否就是工厂模式,目前我还有得到确认。不过有一个很有意思的实验,将HTC Wildfire通过USB数据线跟Linux系统连接起来,然后在终端下使用”lsusb”命令来查看系统所认到的设备,USB设备都会有对应的Vendor ID和Device ID,分别指示设备制造商和设备ID。”lsusb”的结果就会显示这两组ID。将HTC Wildfire分别开启到这几种不同的模式,再来通过”lsusb”命令来查看这两组ID时,我们会看到以下结果:
a. Normal: 0BB4:0C8B
b. Bootloader: 0BB4:0C94
c. Fastboot: 0BB4:0FFF
d. Recovery: 0BB4:0C8B
e. Factory: 05c6:9002
可以看到,前四种模式下的Vendor ID都是0BB4,而第五种模式下确实05c6,这很有趣。事实上,0BB4是HTC的USB设备Vendor ID,而05c6则是Qualcomm的USB设备Vendor ID(可以从文末我给的链接去证实),而HTC Wildfire采用的就是Qualcomm的芯片。所以根据硬件ID信息我推测这第五种模式应该是工厂模式,用于重烧整个ROM上的image。
相关链接如下:
1. SPL: http://code.google.com/p/android-roms/wiki/SPL
2. Fastboot: http://wiki.cyanogenmod.com/index.php?title=Fastboot
3. USB ID查询:http://www.linux-usb.org/usb.ids
收藏到:Del.icio.us







