注:以下内容仅面向小白及一般读者,作者仅为爱好者发言不具备权威性,若有错误(估计还不少,流汗滑稽)欢迎大家指出;且刷机有风险,作者不对刷机造成的任何潜在损失负责!
注2:本文适用于Only-A架构
不像我上一篇文章开头废话那么多了,我估计搜索来的多少都是带着目的性的吧。但在切入正题上手之前,还是先来一段QA:
(再强调一下,作者仅从自身理解出发,发言均不具备权威性!)
刷机是什么? 从安卓架构上来说,非一般用户操作,对Linux内核、安卓系统底层、应用框架层进行修改都是刷机。从用户权限上来说,进行以上操作往往是设备厂商不允许一般用户进行的操作,或需要签署一定协议、了解一定危害后才能够进行的操作是刷机。从安卓文件系统上来说,修改挂载的sdcard或emulated, usb-otg等类似的(模拟)外置分区(均挂载于data分区下)以外的分区均属于刷机。 人话:刷官方包或者必须解了BL锁/获得ROOT权限才能干的事都属于刷机。
为什么要刷机? 刷机的目的性有强有弱。一般我们说的刷机是指更换安卓手机运行的ROM——ROM是在AOSP之上添加修改功能与特性,形成一套独有的系统解决方案;但不同的ROM风格和易用性也不同,安卓开放的特性给了我们去尝试不同选择的机会。有些人想让手机运行截然不同的ROM,比如在小米手机上运行魅族的flyme系统体验友商的感觉,或是运行类似原生安卓体验的Pixel Experience来尝试纯粹的Material Design。或者只是运行官改(官方修改版)系统去掉冗杂的组件来减轻手机的负担或降级手机的官方系统,因为厂商往往是不给用户升级系统的后悔药的。除了更换系统这样大动干戈的操作,也有如刷入音效组件或GMS框架,修改系统文件(如破解卡米)这样的刷机操作。这样的操作相较于上面对系统的修改幅度小得多,但由于操作需要涉及修改(模拟)外置分区以外的分区,如System分区,无法通过像安装应用这样的操作顺利安装上,所以该操作也属于刷机。 当然,刷机也是一种乐趣。俗称刷着玩。
我需要刷机吗?什么是“养老”? 我个人建议是,对于小白来说,除非你的需求必须刷机才能解决,才去考虑刷机。 如果要刷,用备用机刷,而不是主力机,除非你很清楚刷之后的成果可以当做主力机来使用。 “养老”就是刷最后一次,将手机软件环境打磨地得近乎完美,之后就不必再折腾了。 (开玩笑,起了头还停得下来?) 我主力机换苹果了,没得刷(我知道越狱我指的是像安卓这么刷),愿你刷机半生回来还是iOS。
我能够刷机吗? 刷机需要对计算机有一定知识、有一定耐心、能够自主解决问题且对潜在损失做好准备。具体这些个程度我也说不好,你可以继续往下看。
可以使用第三方刷机工具/平台进行刷机吗? 这里的第三方平台一般指的是某之家,某兔一类的。emm……我的建议是如果真的想体验刷机的乐趣,还是建议自己鼓捣一下比较好。况且下面提供的文件、方法、工具大部分是厂商官方提供或是开源的,上面第三方来源往往缺乏透明度,数据安全性、整洁性不足。当然我不会极力反对使用如上工具。
刷机需要做什么准备? 有耐心,平常心;戒骄戒躁,看好操作说明。 对数据甚至硬件损坏做好准备。 善用搜索(百度、酷安、B站等,有能力谷鸽、XDA、Y站等)。 友善提问,描述好情形和问题。 对自己的一切操作负责。 尊重他人的劳动成果。
什么是BL锁(BootLoader锁)? BootLoader即为“引导程序”或“引导加载程序”。手机启动的时候基带执行初始化,然后引导系统内核,直到系统启动。BL锁一方面防止了手机在fastboot模式或download模式下未经(厂商)允许对手机系统文件进行修改,另一方面阻止未经(厂商)允许的镜像进行引导和启动(通过签名?)。
我的机能够刷机吗? 鉴于绝大部分刷机行为涉及修改系统文件(使原始boot镜像或recovery镜像签名丢失),安卓手机/设备必须解除BL锁(BootLoader锁)才能够刷机。目前我所了解到的,国产手机厂商只有小米、一加官方支持官方BL解锁,其他厂商的部分手机可以通过第三方解锁,高通SoC可通过9008强制绕过(仅限最后手段),联发科SoC可通过如SP Tool解锁(仅限最后手段)。
什么是Boot镜像/分区? 安卓设备的系统引导分区。
什么是Recovery镜像/分区(缩写为rec)? 安卓设备的急救引导镜像,用于在系统发生故障时对系统进行急救。其是一个完备的小型的安卓系统,可以类比于Windows PE,启动后可以在手机端对安卓架构进行操作。我们之后介绍的通过卡刷刷机就是通过这个模式进行刷机的。 请注意部分A/B架构,尤其是出厂安卓11架构的手机,其Recovery是融合在Boot分区中的。
什么是System镜像/分区(猜测)? 安卓系统ROM和出厂设定所在的主要镜像。只要是涉及到修改系统文件,这个镜像十有八九都会被修改。但如果日常操作不涉及修改系统文件,那这个镜像也基本上不会被改动。emmm……有点啰嗦,这一点在之后的备份与恢复中会特别提到。
什么是Vendor镜像/分区(猜测)? 顾名思义,厂家分区。大体上可以理解为厂家出厂时给手机设定的一些特定参数、驱动、出厂应用等。系统的一些设定也会在这个镜像中,比如音量大小、亮度大小、闹钟等。所以每次开关机这个镜像都会改变。
什么是Data镜像/分区? Data大体上包含两部分:用户资料(各种第三方应用与其数据、升级的系统应用与其数据、系统数据(如账号数据,系统设置等))和内置存储空间。内置存储空间又被挂载为userdata分区(data/media?)。这一分区还被进一步挂载到如/sdcard/, /mnt/emulated/0/这样的路径下。
什么是Cache分区,Dalvik缓存? 都是临时文件。
什么是EFS、Modem、persist、dtbo、firmware镜像/分区? 跟手机的基带、无线射频、各种传感器、基础驱动有关。 除非线刷与救砖, 千万不要动!!! 千万不要动!!! 千万不要动!!! 详细原因和救砖操作在后续的备份与恢复中。
什么是双清/三清/四清/五清? 双清:恢复出厂设置(清除内置存储以外的Data分区,Cache分区和Dalvik缓存) 三清:格式化整个Data分区,Cache分区和Dalvik缓存 四清(除非你知道你在做什么):格式化System、Data和Cache分区,清除Dalvik缓存 五清(除非你知道你在做什么):格式化System、Vendor、Data和Cache分区,清除Dalvik缓存
什么是线刷(Fastboot Flash)? 通过USB线进行刷机,常用于通过fastboot模式或download模式进行刷机的情形。通常是通过上游机在fastboot环境中对下游机进行的一系列分区和刷入一系列镜像的操作,一般由脚本执行,线刷刷机包一般由厂商或售后,偏源头的提供商提供。线刷也可以用来拯救一般情况下非硬件问题的“黑砖”,或用来系统降级。
什么是卡刷(Recovery Install)? 通过内置存储空间,储存卡或USB-OTG提供的刷机包,经由官方或第三方在Recovery模式下对系统和用户数据进行修补。在此模式下直接对某个分区刷入镜像也是卡刷。卡刷包常常是对Boot、System、Data、Vendor分区的替换或修补,因此这些包常常比同时期的线刷包要小,也因为他们是“补丁程序”而不是“完整安装”所以卡刷包救“黑砖”的能力不像线刷包那么猛。当使用线刷包救手机的时候常常你大概清楚自己做了什么导致了系统出现重大问题,比如卡米。
什么是底包?为什么卡刷包会有底包要求? “底包”指的就是某个特定作为最低(或特定)要求的已安装安卓系统版本,或是某个作为最低(或特定)要求的已安装官方ROM版本。上面提到,卡刷是对系统和用户数据进行修补,就像打补丁一样,得先有衣服才能打补丁吧?这个“底包”就是作为底的衣服。不同的ROM间往往有许多共同的基础,如库文件、系统框架等,卡刷包发布者往往不需要将整个系统都打包进来,只打包需要修补的文件和操作的脚本就行了。因此,大几G的ROM卡刷包是卡刷包,几百兆的卡刷包也是卡刷包,完全取决于要修补的内容大小。而发包者可能是在某个/类底包上作出的修改,所以在刷卡刷包前需要先线刷/卡刷中转包满足该底包要求。
什么是ADB? 安卓调试桥。偷个懒……下载链接也在里面哦。
https://developer.android.com/studio/command-line/adb
什么是TWRP? Team Win Recovery Project,一个面向大部分安卓机的开源第三方Recovery恢复镜像。由于Recovery引导启动的特殊地位,它可以非常方便地作为对系统进行急救或修改的一种方式。TWRP可以说是目前用得最广泛的一种第三方Recovery,它的存在使得无数兼容的卡刷包可以大放异彩。 请注意TWRP也是对机型专用的,不同机型不能通刷!
什么是加密(用户分区)?什么是解密? 安卓5之后,安卓系统可以对分区进行全盘加密。被加密的分区将需要密码/口令进行解密才能被正确读取,否则只是一片乱码,这保证了非用户授权下数据的安全性。一些ROM会对用户(Data)分区进行全盘加密,通常情况下密码是用户设定的PIN码(屏幕锁解锁码)。当TWRP想要读取加密的Data分区时,它需要这个密码才能尝试解密。如果你的TWRP无法解密,尝试更换更新版本的TWRP。
什么是Root?什么是su? Root使得用户可以获取安卓的超级用户权限(Super user, su),帮助用户执行需要系统权限的动作。
什么是Magisk? Magisk是一个开源的工具(要求安卓5.0以上版本),通过修补boot镜像,使用户可以进行Root操作、修改SE-Linux模式、AVB2.0/dm- verity加密移除和执行脚本等功能。Magisk同时提供了模块系统,使得用户可以安装大量第三方修改模块。
什么是SuperSU? SuperSU算是Magisk的前辈,是最早的获取安卓超级用户权限并允许用户通过UI界面进行管理的应用。但SuperSU仅支持安卓5.0(包含)以前的安卓系统且不再更新。现在一般推荐使用Magisk。
什么是机型代号(codename)? 偷个懒,其他品牌类似。
miuiver.com/xiaomi-device-codename/
什么是卡米? “卡在系统引导时的白色MI Logo处,无法进入系统桌面。”这点是由于MIUI在6之后引入了系统软件环境检测功能, 如果处于名单中的系统应用不存在(停用也有可能触发),就无法引导进入桌面。MIUI 7~9的卡米解决方法将在将来的小米2S体验中讲到。
什么是(隐藏)ID锁? (隐藏)ID锁指的是本机未退出的小米账户对本机开启了“查找手机”功能。当该功能开启后,每次MIUI系统恢复出厂或是线刷MIUI ROM都会先要求用户输入账户密码解锁,否则无法进一步使用手机。BL锁与ID锁相互独立,锁上ID锁的小米机器若BL锁解开仍旧可以刷机,ID锁仅对MIUI有影响。如果你是二手平台拿到的手机,到手是第三方系统,则一定要问清楚是否有隐藏ID;若有隐藏ID且卖家无法提供解锁密码,则要当心卖家手机的来历。
2021年使用小米6是一种什么感受(误)
机型前瞻: 小米6(示例的这台)


