APP下载

刷刷更健康浅谈Android手机的“刷机经”

2015-09-10

电脑爱好者 2015年21期
关键词:双清固件镜像

和封闭的iOS设备相比,Android最大的优势就是开放,玩家可通过无数渠道下载刷入第三方ROM资源。比如,让华为手机体验小米的MIUI,让三星手机体验锤子的Smartisan OS。那么,你了解Android刷机背后的技术原理吗?

从Android的启动机制谈起

在手机关机的状态下,当我们按下电源按钮,短暂的震动提示过后屏幕里就会出现欢迎界面(比如品牌或运营商的Logo),稍等片刻就能进入Android系统。而这个过程就是常规的“Normal Mode”(正常启动模式),直接调用最底层的CPU、内存等硬件引导系统直至启动成功。

实际上,除了“Normal Mode”之外,Android还拥有另外两种启动模式:“Recovery Mode” (恢复模式)和“Bootloader- Fastboot Mode”(快速启动模式)(图1)。如果你的Android手机想体验一番刷机之旅,那就离不开后面两种模式的帮忙(图2)。

“救火队员”Fastboot

在PC刚开机时我们可以通过按Delete键进入BIOS,而Bootloader就是嵌入式设备(如手机、平板)领域的BIOS。简单来说,Bootloader是将经过编译的“uboot.bin”镜像烧录至设备里的一个特定分区。它支持交互式启动,当手机进入Bootloader完成初始化后并不会启动OS,而是停留在当前状态,等待用户告诉它接下来要去做什么。在这个状态下就是我们常说的“Fastboot Mode”了。

对Android手机来说,打开USB调试模式,连接PC通过“adb reboot bootloader”命令即可进入“Fastboot Mode”。此外,在手机关机时同时按住音量加和电源键(不同品牌型号的手机进入该模式的方法可能不同,比如有些品牌是需要同时按音量减和电源键),也能进入这一模式(图3)。

对Android手机而言,“Fastboot Mode”又被玩家誉为“直刷模式”和“救砖模式”。顾名思义,“直刷模式”意味着该模式必须在连接PC并安装相关驱动和客户端程序后才能刷入固件ROM或Recovery;而“救砖模式”,则代表无论手机遇到了多么严重的软件系统冲突而导致无法正常使用等问题,只要能进入这一模式就有机会“原地满血复活”。

以三星手机为例,如果手机系统崩溃无法正常开机,只需提前在网上下载完整的固件ROM,并在Fastboot模式下连接PC,运行三星Odin客户端程序。等Odin识别出手机后,选择固件ROM的路径即可进行“直刷”(图4),即将固件ROM强行写入手机的内存中。如果不出意外,直刷后你的手机就能恢复正常了。

刷机的核心Recovery

“Recovery”应该是所有Android手机用户最为耳熟能详的关键词了。该模式又被称为“恢复模式”和“卡刷模式”,一般通过同时按音量减和电源键进入(图6)。比如,当你忘记手机的解锁密码,只需进入Recovery并执行双清就等同于恢复了出厂设置,从而破解密码重新进入系统界面。此外,当我们想刷入第三方ROM,也需要进入Recovery并选择ROM对应的zip压缩包进行刷机(需提前将固件ROM包下载到存储卡内)。而上述所有操作都可脱离PC直接在手机端独立完成,卡刷之名就是由此而来。

实际上,无论是官方OTA(在线升级),还是我们刷入第三方ROM,其实都是在Recovery模式下完成的。比如,当Android手机提示有系统更新时(图7),当我们下载好升级包并选择重启升级时,手机便会自动进入官方Recovery并执行update.zip的更新操作。需要注意的是,在Fastboot模式下也能刷入system.img和boot.img镜像,只是Recovery模式下的操作更简单快捷。

当我们辛辛苦苦下载了一个动辄800MB的第三方ROM包,在进入Recovery进行卡刷时往往会出现无法识别或升级错误的提示,这是什么原因造成的?

第三方Recovery“参上”

