记录下Android手机用Magisk解锁root和安装LSPosed

记录下Android手机通过fastboot用Magisk解锁root和安装LSPosed(xposed)

设备有两台,一台主力机和一台备用机都刷成功了。

一加 OnePlus 7 Pro 系统是欧洲版OxygenOS GM1910_11_H.30 Android12

红米 Redmi K50 Ultra / 小米 Xiaomi 12T Pro (DITING) 系统是MIUI.EU V13.0.7.0.SLFCNXM Android12

和以往的刷机的区别

Google 在 Android 7.0 引入新的OTA升级机制 A/B System Updates 。把BootSystem分区变为了两套,分别是Slot ASlot B即A/B分区。同时没有了独立的 Recovery 分区而是把Recoveryboot 分区做在了一起。

后来这套机制在Android 12进行了升级有了 Virtual A/B System Updates,也就是VAB分区或是又叫虚拟AB分区。现在2022年出厂安卓11及以上的手机基本都是VAB分区机制了。

也可以在GooglePlay上下载 Treble Check 软件来检查自己的手机是否存在A/B系统分区。

关于分区感兴趣可以看看极客湾这期视频 https://www.bilibili.com/video/BV1BY4y1H7Mc/

安装 ADB 工具包

如果你的电脑上还没有 ADB / Fastboot 工具包(Google SDK Platform),那么需要前往 Google Developer 下载

fastboot刷机

因为Recovery分区的合并,如果只是想要用TWRP来刷机而用不到TWRP的其他功能,那单从刷机来讲更方便的选择其实是用fastboot直接来操作。TWRP还有的备份功能我个人用的也不是很多。

  1. 用手机上的 Magisk Manager app 给当前版本的系统包里提取出来的 boot.img 手动打补丁(Install -> Select and Patch a File

    adb shell 								#打开adb shell 并进入到根目录
    ls										#查看当前位置下所有目录
    cd /sdcard/Download						#找到想要存放的位置
    exit									#退出adb shell
    adb push D:\boot.img /sdcard/Download/	#把boot.img传给手机 传输过程没有进度条反馈需要等待
    adb pull /sdcard/Download/magisk_patched-25200_gOYbu.img D:\	#传回打完补丁的boot镜像
    
  2. 使用命令进入 fastboot 模式

    adb reboot bootloader
    
  3. 在 Bootloader 中输入命令

    fastboot boot magisk_patched.img
    
    • 注意!这里请最好不要使用命令直接刷入(fastboot flash boot magisk_patched.img)Magisk,避免造成 Magisk 无法备份原版 boot.img,在日后的更新中出问题。fastboot boot 指令提供了临时从某个镜像文件启动的方式,大大降低了 debug 的难度。
  4. 刷完后会自动开机会进入Magisk临时拥有权限的系统。

    此时 Magisk Manager 暂时有了 Root 权限,即可以在 Magisk Manager 中正式安装 Magisk(Install -> Direct Install)安装好Magisk后重启即可拥有root

传统Recovery刷机方式:

还是记录下用TWRP在Rec下刷机的方式吧。TWRP刷机的方式依旧可以用,只不过会有些麻烦。

  1. 在官网找到设备支持列表

    下载对应适配的.img镜像文件,和.zip安装文件

    TWRP官网: https://terp.me/

  2. 然后进入fastboot模式下输入

    fastboot boot twrp.img
    

    依旧不推荐直接使用flash刷入fastboot flash recovery twrp.img

  3. 刷好后正常情况手机会临时进入一次 TWRP。(或是通过组合按键开机进入Recovery模式进入TWRP,另外在开机时使用 adb reboot recovery 也可)

    1. 是否持久化(固化)TWRP是可选的。首先说使用固化 TWRP 的方法

      1. 在TWRP中刷入 twrp-installer.zip 使TWRP持久化。这个安装包会在 AB 两个分区中都安装一次 TWRP,这样无论手机从哪个分区启动都可以进入 TWRP。
      2. 直接刷入Magisk.zip
    2. 使用临时 TWRP 的方法

      1. TWRP 中输入正确密码解密分区(如果设置了密码),并选择 Advanced -> ADB Sideload,确认进入 Sideload 模式。

      2. 执行 adb sideload Magisk-vX.X.zip

      3. 关闭并重新启动手机,若 TWRP 提示安装其官方应用,无需安装。开机后安装 Magisk Manager 的 apk,确认 Magisk 已成功激活。

OTA时的操作

这里只写到了Magisk没有TWRP

系统更新时,默认会用全量包刷回未 Root 的状态。如果此时想保留 Magisk,建议先备份下数据,然后按以下流程操作:

  1. 等待系统更新进度条走到 100%,即更新完成,此时不要重启。

  2. 打开 Magisk (怕翻车那就停用所有使用中的模块。

  3. 打开 Magisk,将 Magisk 安装到第二分区 (Install -> Install to Inactive Slot(After OTA))。

  4. 自动重启进入新系统。然后去确认下系统版本号是否更新、Magisk 是否正常激活。

  5. 如果之前怕翻车手动停用了模块,那就打开 Magisk,在 Downloads 页面下载、覆盖安装所有 Magisk 模块后再重新启用模块,再次重启,检查自己用的模块是否正常工作。

    • 步骤2、步骤5可忽略,但有无法进入系统的风险。

      如果忽略这两个步骤后无法进入新系统,可以回到原系统重新执行以上步骤。 手动切回原系统方式:进入 Bootloader,使用 fastboot getvar current-slot 获取当前分区,并使用 fastboot --set-active=a fastboot --set-active=b 切换回原来的分区。

fastboot升级系统时的操作

MIUI.EU 对于有些手机只提供了fastboot线刷包。升级也只能用电脑链接进入fastboot模式下的手机来线刷。

这个情况其实我也不是很清楚正规一些的操作要怎么做,要怎么才既能升级又能保留root,如果有人知道的话可以邮箱告诉我一下麻烦惹。

不过我也测试出来了一种方法。

  1. 在升级前先把最新版系统线刷包里的boot.img传到手机里
  2. 在手机上用magisk修补最新版系统的boot.img,并将修补后的镜像传给手机
  3. 备份并替换掉线刷包内的boot.img
  4. 手机进入fastboot然后在电脑上执行 windows_fastboot_update_rom.bat
  5. 升级完成重启后进入magisk,在安装中选择直接安装。再次重启完成后即可完成升级。

Magisk模块

LSPosed模块

哔哩漫游

Duolingo时区修复

锤锤

钉钉反撤回神器

格言锁屏 X

杜比大喇叭β

非残!

微X模块

QNotified

Pixelify GPhotos

知了

强制截图

MiuiMediaEditor

WooBox For MIUI

MaxFreeForm

MiuiHome

需要Root的应用

App Ops

冰箱 / 小黑屋

Scene

黑阈

MT文件管理器

参考链接

OnePlus 7 Pro Magisk(Root) 教程

一加 OnePlus 7 刷入氧 OS、TWRP、Magisk (Root)

谷歌SLOT A/B机制下安卓刷入TWRP和Magisk以及OTA的一些方法

HowTo Install Recovery image - MIUI.EU