关于我手上的这台小米6,在将来的ROM体验中会再详细说道。
我们的目标是将小米6刷入最新的类原生系统Dot OS 5.2 (Droid on Time OS),Root并刷入Dolby Atoms音效和GMS框架。

我的习惯是刷机前先建立一个文件目录表明我要做的动作,并归档(存储)我在每一步需要的文件。因为刷机是个复杂的活(熟悉了之后就熟能生巧了),提前做一点准备总是好的。推荐在开始着手刷机前,先看一遍下面的流程,将每一步需要准备的文件先下载下来。
0.1 备份个人数据 如果是崭新的备用机就不用备份了。如果是使用过的,推荐先把手机中的重要资料备份一下,因为刷机过程中要多次将手机存储完全抹除。由于不是刷机中重点备份的数据,这里就不提供具体备份和恢复方法了,如果有时间我会出一篇专门数据备份与恢复的文章,咕咕咕。
0.2 解锁BL锁 以这台小米6为例,先进入手机设置中的“全部参数”,连续点击“MIUI 版本”5次,进入开发者模式。在“更多设置”中的“开发者选项”里,进入“设备解锁状态”,根据里面的说明进行帐号绑定并解锁。(在此过程中可能需要插入SIM卡绑定小米账号达到168小时,详情请咨询客服,PC解锁工具地址:申请解锁小米手机)解锁完成后,该页面将显示如下图:

