Android BootLoader及两种刷机模式fastboot和recovery

from:http://hi.baidu.com/sangwf/item/e967f90cb2a1ffe0f55ba64e

对于一个android手机用户加软件工程师,刷机而不知道它的内部原理,那是很痛苦的。本着学习的心态,还是去研究了一番。

首先,你要知道智能手机就是一台小电脑,如果你恰好用的是linux系统,那可以说两者在系统层面没有区别。因为android就是linux内核外加java虚拟机。当你开机时,机器首先要启动,CPU最先执行的一段程序就是BootLoader,这和电脑上的BIOS是一个玩意儿。它所做的事情就是初始化硬件,CPU时钟之类的,以及加载内核文件。BootLoader可以分为两个阶段。在阶段一,做了一些初始化,在阶段二,如果发现按键有特殊的组合,比如htc g2是回退键和开机键,就会进入fastboot模式。这里要说的是,内核还没有加载,所以更谈不上多进程任务调度之类的概念,机器只是在顺序执行一条条的指令。

BootLoader既然要做硬件初始化之类的,必然和硬件相关,所以它的代码并非通用的,不同的硬件需要不同的BootLoader代码,各大厂商可能都有自己的,并且加入开机画面之类的。最常听说的是uboot和hboot,后者是htc的bootloader。我们常说的刷机,是不会动bootloader的,只会动这之后的系统部分。

再说fastboot,它是bootloader后期进入的一个特殊阶段。可以通过数据线与电脑连接,然后在电脑上执行一些命令,如刷系统镜像到手机上。fastboot可以理解为实现了一个简单的通信协议,接收命令并更新镜像文件,其他什么的干不了。

如果没有进入fastboot,bootloader继续执行,如果又发现有特殊的按键组合,比如htc g2上是home键和开机键,则会进入recovery模式。分析recovery.img镜像文件就会发现,它里面包含了一个kernel以及一个可执行程序recovery,以及一些初始化文件。从某种意义来说,这就是一个小型操作系统,和正常启动进入的系统的kernel是一样的,只是init及之后干的事情不同。这里的kernel和我们常说的linux内核还是有差异的,linux内核是包括kernel以及调度器内存管理等除显示界面外完整系统。而kernel只是指内核init进程启动前的那一段逻辑。

在recovery模式下,会加载了部分文件系统,所以才可以读sdcard中的update.zip进行刷机,当然,也可以清除cache和用户数据。

讲到这里,我想说的是,既然recovery是一个小型操作系统并且有手机这样现成的设备,我们可以基于它做些有趣的事,比如移植网络协议及无线网络连接逻辑,然后开发一个命令行版的新浪微博客户端,这样就可以用自己改造的系统发微博了。当然,先改一个hello world版的recovery再说。也许还可以基于这些实践写一些幫助学习操作系统的教程。

更多相关文章
  • 


    		    Android语音采集两种方式MediaRecorder和AudioRecord
    MediaRecorder和AudioRecord的区别和联系 MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器.并且录制的音频文件可以用系统自带的Music播放器播放. 而AudioRecord录制的是P ...
  • [转帖] android平台刷机包的制作研究 1~2 android, 平台, 转帖, 制作, 研究1: ------------------------------------------------------------------------------------------------- ...
  • 有网友写过各种版本的ME865/MB865如何开启root权限和刷国行包的文章,我从淘宝网买了一款港版2012年1月生产(原产地天津)的ME865,研读了这些文章,也照做了,但发现根本不行.我把自己遇到的问题和解决辦法写下来,供网友参考. 注意,我用的windows 7(64 Bit)来刷机的. 网 ...
  • 关联A850刷机包 高级电源 时间中心 优化 ROOT 动力 美化 简化
    ROM简介 1.合并app以及framewok框架apk 2.破解安卓核心验证 3.加入busybox指令集 4.加入Root权限 5.时间居中显示.通知图标不会重叠 6.加入网速显示 7.加入%1精确电量 8.电源选项增加刷机模式 9.下拉简单美化 10.Home显示空暇Ram 11.近期任务支持 ...
  • OpenVPN For Android手机刷机的实现Twitter
         我有时刷Twitter.或Facebook吹吹牛逼,现在Android为VPN支持实在是渣渣.免费用非常大量的VPN程序的人都在流泪.因此,获得设置有自己的VPN这个想法,刷机来实现Twitter.吹吹牛逼的梦想!      基本配置:     1.server一台(位于美帝的洛杉矶).C ...
  • 再次提醒,刷机需慎重处理. http://blog.csdn.net/ztp800201/article/details/11980643 iphone一共同拥有三种工作模式,各自是正常模式,恢复模式和DFU模式. DFU的全称是Development FirmwareUpgrade,实际意思就是i ...
  • 


    		    NLB群集的两种操作模式1
    NLB群集的操作模式 最近很多学员都在问我NLB群集两种操作模式的区别,所以今天特地写一篇关于NLB群集操作模式的一篇博文,供大家参考,也希望论坛中各位高手给予指点. Windows NLB群集有两种操作模式:单播模式.多播模式. 单播模式(交换机不允许两个port注册相同的MAC地址):二层交换机 ...
  • ftp运行的两种模式——xinetd运行模式和 standalone模式  原文链接 http://blog.chinaunix.net/uid-22889411-id-59432.html   像其它守护程序一样,vsftpd提供了standalone和inetd(inetd或xinetd)两种运 ...
一周排行