一般来说,官方Recovery都暗藏签名验证,它只能识别并刷入官方认证的ROM,并将所有第三方ROM资源拒之门外。因此,当我们想刷入第三方ROM(比如给OPPO手机刷MIUI系统),就需要提前先刷入第三方的Recovery。

Recovery的版本是由Recovery.img镜像决定的,而我们则可通过Fastboot模式刷入第三方的Recovery.img镜像。好消息是,绝大多数热门手机都能在网上的各大论坛下载到由达人制作的一键Root或一键刷第三方Recovery的工具箱(图8)。手机与PC连接并根据工具箱界面提示操作,几乎毫无难度和危险性可言。

总之,如果你对手机自带的系统不满意,想体验第三方ROM的功能,完整的流程应该是先进入Fastboot模式刷入一个第三方recovery.img镜像,再进入Recovery模式刷入一个包含system.img镜像和boot.img镜像的zip包。

Wipe “双清”的必要性

Android手机用户一定听说过“双清”或“双Wipe”,它们到底是什么意思,在什么情况下才有必要进行上述操作呢?

简单来说,双清就是双Wipe,它是Recovery模式所提供的主要功能之一。所谓双Wipe指的是“wipe data/factory reset”(清除/data程序数据和恢复出厂设置)和“wipe cache partition”(清除缓存数据)。为了便于用户理解和操作,很多手机厂商都对官方Recovery进行了图形化和中文化处理,将双Wipe直接翻译成了中文选项(图9)。除了双清以外,很多Recovery还提供了四清甚至六清,即加入了清除dalvik cache、格式化系统分区、格式化手机内置存储卡和格式化外置存储卡四个选项,只是这些操作在绝大多数情况下并没有实际意义。

那么,在什么情况下才需要进行双清呢?答案是当你想刷入第三方ROM,那就请在刷入ROM前后分别进行一次双清;或当系统版本遇到重要更新,比如从Android 4.x升级到Android 5.x,在升级后也请进行一次双清(双清前请先备份好重要数据)。此外,当你感觉手机速度变得越来越慢,或频频出现不稳定的问题,通过双清(或进入系统设置进行恢复出厂设置)一般都能让手机恢复到最佳状态。

而导致双清的原因,是因为Android系统代码code和数据data是分开的,当手机进行多次固件更新或刷入新ROM时可能会改变code,也就是相当于改变了data默认的路径或者格式。当新系统使用不了原来的data就会崩溃或死机,这就好像我们用暴风影音播放器去打开Word文档卡死是一个道理。

当然,code和data的冲突属于小概率事件,一般的系统更新不会导致它们间出现“隔阂”,但刷入第三方ROM或系统重大版本更新则会使冲突几率大增。双清的意义就是最大限度杜绝code和data冲突的出现。

扩展阅读

固件升级到底更新了什么

无论是系统更新包,还是完整的ROM(固件)包,它们都是以zip为后缀的压缩文件。对正常使用的Android系统来说,它主要是由两个分区组成:包含Android运行框架、系统APP、第三方APP以及各种驱动配置文件的“System分区”,以及由Kernel和Rootfs构成的“Boot分区”,它们所对应的镜像分别称为system.img和boot.img。在Recovery刷机前,我们通常会将system.img和boot.img打包压缩成一个zip文件,也就是最开始提到的系统更新或完整ROM包。而Recovery刷机的过程,就是后台将zip解压并将框架、APP等更新内容上传到Android手机内存对应路径的过程。

小结

刷机是Android手机的一大特色,它可让A品牌手机体验到B、C……等品牌系统特有的功能和UI。不过,如果你对刷机情有独钟,那就请尽量挑选热门机型,因为只有手机口碑好销量大,才有达人有兴趣为其开发第三方ROM的适配包。而一些小众手机,连第三方Recovery和ROOT都搞不定。

猜你喜欢

双清固件镜像
赓续将军革命精神 谱写双清时代新章
毛泽东与北京香山双清别墅
镜像
追忆双清别墅红色印记
基于固件的远程身份认证
镜像
一种通过USB接口的可靠固件升级技术
小儿双清颗粒治疗急性呼吸道感染38例
多路手机固件升级工具设计