老版本的MIUI,如MIUI V5是默认不上锁的。
以下链接中描述了小米系手机详尽的解锁BL锁流程:
网页链接;mid=2247498610&idx=1&sn=627acf11f21b0f1e9662fe342851fbcb
0.3 取消锁屏密码、退出所有账户 在确认已经解锁BL锁后,取消掉手机的锁屏密码,退出小米账户、谷鸽账户,取消查找手机。这一步是为了防止账户锁锁上新装ROM的使用。
0.4 常备ADB工具 在上面的QA中“什么是ADB?”中的链接里,点击下图的链接,



下载对应平台的ADB工具。在本例中,我选择Windows进行示范。将下载到的压缩包解压到一个位置,虽然ADB工具可以接受带有中文字符的路径,但我还是推荐解压到根目录下的某个目录中,如E:\adb。一些教程可能要求配置环境变量,这里我们就省去了。
不同的厂家有不同的线刷方式。小米Xiaomi系(小米Mi、红米Redmi、POCO)的线刷方式统一是小米的MiFlash。我们首先到小米官方的MIUI线刷教程页:
www.miui.com/shuaji-393.html
在该页面中,找到对应机型,然后进入该机型的页面。请注意,一些型号类似的小米手机,通刷或不同刷是视情况而定的;如红米Note11 Pro/红米Note11 Pro+可以通刷;红米K30S/小米10T/小米10T Pro可以通刷,而小米10T Lite不与其上通刷;POCO F1和小米8在一定程度上可以通刷(需要去掉机型验证)。在本例中,我们可以点击“小米手机6最新 稳定版 线刷Fastboot完整包点击下载”进行下载。
“我想选择老版本/开发版线刷包,官方只提供了稳定最新版线刷包怎么办?”
我们可以借助一些第三方站点来寻找这些包。如:
miuiver.com
在这个站点中,在搜索框中键入需要查找的机型,如“6”,然后在下面的“小米6”那行选择对应的版本,如开发版9.9.3,进行下载。
“这个站点要钱的耶”
你可以选择支付几块钱帮助该站点建设,或者动手去搜索引擎和各大论坛找找免费的包。嘛天下无免费的午餐,要么花钱省时,要么省钱费时。不过确实有免费的站提供类似服务:
xiaomifirmwareupdater.com
不过这个站点是全英文的,你知道为啥我在上面要标注那么多英文了吧(变态滑稽)。在首页下方,按如下操作:

