对安卓手机玩家来说,刷机可谓是一门必修课,而对小编来讲,刷机更是一种“娱乐方式”。相信仍有读者对刷机的中一些概念不是特别熟悉,不过不用担心,今天,IT之家就给大家讲讲安卓刷机的那些事儿。
我们的电脑每次开机自检以及硬件初始化都是通过BIOS来完成的,这也是我们的电脑加电之后所加载的第一个软件,而我们的安卓手机中并没有BIOS,这就需要Bootloader来充当BIOS的角色了。
和BIOS类似,当我们的安卓手机加电之时,最先执行的一段代码便是Bootloader,它可以完成设备基本硬件的初始化,加载系统内核,从而启动系统。
很多手机厂商往往会给自家手机的Bootloader加锁,当Bootloader被锁住时,你的手机便只认可官方的固件,如果Bootloader发现手机中的系统不是被指定的,就会阻止其启动,所以从表面上看,锁Bootloader带来的后果,便是它“不能愉快地刷机了”。
官方的固件通常都是经过重重测试的,能够可靠地运行,而很多第三方固件则可能出现各种各样的问题,其导致的后果轻则影响用户体验,重则直接让手机成砖,所以为了手机的安全和稳定,厂商会为Bootloader加锁。
市面上的很多手机都有自己的一套UI,比如三星的TouchWiz,HTC的Sense,锤子的SmartisanOS以及魅族的Flyme,定制UI不仅使得他们的产品特点更加鲜明,有些时候,定制UI更是移动互联网的“入口”,而如果用户可以自由地刷机,手机厂商便会沦为“代工厂”,丢掉了自己的特色不说,移动互联网的“入口”也会被他人抢占。
很多安卓手机为运营商的定制机,里面会内置一些无法卸载的运营商软件或服务,而如果解锁了Bootloader,这些软件和服务便可被轻易卸载,运营商的利益就会受损,有些和运营商合作紧密的手机厂商当然不希望看到此等事情的发生,所以就会锁定Bootloader。
又来一个问题,既然想刷机就要先解锁Bootloader,那我该怎么解锁呢?
手机的生产厂商不同,其解锁Bootloader的方式自然不同,一般来说,解锁Bootloader有“官解”和“强解”两种方式。“官解”,顾名思义,就是“官方解锁Bootloader”,一些开明的厂商虽然锁定了Bootloader,但是仍然会提供一些渠道来使你可以解锁Bootloader,这种渠道或是发送邮件申请解锁,或是通过论坛申请解锁,或是通过其他方式联系官方申请解锁。“强解”,当然就是强制解锁了,当官方不提供Bootloader解锁渠道时,可以利用手机当中的一些软件漏洞来强制解锁Bootloader,不过这种解锁方式并不安全,如果不到迫不得已,还是不要这么做的好。
如果你想了解解锁Bootloader的具体方式,则可以在搜索引擎当中搜索关键字:你的手机品牌+你的手机型号+解锁Bootloader。
需要注意的是,有些品牌的手机解锁Bootloader即意味着你的手机自动放弃保修。
虽然它们之间并不完全相同,不过你可以简单地把安卓手机的Recovery理解为电脑的“Windows PE”。Recovery,中文是“恢复”的意思。当你手机的操作系统被损坏,不能正常启动时,Recovery通常不会受到影响,这时你可以通过手机厂商预设的组合键进入Recovery。在Recovery中,你可以执行刷入固件、清除数据/缓存等操作。有时,手机厂商会为你的手机提供系统OTA升级,这也需通过Recovery来刷入。
每台手机在出厂时均预置厂商官方的Recovery,不过这类Recovery的限制比较多,通常你只能用它刷入官方指定的固件,而如果你想刷官方之外的ROM,第三方Recovery则是必不可少的。
第三方Recovery可以自由地刷入第三方ROM,除此之外,有些第三方Recovery还有调整分区大小、文件管理甚至双系统管理功能。
需要注意的是,有些第三方Recovery不支持手机厂商官方固件的OTA升级。
小编常用的Recovery是TWRP,你可以点击这里进入他们的官网详细了解。
Fastboot和Recovery有一些相似之处,不过它比Recovery更加接近底层,有着比Recovery更高的权限。通过Fastboot来刷机也是一种可行的方案,刚刚我们提到的第三方Recovery便是通过Fastboot刷入的。
首先,你需要准备好第三方Recovery,这通常是一个img格式的文件;
通过手机厂商预设的组合键,你可以进入Fastboot模式,不同的手机厂商,其预设的组合键也不尽相同,想了解更多信息,你可以在搜索引擎搜索你的手机厂商+手机型号+如何进入Fastboot。
在一些加了Bootloader锁的手机当中,你通常不能直接刷入第三方ROM,然而没关系,“曲线救国”的路子还是有的。既然可以刷入官方的固件,那我们就先刷个官方的认可的固件进去,然后再通过卡刷的方式刷入自定义的升级包,以实现自定义功能或自定义UI。在这种情况下,先行刷入的固件通常是高度精简的“纯净版”官方固件,这种包就被称为底包。
现在的手机厂商已经不再严格地锁Bootloader了,通常会提供解锁Bootloader的渠道,所以一般的刷机已经不需要先行刷入底包了,不过如今有个别的ROM或系统在刷入之前仍需先刷入底包。比如小米4在刷SailfishOS的时候,就需要先刷入 CyanogenMod 12作为底包。
有些国内的安卓定制系统开发商或开发者经常会陷入自己的产品是“UI”还是“OS”的争论当中,为了避免纠纷,或者出于谦虚的考虑,他们通常会称自己的产品为“ROM。
所谓ROM,全称为Read Only Memory,翻译成中文就是“只读存储”,类似于电脑中的硬盘。在手机刷机时,我们会将只读存储镜像(Read Only Memory Image)写入只读存储,这个只读存储镜像就是我们所说的“ROM包”。需要注意的是,虽然ROM被称作“只读存储”不过手机中的ROM芯片从硬件层面上来讲并不是只读的,所谓的只读,只是软件对这块分区进行了权限的设置。因为针对手机的安卓系统通常使用只读存储镜像(Read Only Memory Image)的方式发布,虽然严格意义上这种说法并不准确,不过习惯上,我们将ROM包指代为系统刷机包。
内核,顾名思义,这是我们的手机种操作系统的核心,它提供操作系统最基本的功能。我们手机当中的存储、内存、设备驱动、文件系统、网络通信,均由内核负责管理。简单地说,它是操作系统与硬件沟通的“桥梁”。
有些人可能听说过一种说法,叫“刷内核”,那么问题来了,为什么要刷内核呢?
有时我们只为手机刷入ROM还是不够的,因为这些ROM当中的内核可能并不具备某些功能。有时我们需要实现CPU超频或实现双击唤醒,这就需要刷入具有相应功能的内核,以使操作系统和手机硬件顺利地沟通。有时如果你的手机出现了发热或者耗电的情况,那么刷入一个具有更加良好的电源管理能力的内核也是很好的办法。需要注意的是,内核要和自己手机的ROM相对应,如果刷了不合适的内核,则可能造成手机无法正常启动。
所谓基带,就是手机主板上的一块负责无线信号的解调、解扰、解扩和解码工作的芯片或电路,相当于我们在通过宽带上网时用到的“调制解调器”,我们在手机上能够打电话、发短信、上网,这都要多亏基带的存在。
那么问题来了,有时我们会听到“刷基带”这种说法,明明基带是硬件,那“刷基带”是怎么回事?
实际上,基带作为硬件,必然要通过软件的方式与操作系统进行沟通。只有软硬件相结合,基带才能正常工作。所谓的刷基带,就是通过软件来微调参数,以使基带硬件可以更好地和操作系统配合工作。
比如我们买了一台非国行的手机,它可能会出现“水土不服”的症状,我国的网络情况可能和国外并不相同,那么我们在使用非国行的手机时就可能会遇到不能正常打电话、不能正常发短信或者不能正常上网的问题。在这时,我们就可以刷入能使非国行的手机基带硬件与我国的网络相适应的基带软件,以解决该手机与我国网络“水土不服”的问题。
所谓的刷机,就是通过一些手段来增加、删除或者替换手机中的系统文件,这些文件可以是开机动画、可以是谷歌服务、可以是内核、可以是基带,当然了,也可以是整个系统。
当然可以。比如你想删除手机中通过一般的手段不能直接删除的谷歌服务套件,这就需要要刷入谷歌服务套件的“卸载包”。所谓的“卸载包”是一段脚本,这段脚本可以在你刷机的过程中运行,以删除谷歌服务套件。
早期的安卓系统比较简单粗糙,功能并不完善,用户界面也不好看,这时,就有一些开发者团队或开发者个人在原生安卓的基础之上进行修改,发行第三方刷机包,以实现对原生安卓功能的完善,或实现对UI的定制。那个时候,我们刷机的原因是我们用到的安卓太简单。
其实现在很多人刷机的目的和当年已经完全不同,当年,他们刷机是为了“做加法”,而现在,他们刷机是为了“做减法“。
如今有很多手机厂商预装的安卓系统被过度定制,它们或不符合AndroidMaterial Design的设计标准,或过于臃肿,运行缓慢,越来越多的人选择刷机,是因为他们用到的定制版安卓太复杂。所以网络上会有“官方精简版”ROM的出现,原生安卓也收到越来越多人的追捧。
另外,当有些手机厂商不再为旗下某款手机提供安卓大版本的升级时(比如不再提供Android 5.1向Android 7.1的升级),有些第三方开发者便会挑起这个重担,为其适配最新版的安卓系统。很多人为了体验到新版安卓,便会为自己的手机刷入这些第三方开发者制作的刷机包。
还有些人刷机的目的并不是要换系统,比如由于一些特殊的原因,大多数的国行手机并没有预装谷歌服务套件,而我们想用上谷歌服务套件,可以通过刷机的方式刷入“GApps包”。
一台手机能不能刷机是由多方面的因素决定的,这需要手机厂商和开发商/开发者的共同努力。
如果手机厂商严格锁死Bootloader,不管怎样都不肯提供Bootloader的解锁渠道,那自然不会有太多的第三方ROM可刷。
如果一台手机,其Bootloader没有上锁,但其过于冷门,销量可怜,用户太少,第三方开发商/开发者没有动力为其开发刷机包,自然也不会有太多的第三方ROM可刷。
小编经常关注的安卓ROM有LineageOS、Mokee、SmartisanOS、MIUI和Flyme,如果你想了解他们的ROM是否针对你的手机做了适配,则可以通过以下链接来访问他们的官方网站。
恢复原厂固件一般使用这种方式。线刷,顾名思义,就是通过数据线把手机连接到电脑,再在电脑上进行刷机操作。在进行线刷时,通常需要将手机重启到Fastboot模式,再通过fastboot flash命令来刷入img格式的ROM镜像。
需要注意的是,有些手机厂商提供的原厂固件恢复镜像可能不是img格式的,刷入方法也可能不是通过fastboot flash命令,甚至有些手机厂商有专门的适用于PC的原厂固件恢复工具,具体的线刷方法还要以官方的说明为准。
原厂固件的OTA升级或者通过第三方Recovery刷第三方ROM通常采用这种方式。所谓的卡刷,就是通过“存储卡”来刷机。早期的安卓手机的内部存储空间相对较小,把刷机包放置于存储卡中刷机是当时比较通行的一种做法,随着手机内部存储空间越来越大,越来越多的手机不再提供存储卡插槽,此时,就只能把刷机包放置于手机的内部存储空间来刷机了。不过由于历史的原因,“卡刷”的说法一直流传至今,把刷机包放置于手机的内部存储空间来刷机也可以称作“卡刷”。在进行卡刷时,通常需要将zip格式的刷机包放置于手机的内部存储或者存储卡当中,再通过原厂Recovery或第三方Recovery将其刷入。
一些Recovery还提供了旁加载功能。如果你的手机不能插存储卡,也无法将手机以媒体存储模式连接到电脑,刷机包传不进来,而电脑可以识别你手机的adb连接,这时就可以借助旁加载来刷机了。
首先,你需要在Recovery当中开启“从adb sideload读取刷机包”的功能,再在电脑中打开adb命令行,通过命令:
严格来讲,旁加载仍可算作卡刷,它的原理是通过sideload命令将刷机包推送到你的手机里。
通常来讲,刷过机后第一次开机需要较长的时间,这段时间你只需要耐心等待,如果一切顺利,它会成功开机的。如果等待时间超过15分钟,这就可能不大正常了,你需要检查以下事项:
如果你是卡刷,你需要在刷机之前执行“双清(清除data以及cache)”操作,如果在刷机之前没有双清,那么在刷机之后你可能会遇到手机无法启动的问题。
请确认你刷了正确的刷机包,如果你刷入的刷机包没有针对你的手机进行适配,那么在刷机之后你可能会遇到手机无法启动的问题。
请确认刷机包刷入完整,如果你在刷机的过程中断开手机与电脑的连接(卡刷或旁加载)或者切断手机的电源(线刷),那么在刷机之后你可能会遇到手机无法启动的问题。
如果你在卡刷之前执行了双清操作,没刷错包,刷入的包也是完整的,但是刷后仍然无法开机,你则需要再次尝试刷入该包。
如果你在卡刷的过程中遇到了导致刷机进程停止的错误(比如Error7),请考虑换个Recovery。
如果你尝试了很多不同的Recovery之后仍会在卡刷的过程中遇到导致刷机进程停止的错误,请考虑换个刷机包。
如果刷入新ROM后可以正常开机,但是在使用过程中遇到耗电量巨大、手机无信号的问题,请考虑单独刷入内核或基带。
如果你试遍了所有的Recovery和刷机包,手机在刷机后仍然无法开机或者在开机之后仍有个别功能异常,请通过fastboot命令行或官方提供的刷机工具来线刷。
如果你的手机通过卡刷和线刷均无法恢复正常使用,请联系售后进行维修,或者考虑换个手机。