为红米note12turbo刷入第三方rom

为红米note12turbo刷入第三方rom

一、写在前面

这台手机在我手上已经两月有余,在到手后,期间有尝试过国内版的miui14,澎湃os,但是无一例外都让我非常不爽,MIUI繁杂的设置,系统内的各种推广,以及升级到澎湃后明显的耗电,不太靠谱的GPS,最终驱使我逃离。

作为一个8年原生Android老用户,在忍了一周后,终于等到了解锁权限,于是第一时间解锁了bootloader。但是考虑到之前这台设备上游的开发还并不完善,我并没有第一时间刷入我喜欢的原生,毕竟作为一名已经上班的社畜,对手机的功能早已没啥太深的执念了,我只需要一台能保证我稳定使用的机器,能够保证我日常的沟通交流即可。

前面虽然说了不爽,但是用了一周,倒也不是用不下去miui,于是,我便把目光转向了miui国际版。当然,即便是国际版,它也分了很多地区,有GLOBLE(真正字面意义上的国际版),INDIA(印度),还有经过欧盟认证的EEA版。EEA虽然更新最慢,但是没有任何广告和多余的东西,于是就果断刷入,并且一直用到了现在。

1、EEA版的使用体验

EEA你可以把它看作是一个比较有操守的MIUI,由于要符合欧盟的政策,这个系统内没有任何广告和推广,它就是纯粹的MIUI,电话短信这些基础的服务也都是GOOGLE的,因此非常清爽。除了阉割了国内的钱包啥的,体验基本与国内版一致,所以这个版本我足足使用了两个月。

当然,它也不是没有BUG,我使用的是最后一个版本的MIUI14。在使用蓝牙耳机时,微信的语音通话就无法切换到耳机里,搭配上面的“听筒”,每次通话几乎无私密性可言...... 除此之外,它还有其他莫名其妙的小bug,它可能并不太影响使用,但是碰到了就会很操蛋,比如昨晚直接无法充电,但是重启后就正常了。

如果是双卡,在弱信号切换时,也会断流非常久。甚至有电话应用直接无法弹出的情况,我觉得这种bug出现在小米这样体量的公司的产品上是非常不应该的。

2、对于当前机圈的一些看法

虽然我最终买了这部机器,但是实话说我对这台机器第三方项目的未来并不乐观。

一方面,这几年厂商的开源越来越敷衍,尤其是随着谷歌在android中大范围的引入gki内核,很多与内核驱动相关的模块就直接与内核分离了,厂商那边愿不愿意开源完全看心情。由于是驱动,上游的高通可能也会更抵触,所以你也许很难再看到早年的盛况了。这会导致第三方很容易就能搞出一个可以启动的系统,但是这个系统的各种硬件功能就有各种问题,一些安全验证也会很难通过,因此几乎没有实用价值。

另一方面,氛围也在变差,即便是上游的开发者真的有心用爱发电,也总是有不少奇怪的玩意儿去做一些奇怪的事情。用户的水平在变差,上游的开发者耐心也会因为这个被消磨,然后还有各种利益关系,最终的结果必然就是一地鸡毛,很难走的长远。

如果各位感兴趣,可以去搜索一下NUBIA mini 5G(TP1803)这个机型,可以看看大佬云集的社区氛围是什么样子的。

二、正篇开始

1、解锁bootloader

默认情况下,大多数 Android 设备都附带一个已锁定的引导加载程序,这意味着用户无法刷写引导加载程序或设备分区。如果需要,您(以及启用了开发者选项的设备用户)可以解锁引导加载程序以刷写新映像。

为什么要有这个东西呢?

不知道各位有没有使用过windows PE?你可以在不进入系统的情况下,通过u盘内的PE系统访问windows里的文件。

对于电脑,一般情况下外人也不太容易接触到,且一般也不会有太过于敏感的文件。但是手机就不一样了,作为现代人最重要的工具之一,你的手机里会存储着你的一切,且丢失的概率要比电脑大的多。

如果这时候有人想窥探你的世界,就可以在手机上刷入一个像windows pe一样的东西(recovery),从而绕过这些安全防护,bootloader锁就是避免这个的。在锁定时,bootloader会校验启动的系统签名是否是获得许可的,如果和自己内置的签名不一致,就会拒绝启动,也不允许这些镜像被刷入到手机上的这些分区里。

而恰好,我们刷入自定义系统时,这个过程就和上述情况类似,因此要达到目标,就要先解除bootloader锁定。