在本例中,我们选择Mi 6 (sagit),ROM,Latest 在跳转的页面中,会出现一个表格,提供给我们该网站提供的最新包。其中,Device栏中的China代表国内官方包,Global代表国际官方包,India代表印度官方包等。Branch栏中Weekly代表开发版,Stable代表稳定版。Type代表包的种类,Recovery为卡刷包,Fastboot为线刷包,请注意该网站的Fastboot后面的链接中可能也包含卡刷包,但Recovery的链接不含线刷包。

小米在2019年8月后,不再推出开发版线刷包。这意味着如果我们想把小米6刷到官方的最后一个开发版20.6.18,我们是无法通过线刷一步到位的,需要先刷最后一个开发版线刷包9.9.3,再卡刷到20.6.18。
在本例中,我们点击9.9.3那行后面的download,进入下载页。认准类型Type为Fastboot,文件名Package Name是.tgz结尾的,这就是线刷包了。然后,点击Download后面的Full ROM按钮进行下载。

其他站点推荐
roms.miuier.com
xiaomirom.com
又免费又全中文!别打,我也是后来才发现的……
我们刚完成第一步,下载线刷包。
其次:刷入线刷包。偷个懒,MIUI官方已经给出了详尽的刷机方法,还是上面下载官方最新稳定版线刷包的页面: 通过线刷升级
注:MiFlash有多个版本,一般官方提供的2018-5-28版本是最稳定的;如果这个版本的MiFlash出现问题,你可以尝试新版如2020-3-14版本;以下链接提供了相当全面的MiFlash错误解决方法:
web.vip.miui.com/page/info/mio/mio/detail?postId=4935188
当手机自动重启后,显示系统正在加载,就可以说初步线刷成功了。

