博文記錄
教程分享 2022-07-12 03:11:48 68 0

正常魅族系统通过增量更新有很大风险将系统的 magisk 以及 TWRP 搞丢,因为 flyme 系统的 magisk 是通过 patch 补丁的方式打入 boot.img 的,而升级系统可能会覆盖该区域内容,最好是通过全量更新的方式刷入,并且从升级系统包中提取 boot.img ,再通过系统打入 TWRP 和 Magisk 的补丁。

此文是更新系统的方式,并且你已经有 Magisk 的情况下升级系统可参考,否则先直接查看第六步 "打 Magisk 启动分区补丁"。

基本流程如下:

  1. 下载全量升级包 update.zip

  2. 从 payload.bin 中提取 boot.img

  3. 升级系统

  4. 重启前保留面具 root

  5. 通过脚本打入 TWRP 补丁

  6. 再次打入 Magisk 补丁

  7. 刷入打补丁的 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

 

發表評論
StudioEIM - 冒险者讲习所
0:00