小米的解锁方法,网上有教程,你可以去搜索一下。

注意:

解锁后,你的设备安全等级会有下降,请自行斟酌是否要继续!!!

在解锁时,你的设备会自动清空所有的数据,请提前做好备份!!!

2、如何刷入EEA和回到官方系统

1.1 下载需要的系统

首先,你需要下载一个你的机型的官方包,你可以在这里找到:

https://xmfirmwareupdater.com/

你可以直接搜索你的机型:

解释一下那几个选项:

Firmware是固件,一般就是所谓的底包,当你想刷某一个类原生时,常说的底包就是这个。

Vendor一般是一些供应商的库,你可以理解成是系统要用的驱动,它也是底包,不过没有Firmware更底层。

不过,这个东西现在一般已经被包含在下载的系统包里了,因为当年vendor、system这些分区是分离的,确实容易出现多个系统共用相同vendor的情况,后面由于动态分区的引入,一个super分区就把这些包含了,所以作者在构建rom时也会把那些库打包进去,也可以避免一些奇奇怪怪的问题。

Archive是归档,如果你想要某一个版本,那就可以在这里找到。

说一下type那一栏里的内容,你可以看到有recoveryfastboot这两种类型。

1.2 啥是recovery和fastboot

我在这里并不太想用“卡刷”和“线刷”来称呼它,这种称谓在早年比较自由的搞机环境中还算可以,但随着权限的收紧,卡刷包可能也要用线才能安装上,所以,你说它到底是卡刷还是线刷呢?其次,早年的卡刷,卡指的是内存卡,现在还有设备支持吗?

因此,我想着重介绍一下这两种包的结构,和它们是如何使用的。

1.2.1 fastboot

要说区别,其实它俩在内容上并无什么本质上的区别,可能线刷包里包含的东西更全一些。在Android系统构建时,AOSP默认生成的就是一大堆系统镜像,比如system.img,boot.img,这个镜像的大小会对应着分区的大小,这一堆生成的镜像就可以通过fastboot刷入到手机。

前面提到了bootloader解锁,其实就是解除了一些命令上的限制,当你使用fastboot flash这个命令时,功能完整的bootloader,在解锁的状态下,就会响应这个命令。

比如你在电脑上通过android调试工具包里的fastboot组件执行fastboot flash boot boot.img 来刷入boot,那过程就是这样的:

fastboot 启动 flash 这个命令,要求往boot分区里刷入boot.img。

bootloader接到这个请求后,如果条件符合,就会接受传过来的镜像,并把它放到指定的分区内,其他的分区也是同理。

当所有的分区都被刷入后,刷机也就完成了。

但是android有那么多的分区,总不能全都自己刷入吧? 于是维护者会把这些命令都写入到一个脚本里,然后让脚本自动执行这些命令,就可以自动刷入了。

所谓的fastboot包,就是这些镜像的集合,然后外加一个脚本,简单粗暴。

1.2.2 recovery

recovery要稍微复杂一些,手机里的recovery你可以把它看作是一个小型的系统,就像电脑的PE一样。

由于recovery的级别要比fastboot高级的多,所以它可以做的事情更多,比如直接操作分区里的文件,运行一些更高级的压缩算法。

所谓的recovery包就是给这种系统使用的,使用时,recovery会先解压里面的东西,将其转换为img镜像,然后再放到指定分区内。

它还可以修补boot,刷入gapps等。

1.3 刷入

对于miui,我更建议你直接使用fastboot的方式来刷入,因为这个过程是全自动的,你不用去考虑奇奇怪怪的东西。

下载一个你喜欢的fastboot包,然后解压,里面应该有一个flash_all.bat的脚本。

下载adb套件,里面应该已经包含了fastboot了

https://googledownloads.cn/android/repository/platform-tools-latest-windows.zip

下载后解压,把这些文件和解压的那个脚本放在一起

然后把手机重启到bootloader里,最后运行脚本,等待刷写完成即可。

3、刷入第三方类原生

步骤和上面基本一样,只不过第三方系统一般都是recovery包。

1、刷入twrp

twrp是一个第三方的recovery项目,提供了比官方的recovery更多的功能和权限。

为什么要用它

为了安全,几乎所有的厂商都会在自己家的recovery里加入自己的签名,并且只允许刷入经过自己签名的系统,我们要安装第三方系统,那官方的recovery肯定就要拒绝,因此我们需要第三方recovery来破除这个限制。