如果屏幕亮度突然变化,那就向成功更进一步了,说明系统已经在加载UI了。 加载成功,进入到开箱体验,至此线刷成功。

顺带一提,到最后一步,正式使用之前,先不要设置密码与登录账号。
像上面所说,线刷实际上是上游机在fastboot环境中由脚本对下游机进行的一系列分区和刷入镜像的操作。无论是降级、救砖还是单纯重刷系统,我们线刷都是为了完整地重建安卓系统架构。在之后的卡刷过程中,我们最多只对Boot、System、Data、Vendor、Recovery分区进行替换或修补,所以大体上只备份这几个分区就可以。
第一步 请出我们刷机的大杀器——TWRP
进入官网的设备选择页,先选择厂商。在本例中,我们选择Xiaomi。
stwrp.me/Devices/
在接下来的小米设备页中,选择Xiaomi Mi 6 (sagit)。 之后,选择一个下载链接进行下载。

将下载的.img镜像文件,归档好并复制一份到我们之前准备的adb文件夹内。在本例中,我们将这个镜像文件重命名为twrp.img,方便之后使用。
第二步 引导手机启动TWRP镜像
将手机重启到fastboot模式。小米6为关机后,按住音量下键和电源键。注:尽量保持手机电量在25%以上。
2. 在文件资源管理器中打开adb文件夹,按住Shift键并点击右键,选择“在此处打开命令窗口(W)”或“在 Windows 终端 中打开”。
3. 你将看到命令行窗口弹出。将此时的手机连接到电脑上,由于我们已经线刷成功,所以相应驱动应该也安装完毕了。在命令行中输入
fastboot boot twrp.img
回车执行命令。命令执行成功会显示如下图,手机自动重启。

注意:我们现在仅仅是引导手机通过这个镜像启动,而没有刷入任何东西。也就是说上面的命令不会修改手机中除缓存外的任何文件。
4. TWRP的使用
4.1 首屏
官网下载的TWRP首屏一般是英文。我们打开TWRP后,先点击Select Language,在本例中我们选择上面的Chinese (Simplified),再点击OK确认。然后,界面就是中文的了。

对于系统分区是否保持只读:如果只是备份或是刷各种刷机包,保持只读;如果要手动向系统分区写入数据,允许修改;如果你看不懂我在说啥,保持只读。
4.2 认识TWRP

TWRP因版本和修改版不同,界面会有些许变化但基本大同小异。
安装:安装刷机包或刷入镜像
清除:清除手机存储中的部分内容或抹除某些分区,以及高级分区操作
备份:备份分区
恢复:从之前的备份恢复到分区。(注意:跨TWRP版本恢复不一定能成功)
挂载:挂载分区与usb-otg,MTP模式的开关
设置:TWRP设置
高级:TWRP的一些其他功能
重启:手机高级重启
我们可以先进入设置对TWRP进行一些简单的设置,如设置时区、设置12/24小时制、反转底部虚拟键、调整屏幕亮度、调整自动锁屏超时、振动幅度,当然还有语言设置。请注意:这些设置存储在手机内置存储(虚拟SD卡)的/TWRP/.twrps文件中,意味着每次该文件夹被删除或是手机内置存储被清空都会导致设置恢复默认(也会回到英文)。
注:第三方Recovery除了TWRP外,还有橙狐OrangeFox,在此就不展开了。
第三步 备份原机重要镜像
像上面说的,我们只对某几个重要分区进行备份,而不是所有分区。这些文件是我们刷了官方线刷镜像后的纯净系统,所以在之后恢复时,这些备份至少可以帮助我们恢复到一个能用的系统里(大概吧)。
深夜了,懒了,看这个链接进行备份就行。
jingyan.baidu.com/article/9f63fb91900ff8c8410f0e63.html
在此说一说我备份的经验:在备份后的文件中: efs3 efsc recovery每次备份都不变,除非线刷 data efs1 efs2 firmware persist每次备份都改变,无论刷不刷 如果对System分区中的文件进行了修改,或是对Boot分区进行了修改,system或boot才改变,否则不变。常常发生在刷卡刷包后或刷入Magisk后。
且备份不是恢复了之后手机就一定能用的!亲身体验,以下备份文件被恢复后会使手机出BUG或卡米,卡屏等: efs1 efs2 persist vendor 所以你可以用TWRP备份,但是不能用TWRP恢复它们。呃……自己决定备不备份吧。 “我不小心恢复了,现在手机寄了,怎么办?” 从线刷重头来吧。
所以,我推荐的备份方案:
首次: Boot,Recovery,System(镜像),Data(不包含存储)
日常维护: Data(不包含存储)
TWRP无法增量备份。因此每次重新备份Data的时候,你可以选择把老的备份删除。

