这两周来频繁刷机,更新系统又还原系统,弄懂了很多事情,写一篇日志总结,以便以后查询使用,也希望能够看到的人能避免踩坑,也许第三部分更有价值,可以直接跳过去看。
一、关于刷机
刷机有风险,可能会变砖。不过因为很多手机都留了最后一手:FASTBOOT,所以总能把手机就回来。 刷机的有不少的方法:卡刷、线刷、OTA。卡刷:一般来说卡刷简单的能够理解为在内存卡中刷机,就是进入Recovery中刷入系统;线刷:线刷事实上能够简单的理解为用USB线刷机;OTA:仅仅要在系统中在线升级就能够成功刷机。
刷机之前需要解锁,一般开放点的厂商都会给相应的解锁工具和权限,只要愿意折腾都可以完成解锁。其实解锁和刷机就是为了获得root权限,这样可以对系统做更大的定制,当然也降低手机的安全性。
刷机要根据自己的手机型号找到相应的刷机包(也就是ROM),要注意是卡刷还是线刷,卡刷就是拷贝到手机卡里刷机,线刷就是用电脑的工具通过手机数据线刷机。
小米的MIUI系统有大量的刷机包,我一直都喜欢用欧版,地址是:https://xiaomi.eu 内网地址是:https://sourceforge.net/projects/xiaomi-eu-multilang-miui-roms/
二、获得root权限
我用的是小米手机,有两种方法,这里从别的地方搬过来,我只把重要的步骤留下,并且指出可能的坑点。
1、通过替换boot.img方式安装Magisk获取Root权限指南
来源原文:https://miuiver.com/install-magisk-for-xiaomi/
现在获取手机 Root 主要通过安装 Magisk 实现,这篇文章将以新手视角介绍如何安装使用 Magisk。
准备工作:安装 Magisk 过程中需要用到 fastboot 命令,需要刷写手机 boot 或 Recovery 分区,请确保手机已完成 BL 解锁,不然无法进行。正常情况下不会丢数据,但是建议都先外置备份手机数据再操作。
下载Magisk 地址 https://github.com/topjohnwu/Magisk/releases (选择下载最新版,然后安装到手机)。
提取相应文件:查看手机上运行的系统版本是多少,下载对应系统版本刷机包,从里面提取相应文件(请见下面说明)。如果之前 Ramdisk 查询结果为“是”,请提取 boot.img 文件如果之前 Ramdisk 查询结果为“否”,请提取 recovery.img 文件。
文件提取方法:如果系统版本有线刷包,可以直接解压提取;如果系统版本只有卡刷包,需要从解压的 payload.bin 文件里提取(老机型卡刷包可以直接提取),将提取到的文件复制到手机上。
生成修补文件:手机打开 Magisk 软件,点击 Magisk 卡片中的“安装”按钮。点击“选择并修补一个文件”,选择之前提取到的 boot.img 或 recovery.img 文件,点击“开始”,然后等待生成修补文件。据 Magisk 文档指出,小米有个别机型 Ramdisk 结果可能不能准确检测。如果修补 recovery.img 文件失败,可以尝试用 boot.img 修补,后面安装也遵循 Ramdisk 结果为“是”的做法。将生成的修补文件复制到电脑上(修补文件默认保存在手机内部存储 Download 目录)。
刷写修补文件:将手机关机,长按音量下键+电源键进入 FASTBOOT 模式,用数据线连接到电脑。电脑打开存放修补文件的文件夹,按住键盘 Shift 键,同时鼠标右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”,然后运行下面刷写命令(命令中的文件名请先自行修改)。如果之前修补 boot.img 文件请用这个命令:.\fastboot flash boot magisk_patched-25200_pU6ZV.img;如果之前修补 recovery.img。文件请用这个命令:.\fastboot flash recovery magisk_patched-25200_pU6ZV.img。刷写完成后用下面命令重启手机:.\fastboot reboot
提示:如果刷完后遇到反复重启进不去系统问题,可以尝试先用下面命令禁用启动验证(AVB/DM-Verity),然后重复上一步骤重新刷写修补文件(这个方法仅限具有单独 vbmeta 分区的机型使用), .\fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
命令中用到的 vbmeta.img 文件从刷机包内提取,方法和之前提取其它文件一样。
如果出现成砖或者解决不了的问题,只需用之前方法刷回从刷机包提取的原始文件boot.img。
2、小米手机刷 TWRP 方法
来源原文:https://miuiver.com/how-to-flash-twrp/
如果要刷第三方ROM,或者不能用MIUI内置卡刷功能的受限版本,唯一办法是通过安装第三方 Recovery来刷机。其中TWRP是最常使用的第三方 Recovery,官方适配了许多机型,也有不少民间修改版本。如果是发布超过一段时间的机型,通常用官方版本就可以。如果是新机,则很可能官方还没有适配,只能用第三方版。
官方和第三方版本区别是:前者不用担心安全问题,能稳定获得更新,后者则需自行判断作者可信度。第三方版本通常会自带移除 MIUI 启动验证,官方版需要手动解决这个问题(刷入 Magisk 解决),不然可能卡米无法进入系统。
最后,对于采用 A/B 分区的手机,由于后续更新系统会切换分区,这可能丢失 TWRP 安装。这种机型不建议安装 TWRP,而改为只在需要时启动它。
TWRP刷入步骤:先将手机与电脑连接以便安装好驱动(如果安装失败,可下载 MiFlash 再手动安装)。另外确保手机已完成 BL 解锁;电脑下载 Fastboot 工具(解压备用)和对应机型 TWRP(.img 后缀文件,将其放入前面解压的文件夹里,官方地址是:https://twrp.me/Devices/Xiaomi/ );将手机关机,长按开机键 + 音量下键进入 fastboot 模式,与电脑连接; 电脑打开刚才解压的 platform-tools 文件夹,按住 Shift 键,同时右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”,运行下面命令刷入 TWRP(自行替换文件名)。
.\fastboot flash recovery twrp-3.7.0.img
注:如果不希望安装 TWRP,而只是临时使用 TWRP,运行下面命令(自行替换文件名)并忽略第 5 步骤。
.\fastboot boot twrp-3.7.0.img
如果运行命令后无法启动 TWRP,一直停在开机界面,可能是 TWRP 版本适配有问题,可尝试使用第三方版。
为防止重启手机 MIUI 自动替换回官方 Recovery,按住手机音量上键,同时电脑运行下面命令重启手机,直至进入 TWRP 界面。
.\fastboot reboot
在进入 TWRP 后,会询问“是否保持系统分区为只读”。这里滑动按钮以允许修改 ,不然不能禁止 MIUI 替换回官方 Recovery。滑动按钮允许 TWRP 修改 System 分区。
由于 MIUI 在启动时会检查 System 分区完整性,上一步 TWRP 修改了 System 分区,这时重启手机会无法启动系统(“卡米”问题),需要通过刷入 Magisk 移除启动验证,步骤如下:电脑下载 Magisk 安装包,将其复制到手机上(这时电脑可以识别手机 MTP 设备);TWRP 界面上点击“安装”,找到下载的是 Magisk 安装包,点击文件名,滑动按钮刷入;等待 Magisk 刷入完成,点击“重启系统”,这时就不会有“卡米”问题,重启手机也不会丢失 TWRP 安装。
3、MIUI欧洲版或者国际版刷本土模块
通过上面的两个步骤获得root权限并且装上Magisk之后,就可以刷入本土包了,比如钱包里的公交卡和门禁卡等。
只要刷入相应的模块就可以,这里有人专门做了相应的模块包,链接直达:https://blog.minamigo.moe/archives/184 ,作者在github创建了一个项目,主要是在为Miui Eu用户恢复Miui大陆版的功能。Miui Eu用户可通过使用此项目,同时获取Miui Eu的功能和Miui大陆版的功能。其实我只需要钱包,其他都没必要,原因你懂的。
这个包是为miui13和miui14专门写的程序,不过我试过miui12、miui11都能安装,至少钱包可以,其他没有验证过。
三、我踩过的坑
1、TWRP官方版本最新程序是3.7.0(截至到2023年2月15日),目前只支持android12,不支持android13,所以如果你更新的系统是13,那么你就可以放弃获得root或者按照magisk了。不过对于一些小米机型,有高人自己改写了twrp,但是要注意:这不是官方的,一点要慎重,地址是:https://www.123pan.com/s/qHhDVv-nuQJv 作者是活跃在xiaomi.eu上面的会员,可以点击这里:https://xiaomi.eu/community/members/gogocar62.295691/ 查看他的信息。
2、线刷的时候路径不要太长,否则就刷机不成功,因为很多安装包下载的时候文件名都特别长,把文件夹名称修改为短一点的就行,比如rom。
3、现在很多手机都采用 Virtual A/B 分区,这种情况如果刷入twrp,可能你会不小心切换到不同的分区,比如slot A和slot B,很多人一看就英文就乱点。可能你不小心就进入另外一个槽位,那么手机会无线进入fastboot,这时候需要在fastboot模式下运行:.\fastboot set_active b,也就是把B槽位弄成活跃槽位(也可能要把A槽设置为活跃槽位:.\fastboot set_active a,具体看系统安装在哪里),然后重启手机到system。
4、刷机包ROM必须要对应自己的硬件,可以通过官方名,比如MI12,或者MI12 Lite之类的查找,不过一般都会有一个英文代号,刷机包不对肯定搞不定,包括获取boot.img,别抱侥幸心理,系统都是针对硬件定制开发,多一行代码都没法运行。
5、这是最后一条:必须备份数据!必须备份数据!!必须备份数据!!!哪怕你觉得自己很熟悉,甚至自己曾经走过同样的路径,总会有意想不到的事情发生。