Vivo X9 系列解锁 Root 并开启 VoLTE 教程#本教程介绍的解锁与 Root 以及开启 VoLTE 的方法理论上适用于 Vivo X9 系列
(包括但不限于 vivo X9/X9i/X9l/X9s/X9Plus/X9sPlus/X9Plus L等变种)
由于 X9/X9i 采用了与 X9 Plus/ X9s/ X9s Plus 不同的启动验证方式,故 X9/X9i 无法直接刷入 magisk 修补后的 boot 以实现永久 root,只能使用 fastboot boot 指令进行临时启动,且现阶段 vivo X9/X9i 只能在 Android 6.0/7.1 上实现临时 Root。
刷机有风险,请谨慎操作
0. 准备工作#硬件需求:#一台正常运行 Windows 操作系统并能正确安装驱动的电脑一根普通的 Micro USB 数据线一个可以用于短接的金属镊子(根据酷友反馈:X9 系列无法使用“ 9008 工程线”进入 9008)一台 Vivo X9 系列的手机不要太笨的脑袋软件需求:#手机驱动
确保手机已正确安装完整的驱动,推荐使用以下驱动包(感谢 @cramfs28 提供)。
下载链接: https://www.123pan.com/s/mHIrVv-1GrOA
提取码:M4AA
Viqoo 工具箱
需要使用 @某贼 大佬的 viqoo 工具箱 来解锁 Bootloader。
下载链接(文件编码为 UTF-8): https://shion.lanzn.com/iHuF42ola5ha
如果你的设备使用 GBK 编码,下载下面这个版本:
下载链接(文件编码为 GBK):https://shion.lanzouu.com/icfyP2zp40na
QPST(用于开启三网 VoLTE,特别是电信 VoLTE)
下载链接: https://qpsttool.com/wp-content/uploads/QPST_2.7.496.zip
Android Image Kitchen Vivo(基于 Android Image Kitchen 的用于修补糟糕的 vivo 的 Boot 镜像的自动化工具):https://shion.lanzouu.com/i14Oz2zotlpc
搞机助手(可选)
如果对 adb 和 fastboot 不熟悉,可以下载一个搞机助手,方便刷写操作。
下载链接: https://lsdy.top/gjzs
1. 升级到 Funtouch OS 4.0(Android 8.1)#Vivo 为 X9 系列提供了三个系统版本(Android 6.0 / 7.1 / 8.1),其中 8.1 为测试版,但本教程需要使用 Riru 激活 LSPosed,而 LSPosed 需要 Android 8.1 及以上,所以建议先升级到 Android 8.1。
官方 Android 8.1 下载链接: https://bbs.vivo.com.cn/newbbs/thread/6221269
⚠️ 注意:该机型只能使用 特殊版本的Magisk 23.0,不支持 Zygisk,其它版本的 Magisk 目前无法正常使用。
升级步骤:#下载 对应机型的 全量更新包,并将其放入手机内部存储根目录。在手机 开机状态下,打开官方 文件管理器,找到全量包并点击升级。按提示完成升级。2.解锁 Bootloader#打开 viqoo 工具箱
执行解锁步骤
进入工具箱后,选择 1. 解锁 BL 锁选择 解锁方案 4,按照提示操作手机进入 Fastboot 模式 后,选择对应机型(目前已知 vivo X9s Plus 可以使用 X9 Plus 的文件进行解锁,X9s 或许也可以使用 X9 Plus 的文件进行解锁,请自行测试,型号后面的 L 仅用于区分设备是否为全网通设备)可能会提示按住按键进入 9008 模式,但 Android 8.1 的 Vivo X9 系列 无法使用此方法必须拆机短接 进入 9008 模式保持数据线连接,解锁 BL
进入 9008 后,按照提示完成解锁解锁过程中不要拔数据线!解锁后,手机 数据会被清空,但可以正常开机修复 Windows 11 解锁时崩溃问题
部分 Windows 11(特别是 24H2 版本) 解锁时工具箱会闪退解决方法:打开 Windows 设置 → 系统 → 可选功能选择 添加可选功能,搜索 WMIC 并安装验证解锁状态
开机后,打开 USB 调试
电脑终端输入:
adb reboot bootloader
进入 Fastboot 模式后,使用搞机助手检查 Bootloader 状态
若显示 Bootloader 已解锁,解锁成功! 🎉
3. Root 设备#注意事项#根据 Magisk Issue #5148 的讨论,Vivo 在内核中做了限制,导致名为 su 的二进制文件无法执行,因此需要使用 suu 作为替代。
此外,由于 Magisk 23.0 以上版本无法正常运行,所以 无法使用 Zygisk 及其相关模块。
⚠️ Vivo X9 系列使用 FDE 分区加密,直接刷入修补后的 Boot 镜像会导致无法启动,需要修改分区表去除加密。
Root 步骤#使用 Android Image Kitchen 修改分区表,去除加密(⚠️ 但去除加密是不安全的)。使用 Magiskboot 工具去除分区挂载限制。使用 Magisk Manager 或 MagiskPatcher 修补已经去除分区加密和分区挂载限制的 Boot 镜像。通过 Fastboot 刷入修补后的 Boot 镜像。关于 Root 的一些误区#之前有传言称 Vivo X9 系列无法永久 Root,只能通过 fastboot boot 进行临时 Root,但,这是 错误的。
事实上,除了 Vivo X9/X9i 之外,X9 Plus/X9s/X9s Plus 可以永久 Root,但是 如果不去除分区加密,临时启动也无法进入系统。
初步推测原因是 X9/X9i 与 X9 Plus/X9s/X9s Plus 对于 androidboot.securebootkeyver的配置不同。
部分已经修补好的 Boot 镜像#如果您实在是无法理解如何修补镜像,且恰好设备已经更新到最新版本的固件,可以跳过下面的修补教程,直接刷入下面提供的 Boot 镜像。
请在确保版本号和设备型号完全匹配的情况下刷入,设备型号后缀的 L 仅用于区分设备是否为全网通,Boot 镜像并无差异,如 X9 Plus L 可以刷入 X9 Plus 的固件。
X9 Plus (PD1619_A_8.12.1):下载链接X9s (PD1616B_A_8.20.30):下载链接X9s Plus (PD1635_A_8.20.15):下载链接3.1 获取 Boot 镜像#我们需要使用 修改后的 Magisk 23.0 并且最好通过某贼工具箱来修补 Boot 镜像,Boot 镜像必须来自与你的系统版本匹配的官方固件。
下载链接: https://syxz.lanzoub.com/iB5dH0671hah
提取 Boot 镜像#以 Funtouch OS 4.0(Android 8.1) 为例,从下载的 全量更新包 中提取 boot.img。确保提取的 Boot 镜像版本与当前系统完全匹配,否则会出现无法启动的问题。3.2 修改 Boot 镜像以去除 FDE 分区加密以及分区挂载限制#Vivo X9 系列采用 FDE 分区加密,直接刷入修补后的 Boot 镜像会导致无法启动,所以需要修改 fstab.qcom 文件,去除 强制加密,以及 Vivo 在内核中对 /system 分区的挂载进行了限制,从而使得需要挂载到 /system 分区的模块(比如说 Riru、字体模块等等)失效,所以我们需要使用 Magiskboot 工具对其进行修补,这里使用了 wuxianlin 大佬的方案
3.2.1 简化的修改步骤(如不生效请参考下面的手动步骤)#将提取的 boot.img 拖入 Android Image Kitchen Vivo 进行解包。执行 magiskboot.bat 得到 boot_repacked.img。3.2.2 手动的修改步骤(如简化的修改步骤有效,请直接跳过)#下载 本文提供的 Android Image Kitchen Vivo
将 boot.img 拖入 Android Image Kitchen Vivo 的文件夹,如下图所示:
点击 unpackimg.bat 从而解包 boot,img
打开 ramdisk 文件夹,找到该文件夹下的 fstab.qcom,用记事本打开
删掉 ,forceencrypt=footer ,即下图中高亮的部分,然后保存:
返回 Android Image Kitchen Vivo 文件夹点击 repackimg.bat
得到的 unsigned-new.img
如果你得到的是 image-new.img,则说明你提前用 Magisk 修补了 boot.img
在 Android Image Kitchen Vivo 所在的路径打开 终端 或者 Powershell 或者 Cmd,执行如下内容:
magiskboot.exe unpack unsigned-new.img
magiskboot.exe hexpatch kernel 0092CFC2C9CDDDDA00 0092CFC2C9CEC0DB00
magiskboot.exe hexpatch kernel_dtb 0092CFC2C9CDDDDA00 0092CFC2C9CEC0DB00
magiskboot.exe repack unsigned-new.img boot_repacked.img
如果你在一步得到的是 image-new.img,请自行将上面指令的 unsigned-new.img 更改为 image-new.img
指令执行结束后得到的 boot_repacked.img 即是 去除了 FDE 加密 并且绕过了分区挂载限制的 boot 镜像
3.3 使用 Magisk Patcher 修补镜像实现 Root#当然您也可以使用本文提供的 Magisk Manager 进行修补,修补选项必须两个全勾选,否则无法开机
如果你不知道如何选项修补选项,请参考下面的教程。
可参考 酷友的方法 进行操作:
下载 @某贼 的 viqoo 工具箱。
替换 Magisk 安装包
(如使用本文提供的工具箱,则此步骤可跳过):
将上文提供的 Magisk 23.0 替换工具箱内的 bin\MagiskPatcher\prebuilt\MagiskAlpha-25101.apk。修补 Boot 镜像:
进入 viqoo 工具箱,选择默认的 Alpha 25.2 方式修补 boot.img,按提示完成操作。修补后的镜像位于 viqoo 工具箱所在路径的 bin\MagiskPatcher 下,名为 boot_repacked-MagiskAlpha25101Patched.img3.4 刷入修补后的 Boot 镜像#使用 Fastboot 刷入 boot_repacked-MagiskAlpha25101Patched.img,执行以下指令:
fastboot flash boot boot_repacked-MagiskAlpha25101Patched.img
格式化 Data 分区(必须,否则系统可能无法正常启动):
fastboot format userdata
fastboot format cache
⚠️ 为了防止 Vivo 在恢复模式下进行额外的限制,建议手动进入 Recovery 双清:
fastboot reboot recovery
然后在 Recovery 模式下手动 清除数据和缓存,再重启系统。
3.5 验证 Root 状态#设备重启后,Root 权限已生效,安装提供的 Magisk 可以正常获得权限,但目前 仅限 suu,不能直接使用 su 命令。
4. Riru、Sui、LSPosed 及 核心破解问题#Riru 请直接使用最终版:下载链接
在 Riru 正常工作后,直接 安装支持 Riru 的 LSPosed 6712 版本(下载链接) 即可,之后即可使用 LSPosed 模块。(由于我们的设备只能使用特殊版本的 Magisk 23.0,故无法使用高于 6712 版本的 LSPosed)
Sui 目前只能使用 12.0.0 版本(下载链接),详细参见该 issue,与 Shizuku App不同,无需进行修改即可正常实现 Shizuku API 的授权。
核心破解请直接使用幸运破解器的 Xposed 模式的核心破解吧,旧版本的 “核心破解” 模块,在我们的设备上效果不佳,使用幸运破解器的核心破解即可
5. 解决 Root 软件授权问题(黑域、冰箱等)#由于 Vivo 只能使用 suu 而非 su,导致大部分 Root 相关软件无法正常授权。
目前,只有 MT 管理器、爱玩机工具箱、Scene 等专门适配的软件可以正常获取 Root 权限。
解决方案#使用 ReplaceSu 模块
由 @PenicillinA 大佬开发的 ReplaceSu(LSPosed 模块) 可解决部分软件的授权问题(下载链接 请下载 suu.apk 并安装激活)。针对黑域、Shizuku 等 ReplaceSu 可能失效的软件
由于 ReplaceSu 并不能兼容所有软件,比如 Shizuku,我们可以使用 MT 管理器修改 apk 内调用 su 的指令以强行兼容 suu:使用 MT 管理器打开 APK 文件,点击 DEX编辑器++。点击搜索 然后点击 发起新搜索。查找内容填写 su,搜索类型选择字符串,并确保"搜索子目录"和"完全匹配"两个选项已经勾选,然后点击确定点击在当前结果中替换。替换内容填写为 suu,点击确定按返回键,弹出提示 ”文件 classes.dex 已被修改",选择自动签名,点击确定,安装修改后的 APK 即可。特别提醒#由于 suu 的特殊性,建议尽量使用 原生支持 suu 的软件(如爱玩机工具箱等),本文提到的使用 MT 管理器修改的方法仅适用于未加固的软件,因此对于存储空间隔离、黑域等需要 Root 但是又加固的软件无效。故对于存储空间隔离,请使用 Sui 进行授权,对于黑域请使用 Shizuku 进行激活。
6. 启用三网 VoLTE#此部分教程用于解决 Vivo X9 系列不支持电信/联通 VoLTE 的问题,但是只使用电信卡在 X9 Plus 上测试过,请谨慎跟随教程进行操作,且该设备的基带似乎仅支持 7+5 Mode 而不支持 7+7 Mode 故似乎无法实现跨运营商双 4G待机。因此,仅建议单卡使用
操作的前提是,设备已经更新到 Android 8.1 并且已经解锁 Bootloader 获取了 Root。
需要的软件:
创建快捷方式(已经修改支持 suu,直接安装即可):下载链接MT 管理器Windows 上的 QPST 套件,下载并安装需要的 Magisk 模块:
VoEnabler 下载链接6.1 提取 NON-HLOS.bin 中的配置文件,用作备份#从下载的 全量更新包 中提取 NON-HLOS.bin。确保提取的 NON-HLOS.bin 版本与当前系统完全匹配,否则会出现无法生效的问题。用 7-Zip 等压缩软件将 NON-HLOS.bin 作为压缩包打开,提取其中的 image\modem_pr\mcfg\configs\mcfg_sw\generic\mbn_ota\文件夹6.2 刷入 VoEnabler 并修改#Vivo 在包括但不限于 framework.jar、services.jar、TeleServices.apk 中加入了大量的机型判断,其中的一些机型判断使得系统设置对于 Vivo X9 等一系列设备不显示电信/联通的 VoLTE 选项,哪怕设备在硬件上是支持的,但是我们又不能直接修改设备型号信息,这会导致设备没有声音、无法打开相机、甚至无法正常启动。
值得庆幸的是,我们可以通过修改设备版本号来解决这个问题。
首先,我们刷入 VoEnabler 模块并重启然后打开 MT 管理器,将 /oem/oem.prop 中的内容全部复制到 /data/adb/modules/voenabler/system.prop 中 (注意,不要覆盖其中原本的内容,而是添加到原本的内容之后)将 persist.vivo.radio.tyoe.abbr=A 置空【即改为 persist.vivo.radio.tyoe.abbr= ,也就是删除等号后的 A,如果是其它内容,也请删除】同理,将 ro.vivo.op.entry 和 persist.vivo.network 置空然后将 ro.vivo.oem.name 改为其它机型,比如说 PD1709然后将 ro.vivo.product.version 和 ro.build.version.bbk 以及 ro.build.networkaccess.version 均改为 PD1709_A_8.12.1保存修改后的 system.prop,重启重启后应该可以在设置内看见 VoLTE 选项。6.3 锁频段并且禁用 MBN 自动更新#安装创建快捷方式,打开点击右上角的三个点,选择 也搜索系统应用搜索 network,选择 NetworkState 的活动列表点击第一条 MainActivity 的详情,然后打开,便进入了 Vivo 隐藏的网络设置菜单选择锁 Rat,改为 LTE Only,返回选择锁 Band,建议只选择你的运营商支持的 4G 频段,返回选择 MBN Test,点击 MBN 自动激活开关,选择关闭,手机会重启。重启后打开 MT 管理器,打开 /firmware/image/modem_pr/mbn_ota.txt 删除 mcfg_sw/generic/mbn_ota/ct/mcfg_sw.mbn 和 mcfg_sw/generic/mbn_ota/cu/mcfg_sw.mbn 这两行,保存用 MT 管理器 将/firmware/image/modem_pr/mcfg_sw/generic/mbn_ota/ct/mcfg_sw.mbn 和 /firmware/image/modem_pr/mcfg_sw/generic/mbn_ota/cu/mcfg_sw.mbn替换为 /firmware/image/modem_pr/mcfg_sw/generic/mbn_ota/cmcc/mcfg_sw.mbn,然后重启。6.4 使用 PDC 导入相应的配置#相关驱动和软件的安装请参考此教程
打开 Powershell 或者 cmd,依次输入如下内容并回车:
adb shell
suu
setprop sys.usb.config diag,serial_smd,rmnet_ipa,adb
输入完成后打开 PDC,应该可以识别到设备,如下图所示
先选中 OpenMkt-Commercial-CU 和 OpenMkt-Commercial-CT,鼠标右键点击 Deactive 然后分别选择 Sub0 和 Sub1,然后再次选中后点击 Remove 删除对应的配置。
再选中 Volte 开头的那一行或者 ROW 开头的那一行,右键点击 Active,选中电信和联通卡所在的卡槽(卡一为 Sub0 卡二为 Sub1)。然后点击下面的 Active。使得最后效果如上图所示即可。
此时应该可以正常获取到 VoLTE,你可以在拨号界面输入*#*#4838#*#* 以检查是否生效。
7. 终章 & 感想#不得不说,Vivo 的魔改确实够多,折腾这台手机的过程也令人头疼,但最终还是实现了 Root + VoLTE 的目标。
其实早在高中时,我就尝试过折腾这台手机,但当时 X9 Plus 仍在我父亲手里,没有机会深入研究。
后来,这台手机因 缺少电信 VoLTE 而退役,被我接手进行研究。
所幸,经过大学四年的积累,对相关技术有了一定了解,加上 各路大佬的帮助,终于让这个“老古董”成功 Root 了。
在此,特别感谢本文提到的各位大佬,
以及 @秋水 105 一直以来对 Vivo 设备的深入研究!
另外,Vivo X9 Plus 相关的修改已经上传至 GitHub:https://github.com/ShionKanagawa/pd1619_archive