之后我会单独出一篇安卓备份与恢复教程,届时会有更详尽的介绍,咕咕咕。
我们在2.中已经使手机启动了TWRP且进行了重要分区的备份,但此时的TWRP还没有写入到手机的系统架构中。要这么做,我们需要将手机重新启动到fastboot模式。
继续使用adb,在命令行中输入:
fastboot flash recovery twrp.img
fastboot reboot recovery
将TWRP镜像刷入recovery分区并启动到recovery模式中。命令执行成功会显示如下图,并自动重启到TWRP中。

如果手机并未重启到TWRP中,尝试将第二条命令更换为
fastboot boot twrp.img
也可进入到TWRP中。
注意:非Only-A架构手机不要使用!(一般是出厂预装安卓11的手机)
由于较新版本的MIUI开启了Recovery签名认证,无官方签名的Recovery在MIUI系统重启后会被恢复到官方Recovery。在一些机型定制的专用TWRP中,点选高级,弹出的高级选项中有签名Recovery的选项。签名后,重启MIUI就不会再被刷掉Recovery了。但由于我们使用的是官方TWRP,没有这个选项。不过既然我们要刷第三方ROM,而第三方ROM往往是不验证Recovery签名的,故我们直接进行下一步。
第一步 查找并下载卡刷包
我们首先需要下载到第三方ROM的卡刷包。获取ROM卡刷包的途径太多了,第三方官网、第三方社区、各种论坛、维护者博客、玩机群等等等等。我们按照一般思路(至少是我的一般思路,流汗滑稽),先到第三方ROM的官网寻找卡刷包。
由于本文章并不是一个挑选对比ROM的文章,所以我们略过说明为什么选择DotOS来示范,直接进入DotOS官网的下载页面。
www.droidontime.com/devices
我们在左侧找到Xiaomi 6 (sagit)。 并没有找到小米6,看来DotOS官方并未适配小米6。好吧,感谢大家看到这里,本文结束。
……并没有,我们还有广大的爱好者给适配啊! 在互联网上冲了一会浪之后,我找到了这么一个网站:
www.deny2311.my.id/
简直是小米6类原生大本营! 点击右方“Dot OS for Mi 6 (Sagit)”,我们可以看到“dotOS R v5.2 | Unofficial Build date: 10-10-2021”,意味着这是适配小米6的dotOS 5.2,非官方版本,2021年10月10日编译的,和官网保持一致。下方Download处即是下载链接。Gapps链接代表其内置了GMS框架,Vanilla则是不带GMS框架的版本。emm……如果你对GMS框架有需求,可以下载Gapps版本,省去后面的一主要环节;不过我还是建议自主安装GMS框架,在此处选择Vanilla版本。
我们点击Vanilla进入该卡刷包的下载链接。稍等片刻,将下载好的卡刷包归档。
第二步 刷入卡刷包
重要:底包要求
在QA中我提到了底包要求。在下载卡刷包之前,最好先查看卡刷包的安装描述。这一点XDA论坛的ROM板块做的非常好,发布者一般都会将安装步骤写出来,并列出底包要求。有些底包要求是特定的某个官方系统版本,有时只要是高于或等于某个安卓版本即可。如果底包不兼容,则卡刷包刷入的ROM后在后面的使用中出现各种问题,甚至无法启动、无法刷入。所以在下载卡刷包时务必留意底包要求。
我们示例用的卡刷包,作者没有给出底包要求…… 这种情况下,就默认按官方能够提供的最新安卓版本当做底包。比如小米6最后的几个开发版都是安卓9,所以也就无所谓是MIUI 9.9.3还是MIUI 20.6.18,直接刷任意一个安卓9的官方包做底包就行。
如果出问题了就试别的官方包呗……
要刷入卡刷包,将手机重启到Recovery模式。在这之前,最好先进行一次双清。如果刷入之后出现问题或包的描述中有要求进行三清,则进行三清。方法:
双清:在TWRP中选择“清除”——移动滑块 三清:在TWRP中选择“清除”——格式化 Data 分区——输入yes——确认。之后重启手机重新进入Recovery。
TWRP默认打开MTP,如果没有,进入“挂载”中点选“启用MTP模式”。将手机通过USB连接到电脑(或其他上游设备),本例中为Windows 10 PC。可以在文件资源管理器中看到一个叫“MI 6”的设备。