同样是上面的adb套件:

在顶部地址栏输入“cmd”,即可在当前目录开启cmd命令窗口。

这时候,请连接你的手机并确保手机的adb调试已经打开,手机的usb模式设置为mtp文件传输模式。

在电脑的cmd窗口输入:

adb reboot bootloader

按回车键执行后,手机应该会要求同意调试权限,同意后即可重启到bootloader。

我这里是因为已经有了,所以就直接进recovery模式了。

进入bootloader后,你的手机应该会有个fastboot的标志,在当前的模式下,继续在刚才的终端输入:

fastboot flash recovery_ab twrp.img    #请将twrp.img替换成你自己的twrp文件名和路径

然后重启到recovery,开始会要求你解密data,密码就是你的锁屏密码,不出意外,你应该在解密后就能看到这个了。

2、如何使用adb sideload?

正常情况下,你可以点击主页上的安装选项,找到你要刷入的系统包,然后执行即可。

但是,并不是所有的recovery都支持解密data,对于不支持的recovery,当你点进去后,会发现是一堆乱码,而且有时候我们需要先格式化data后才可以再进行下一步。这个时候,你就没办法直接去安装系统了,所以就需要用到adb sideload这个功能了。

ADB sideload is a new feature that was added to AOSP recovery in Jelly Bean. As of version 2.3, TWRP now supports ADB sideload mode. ADB sideload is a different ADB mode that you can use to push and install a zip using one command from your computer. Most likely ADB sideload won’t be very useful for your average recovery user, but ADB sideload can be a huge time-saver for a ROM developer.

通过这个功能,你就可以直接在电脑上推包到手机上,然后recovery也会自动安装这个包,并将相关的进度回传到电脑上。

这个功能在twrp的高级选项里:

选择并开启后,显示如下:

开启后,你只需要在电脑的命令窗口输入:

adb sideload 你要安装的zip包

然后程序就会推包进去,并完成安装。

我这里要刷入三个包:

第一个是hyperOS的底包,因为此系统是基于国际版的hyper构建的,这些系统固件crdroid会用到。

第二个是crdroid的本体,就是我要安装的

最后一个是gapp的安装包,我是谷歌服务重度用户,你可以根据你的需要选择是否刷入。

如果你需要magisk,也可以直接在这里刷入,直接把面具的安装包当zip文件推过来即可。

安装完成后,回到twrp的主页,有个清除选项:

选择格式化data分区,输入yes即可,如果你不要gapp,那到这里就可以重启了,不出意外你应该就可以正常使用crdroid了。

如果你需要gapps,那就接着往下看。

3、刷入gapps

在android 11以后,谷歌要求所有的设备制造商都采取一种叫做动态分区的东西,传统的system、vendor等分区并不再以物理分区的形式存在,而是被定义成逻辑分区的形式,这些分区被整合成一个叫做super分区的东西,里面的system等就像一个个卷一样。

p1

在初次安装后,twrp并不能直接挂载这些虚拟的卷,因此需要重启到另一个槽位。

在重启里:

这个槽位就是上图的ab,目前活跃的是A,那就切换到B,反之,那就切换到A。

然后点上面的recovery,重启recovery即可正常挂载。

再次重启到recovery后,直接sideload推gapps的包即可完成安装,然后重启就可以用了。

4、一些杂项配置

原生虽然很丝滑,但是我们需要做一些简单的限制才能适应国内的环境。

1、root

目前大家常用的有两种方案,一种是magisk面具,你可以选择直接修补boot,或者twrp里刷入。

包括原版的magisk,和delta分支

https://mirrors.bfsu.edu.cn/github-release/topjohnwu/Magisk/

另一个是kernel su的方案,有kernel su和Apatch。

这里根据你的需要来,当然,从日用的角度来说,我更建议你使用第二个方案,因为隐藏效果更好,可以避免一些应用无聊的检测。

2、后台管控

原生的后台管理对于国内的应用约等于没有,为了避免你的垃圾消息乱弹,我建议你装个黑域

https://brevent.jianyv.com/

对于不需要的应用,直接黑域掉。

3、一些模块

华为应用商店:

配置好可以实现系统级静默安装,我做了模块。

字体模块:

花冠

下载链接:

https://www.123pan.com/s/Z2fuVv-C8tcv.html提取码:Kvhx

LICENSED UNDER CC BY-NC-SA 4.0