正常魅族系统通过增量更新有很大风险将系统的 magisk 以及 TWRP 搞丢,因为 flyme 系统的 magisk 是通过 patch 补丁的方式打入 boot.img 的,而升级系统可能会覆盖该区域内容,最好是通过全量更新的方式刷入,并且从升级系统包中提取 boot.img ,再通过系统打入 TWRP 和 Magisk 的补丁。
此文是更新系统的方式,并且你已经有 Magisk 的情况下升级系统可参考,否则先直接查看第六步 "打 Magisk 启动分区补丁"。
基本流程如下:
下载全量升级包 update.zip
从 payload.bin 中提取 boot.img
升级系统
重启前保留面具 root
通过脚本打入 TWRP 补丁
再次打入 Magisk 补丁
刷入打补丁的 boot.img
1.下载全量升级包 update.zip
https://www.flyme.com/firmwarelist-191.html
通过官网下载最新的全量升级包。
2.从 payload.bin 中提取 boot.img
下载 OTA Payload 解包工具
windows python 打包版本:https://androidfilehost.com/?fid=818070582850510260
Python 原版及 Docker 用法:https://github.com/vm03/payload_dumper
另外一款 golang 版本的解包工具:https://github.com/ssut/payload-dumper-go
无论哪个能解包就行,我这里使用的是 windows 打包的版本。
解压 update.zip ,得到 payload.bin,将其复制到 payload_input 中。
复制之后的截图:
双击 payload_dumper.exe 进行解包镜像
当 boot 解包完毕后就可以关闭这个程序了,出现 boot 之后的第二个其他镜像名字就代表 boot 解包成功。
暂时保留这个 boot.img ,稍后用到。
3.升级系统
复制 update.zip 到系统存储中,通过系统内置的 文件管理工具找到 update.zip 进行更新。
通过 adb 复制文件到系统存储根目录:
通过系统文件管理器,找到 update.zip 并点击进行立即更新。
无網路連接,請檢查網路設定
如果出现 “无網路連接,請檢查網路設定“:
检查系统屏蔽广告的设置,或者 hosts 等,可以将其临时关闭,如果是通过 systemless hosts 屏蔽了魅族 flyme 的 host,将模块临时关闭,并重启系统。
4.重启前保留面具 root
开始安装后,打开 magisk manager ,选择安装 Magisk.
安装方式:安装到非使用中的槽位(在 OTA 更新后)
暂时不要点击开始执行
提醒:一定要赶在系统安装完成后重启前的时间进行操作,否则安装完成后会强制立即重启,丢失 Magisk。
通过通知栏查看更新进度条满的时候(变成一整个圆圈),再去选择 开始执行
5.打 TWRP 启动分区补丁
到这一步你的系统应该拥有 root 权限才行,如果上一步正常则可以通过 magisk 授予 root 权限,否则你可能需要先打一遍 magisk 的补丁给 boot 重启激活获取 magisk 加载后再来进行当前步骤。
你需要将刚才解压的原生 boot.img 复制到系统中
adb push boot.img /sdcard/boot.img
再将 rec_install_tools 用于打补丁的目录复制到系统中
adb push rec_install_tools /sdcard/
创建所需的 input 和 output 目录,因为目录是空的,push 时没有将空目录推送进去。
adb shell mkdir /sdcard/rec_install_tools/input
adb shell mkdir /sdcard/rec_install_tools/output
再将刚刚的 boot.img 放入 input 目录
adb shell mv /sdcard/boot.img /sdcard/rec_install_tools/input
移动目录到 /data/local/tmp 中,因为只有这里拥有执行权限
adb shell
mv /sdcard/rec_install_tools /data/local/tmp
赋予权限并执行脚本打入补丁
cd /data/local/tmp/rec_install_tools
chmod + install
./install
此时得到一个 new_boot.img 就是拥有 TWRP 的 boot 镜像文件,此时将文件复制到 /sdcard/ 给 magisk 再打一遍,让其拥有 magisk 启动加载的能力。
一定要先打 TWRP 补丁,再去打 Magisk,否则会丢失其一。
mv /data/local/tmp/rec_install_tools/output/new_boot.img /sdcard/
6.打 Magisk 启动分区补丁
打开 Magisk manager,点击 Magisk 中的安装:
安装方式:
选择并修补档案
同时在弹出的选择框中选择刚刚导出的 new_boot.img
然后点击右上角的 “开始执行”
生成的新补丁 boot 文件在 /sdcard/Download 目录里,这个 boot 分区镜像包含了 TWRP 和 Magisk 双功能。
提取最终的镜像到电脑端,
adb pull /sdcard/Download/magisk_patched-25100_dStRZ.img .
有需要,也可以将其顺便改个名,比如:
adb pull /sdcard/Download/magisk_patched-25100_dStRZ.img boot_9.3.0.0A-with-twrp-magisk.img
7.刷 boot.img 到 启动分区
你也可以以任何方式进入到 fastboot 模式进行刷机
开机状态下进入 fastboot
adb reboot fastboot
刷入镜像到 a/b 分区
fastboot flash boot_a boot_9.3.0.0A-with-twrp-magisk.img
fastboot flash boot_b boot_9.3.0.0A-with-twrp-magisk.img
重启到系统
fastboot reboot
18x 不行:SECOND_SZ;RECOV_DTBO_SZ;DTB_SZ;CMDLINE; cgroup.memory=nokmem,nosocker reboot=panic_warm buildvariant-user [脚本多的] 可以拉我进群吗?
18x 机子按照教程 出现 卡在twrp 界面 3.5.2_11-0 如何处理?
18x 机子按照教程 出现 卡在twrp 界面 3.5.2_11-0 如何处理?
非常好的帖子,谢谢分享
重新分享一下,你的TWRP_magisk.img 制作脚本
有人分享的root_boot.img 和你提到的twrp_magisk.img 相同吗?可以替换使用吗?
可以通过 9008 qfil frp unlock 线刷包,解吗?还是用其它方法
请教一下,这些操作是在解BL后操作的吗?
TWRP 制作脚本再分享一下,谢谢
你好请问图文中的twrp是哪一款?我想要这个文件,试一下手动解密data是否成功,谢谢了。如果可以的话将twrp下载链接发我邮箱或者twrp文件发我邮箱。