双击“MI 6”,进入内置存储,将刷机包放进去(路径无所谓只要能找到,路径中尽量不要有中文)。
回到手机TWRP,选择“安装”,一般TWRP会自动定位到内部存储空间的根目录。如果没有,点击左下角“存储位置”选择“内置存储”。定位到刚刚放入的卡刷包,点击之,出现如下界面:

注:你也可以通过USB-OTG安装,过程大同小异,注意挂载即可。
其中三个复选框保持默认即可。安装完成后重启最好不要勾选,防止忽略掉无人值守刷机的过程中出现的报错或警告。滑动滑块,进行刷机。刷机完成手机会震动提示,日志页面显示刷机完成。可以清理一下缓存。

确认没有异状后,重启手机。

Dot OS徽标显示,成功进入系统。 (这个ROM没有开箱体验,有点可惜)

我们之后通过Magisk(也就是俗称的面具)来管理手机的ROOT权限等。
首先下载Magisk应用安装包并归档:
github.com/topjohnwu/Magisk
之后将Magisk应用安装到手机。

在第一个卡片“Magisk”中,如果显示“当前”为“无法获取”,意味着我们的系统并未安装Magisk(这里的用词就不是“Magisk应用”了)。要安装Magisk,首先我们需要获取到当前系统的boot镜像。
注:此时的“A/B”为否代表手机安卓系统架构为Only-A,而非A/B架构。
第一步 获取Boot镜像
一般来说,卡刷ROM包中会包含boot镜像。使用压缩工具打开你刚刷入的卡刷包,寻找“boot.img”。

这就是我们要寻找的boot镜像。将这个boot.img提取出来,放到手机的内置存储空间中。
第二步 修补Boot镜像
回到Magisk应用中,点击“Magisk”卡片中的“安装”,选择“选择并修补一个文件”,在打开的文件管理器中选择刚传入的boot.img。然后,点击“开始”。稍等片刻,当日志最后显示“All done!”时,boot镜像就修补完成了。

查看手机的内部存储空间中的“下载”目录(/Download目录),会发现一个magisk_patched-xxx.img镜像文件。这就是我们修补完成的boot镜像。
第三步 刷入boot镜像,完成安装Magisk
方法一:TWRP刷入
将手机重启到Recovery模式,选择“安装”,导航到/Download目录下,点击右下角的“刷入镜像”按钮,然后选择我们刚才修补的boot镜像。在“选择要刷入镜像的分区:”中,选择Boot,然后滑动滑块刷入。(在这之前,你可以先备份一下boot分区)

重启手机。
方法二:Fastboot刷入
像二、3. 刷入第三方Recovery中那样,通过ADB中的fastboot工具刷入。先将修改后的镜像文件magisk_patched-xxx.img提取到adb目录下,将手机重启至fastboot模式,执行命令:
fastboot flash boot magisk_patched-xxx.img
成功后重启手机。
重启手机后,再次打开Magisk应用,卡片“Magisk”中的“当前”为刷入的Magisk版本号,刷入Magisk成功。你现在就可以使用功能强大的Magisk了。
6.1 GMS框架
一些涉外企业要求员工手机上需要具备GMS框架,许多人无奈只能选择昂贵的三星手机,要是能自行给任意安卓手机安装GMS框架就好了。我们无法自行安装GMS框架的原因是,GMS框架要求之一是其必须为系统应用,也意味着其应用执行文件需在system分区下而不是data分区下。而通过卡刷,我们几乎可以使任何安卓设备刷入GMS框架,充分利用手上的旧机与非三星手机。
Open Gapps网站提供了开源的第三方GMS框架卡刷安装包(这里的开源指的是安装包;GMS框架不是开源的)。该网站设计也使用了Material Design,可以说很“原汁原味”了。
opengapps.org/
进入网站后直接就是下载页面。

