设备:MEIZU 20 Pro(
meizu_20Pro_CN)
系统:Flyme 12.6.0.0A / Android 16
内核:5.15.119-android13-8-gdae8b7f03305-ab1764145455
实测成功:2026-10-23
验证:adb shell su -c id→uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
性质:临时 root。完整重启后失效,需要重新执行;不是解锁 BL,也不是永久 Root。
脱敏:见PRIVACY.md(已移除完整构建指纹、App 安装哈希、PID/UID 等设备相关字段)。
| 项目 | 内容 |
|---|---|
| 漏洞 | CVE-2026-43499(GhostLock) |
| 加载器 | GhostLock 1.2,versionCode 583 |
| 提权执行环境 | Shizuku 13.6.0(uid=2000 / shell,Seccomp=0) |
| Root 管理器 | KernelSU 3.3.0,late-load(ksud 3.3.0 (uapi: 2)) |
| 路由 | multicast_waiter |
kernel_phys_load |
0xA8000000(2818572288) |
kernel_phys_offset |
0x80000000(2147483648) |
| SELinux 写目标 | offset.selinux_enforcing = 47259896(0x2d120f8) |
/proc/iomem 内核代码 |
a8010000-aa7effff : Kernel code |
关键结论:必须走 Shizuku 执行,App 直接以 untrusted_app 运行时 W1 会失败;kernel_phys_load 必须是 0xA8000000,不是 0x80000000。
meizu20pro-temp-root/
├── README.md # 本文件
├── apks/
│ ├── GhostLock_1.2_583.apk
│ ├── KernelSU_v3.3.0_32601.apk
│ └── Shizuku_13.6.0.apk
├── configs/
│ ├── profile.conf # 实测成功的完整 profile(含 execution)
│ ├── profile.bin # 同一 profile 的 native 二进制形式
│ ├── profile-source.conf # 导入 App 用的源 profile
│ └── kernel-info.txt # uname / cmdline / selinux 记录
├── docs/
│ ├── root-guide.md # 完整操作步骤
│ ├── device-info.md # 设备、内核、地址、实测记录
│ ├── profile-extraction.md # 从官方 OTA 提取 profile 的过程
│ └── troubleshooting.md # 报错与排查
├── firmware/
│ ├── boot.img.zst # 从官方 12.6.0.0A OTA 提取的 boot
│ ├── vendor_boot.img.zst
│ ├── xbl_config.img
│ ├── manifest.bin # payload.bin 的 manifest
│ └── README.md # 解压说明
├── kits/
│ ├── mz20Pro临时v2.zip # 原始工具包(备用/参考)
│ ├── ghostlock.sh
│ ├── target_meizu20pro.h
│ └── symbols.h
├── logs/
│ ├── 2026-10-23-success.log # 成功日志(W1 → W2 → KernelSU ready)
│ ├── 2026-10-23-w1-failed-direct-0xa8000000.log
│ ├── 2026-10-23-w1-failed-shizuku-0x80000000.log
│ └── 2026-10-23-w1-failed-direct-0x80000000.log
├── scripts/
│ ├── start-shizuku.sh
│ ├── check-root.sh
│ ├── capture-diagnostics.sh
│ └── decompress-firmware.sh
├── tools/
│ └── ghostlock-extract # Linux x86_64 偏移提取器
├── THIRD_PARTY.md # 第三方组件与许可证
├── PRIVACY.md # 脱敏说明
├── .gitignore
└── SHA256SUMS # 文件校验和
校验完整性:
cd meizu20pro-temp-root
sha256sum -c SHA256SUMS-
安装三个 APK(都在
apks/):KernelSU_v3.3.0_32601.apk(只提供libksud.so,不要在里面点安装/修补 boot)GhostLock_1.2_583.apkShizuku_13.6.0.apk
-
手机连电脑,启动 Shizuku:
./scripts/start-shizuku.sh
或手动执行:
adb shell "$(adb shell pm path moe.shizuku.privileged.api | tr -d '\r' | sed 's/^package://' | sed 's#/base.apk$#/lib/arm64/libshizuku.so#')" -
打开 GhostLock:
- 高级选项 → 参数配置 → 加载配置 → 导入 offsets.conf
- 选择
configs/profile.conf - 确认
内核物理加载地址 = 2818572288、release 与手机内核完全一致。
-
回到首页:
- 打开 「通过 Shizuku 执行」
- 弹出授权时选 始终允许
- 确认状态为 「Shizuku 已就绪」
-
点 执行,等待日志走完:
W1: SELinux ... W2: cred ... child is root! KernelSU ready -
验证:
adb shell su -c id # uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
这是 late-load 的临时 root:
-
完整重启 → KernelSU 模块不再加载,
/system/bin/su消失,root 失效。 -
Shizuku 服务也会停止。
-
重新执行:
./scripts/start-shizuku.sh # 打开 GhostLock,确认「通过 Shizuku 执行」仍开启,点执行 ./scripts/check-root.sh -
/data/adb/modules里的模块不会丢,但需要重新 late-load 后才生效。 -
不要为了“清理”删除
/data/adb:里面有 ADB key 等数据;重启就足以移除活动 root。
- BL 仍然是锁定的,没有 fastboot 可恢复。不要刷任何分区、不要写
init_boot/boot。 - 不要在 KernelSU 里点“安装/修补 boot”。在锁 BL 的机器上这会写
init_boot,可能导致不可恢复的变砖。 - OTA 可能修复 CVE-2026-43499;升级系统后本 profile 也可能失效。需要保留就暂时别更新。
- 内核漏洞是竞态利用,失败时可能 panic/重启,属于正常失败模式;重试即可。
- 这是完整 root(KernelSU 上下文
u:r:ksu:s0),请只给可信应用授权;不使用时重启即可清除活动 root。 - 本资料仅用于你自己的设备。请勿用于未经授权的设备。
成功日志:
startup context uid=2000 ... attr=u:r:shell:s0 enforce=1
startup limits NoNewPrivs=0 Seccomp=0 Seccomp_filters=0
soc: qcom/other; kernel_phys_load=0xa8000000
W1: SELinux ... target=0xffffff802ad120f8
W2: cred ...
child is root!
handoff: root script ...
KernelSU ready
验证:
$ adb shell su -c id
uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
$ adb shell su -c "/data/adb/ksud -V"
ksud 3.3.0 (uapi: 2)
$ adb shell su -c "grep -i 'Kernel code' /proc/iomem"
a8010000-aa7effff : Kernel code