硬件平台:一般指处理器的硬件平台,近几年的安卓机基本上是ARM64,一些老机(如小米2S)是ARM(32位)平台,PC平台和一些英特尔平板一般是x86(32位)或是x86_64(64位)平台。 如果不清楚的话,可以下载AIDA 64应用,在“处理器”一页的“指令集”一栏中,若为“32位 ARMv7”则为ARM平台,若为“64为 ARM……”则为ARM64平台。
www.coolapk.com/apk/com.finalwire.aida64


安卓版本:设备的安卓版本。一般可以在设备的详细参数页找到。
GMS套餐:GMS框架按照附带软件的丰富程度来区别的安装包变种(将就翻译成“套餐”)。在右边的绿色打开页面按钮处悬停可以查看说明,或是点进去看详细说明。由于我个人不需要除商店外的其他应用,本例中我选择“pico”版本。这里也解释了为何我在之前下载卡刷包哪里要求下载不包含Gapps的Vanilla版:在这一步,我们可以有更多的选择余地,安装哪种套餐完全由自己掌握。(注:GMS框架的安卓4.4版本目前只给32位平台提供。)
选择好我们需要的版本后,点选右下下载按钮进入下载页,下载对应卡刷包。最下方的打包日期为此网站提供的最近打包日期,一般与GMS官方同步。
下载完卡刷包并归档后,我们就可以卡刷入GMS框架了。卡刷过程与安装第三方ROM卡刷包步骤一样,但不需要刷入前清除任何东西。刷入后之前的数据也不会遭到删除。不过请注意,刷入后GMS框架将等同于系统应用随系统一同启用,这之间可能会打开GMS框架的欢迎页面(One Time Init),请提前为网络连通性做准备。




6.2 Dolby Atoms音效
这个是我找的一个开源Dolby Atoms音效Magisk模块,作者从Razer Phone 2上提取而来,声称支持安卓9~12的安卓设备。经过我的测试,在安卓11 Dot OS 5.1.3~5.2上使用正常。
github.com/reiryuki/Dolby-Atmos-Razer-Phone-2-Magisk-Module
你可以在页面的最下方找到下载地址。到目前(2021/11/23)为止,最新版本为20210830021659。
下载Magisk模块安装包并归档。将模块安装包放入设备内置存储空间中,打开Magisk应用,选择下方最右边的“模块”图标,点击“从本地安装”按钮。

选择我们刚放入的模块安装包并安装。

模块安装完成显示“Done”,点击重启,重启设备。重启后,可以找到Dolby Atoms应用,打开既是Dolby Atoms控制面板。


至此安装完成。Dolby Atoms后台服务将作为系统应用随系统一起启动。模块安装后将在内部存储空间生成一个名为DolbyModuleUninstaller.zip的压缩包,这个即为该模块卸载用的Magisk模块安装文件,若想彻底卸载该模块,在Magisk中安装该卸载包即可。因此最好将这个卸载包归档。
注:该模块可能和其他全局音效模块/系统应用冲突;每次TWRP恢复后都会出问题,建议使用TWRP备份前先卸载,备份完重新安装。
双清、三清与不清的选择
首先你得知道双(三)清清除的是什么,以及为什么要双(三)清。双(三)清操作经常在卡刷前,对于跨ROM/跨大版本号,进行双(三)清可以提升安装ROM后的系统稳定程度,未清除干净的Data分区数据会对某些不进行自动清除的ROM的运行造成混淆,产生BUG等;但如果你只是平刷(同卡刷包重新刷入)则完全没有必要双(三)清,只是刷个模块也没必要双(三)清;甚至你只要头铁可以任何时候都不双(三)清,只有在ROM遇到问题时才双(三)清并重刷。刷机刷多了之后你自然知道该怎么把握这个度,如果不确定,每次刷ROM都双(三)清是最稳妥,也最麻烦的选项。
如果你的TWRP在浏览内部存储空间时显示乱码,则代表你的Data分区未被解密。你可以尝试重启TWRP输入密码来解密;如果TWRP无法解密,则尝试更换更新的/承诺可以解密Data分区的特定机型修改版TWRP;如果都不行,三清可以解决这个问题,不过要注意:你的所有用户资料和内部存储空间数据都会被清除。
至此,我的刷机经验(兼超级啰嗦教程?)就此完毕,将来会出一个Dot OS 5.2体验与原生个性化使用推介,小米6使用MIUI12.5体验,安卓相对较全面的备份与还原教程,咕咕咕。