root@x200pro:~/research — zsh — 120×40
./x200pro-research --status --verbose
RESEARCHED BY CHARMING × DEEPSEEK HARNESS 2026.11

X200 PRO ROOT 研究日志

DEVICE vivo V2405A / PD2405  |  KERNEL 6.6.127-android15-8-g3b723d0e8507-abogki558077879-4k  |  OS OriginOS 17.2.12.4.W10 (Android 17)
ROOT ACHIEVED ONCE SUCCESS RATE 9% BL STILL LOCKED

核心指标 // core metrics

总尝试次数
13
成功次数
1
成功率
9%
BL 状态
GREEN
已验证漏洞
2

攻击面封堵情况 // attack surface

OEM 解锁
0% 封死
BROM 命令
0% 封死
分区读取
0% 封死
SELinux 绕过
5% 封死
OTA 解包
10% 封死
内核漏洞
9% 可用
API 逆向
100% 成功

操作时间线 // timeline

2026-11-09 11:23 — 起点
设备指纹采集
首次连接 X200 Pro,采集完整设备信息。发现 verifiedbootstate=green、 oem_unlock_supported=(空)。确认 BL 锁定且官方解锁通道不存在。
2026-11-09 11:24 — 路线 A 失败
fastboot flashing unlock 测试
命令返回 FAILED (remote: 'unknown command')。 确认 vivo 的 LK 里裁掉了该命令。
2026-11-09 14:00 — 备份
数据备份(257GB 照片 + 录音)
写入自定义进度条脚本 pull_with_progress.py, 发现 .thumbnails 缓存占 93% 文件数, 改用排除策略后从 869 分钟降到约 10 分钟。 最终备份 DCIM 41,078 个文件 / 256GB。
2026-11-09 15:00 — BROM 探测
BROM 模式突破进入
编写 brom_probe.py,成功检测到:
VID=0x0e8d PID=0x2000  Preloader
VID=0x0e8d PID=0x201c  BROM  ser=10AEAD03DU000U4
BROM 通道存在,且能通讯。
2026-11-09 15:05 — 路线 B 失败
BROM 命令被全部拒绝
GET_HW_CODE      → FAILunknown command
GET_BROM_VERSION → FAILunknown command
SEND_DA          → FAILunknown command
GET_TARGET_CONFIG→ FAILunknown command
vivo 删除了 BROM 命令处理分支,只保留售后专用通道。
2026-11-09 15:10 — 路线 C 失败
508 个服务全部 SELinux 拒绝
枚举 service list 得到 508 个服务, 发现可疑目标 vendor.vivo.hardware.omnipotentservice(system:system,权限匹配 seccfg)。 但 service call SurfaceFlinger 都返回 Operation not permitted。shell 域被彻底隔离。
2026-11-09 15:16 — 转折点
发现 CVE-2026-98260
搜索到 InfinityLock 和 janewas 的研究。 关键发现:
CVE 修复版本: 6.6.158+
你的内核:     6.6.127  ← 未修复,漏洞存在
利用无需解锁 BL,纯内存操作。
2026-11-09 15:20 — 环境搭建
编译 exploit 工具链
下载 Android NDK r29 (1.0GB) + JDK 17 (178MB)。 编译成功三个核心二进制:
ic98260   327K  ← 漏洞利用主体
ksupatch  416K  ← KernelSU 符号绑定
insmodf   407K  ← 模块加载器
ksud      4.8M  ← KernelSU 守护
2026-11-09 15:43 — 内核匹配验证
ids 模式测试通过
[+] kernel 6.6.127-...-g3b723d0e8507-abogki558077879-4k
    -> target 6.6.127-...-g3b723d0e8507
[ids] page_alloc=275 page_free=273 pairs=73
内核前缀匹配成功,tracefs 权限可用。
2026-11-09 15:44 — 地址泄漏
leak 模式成功
[base] made=512 best=0xffffff7f80000000 count=481
[cred] R=0xffffff8006310780 site_low=0xe5754 recs=1
       task=0xffffff800a1012c0 task_recs=1
KASLR base 和 cred/task 地址全部泄漏成功。
2026-11-09 15:46:42 — ★ 突破
首次成功获得 uid=0
child: [child3] uid=0 euid=0
child: [child] already euid=0: skipping setuid/setresgid (vr.ko bypass)
child: [child] resuid=0/0/0 setuid_ret=0 errno=0
[+] child report uid=0 euid=0 setuid(0)=0 errno=0 resuid=0/0/0

uid=0(root) gid=0(root) groups=0(root),...
u:r:shell:s0 ROOT_SHELL_OK
ROOT ACHIEVED NO REBOOT vr.ko BYPASSED

关键数据:pairs=73、 slide=0x1da7400000、 5 次 plant 全部 hit(12ms/11ms/47ms/48ms/12ms)
2026-11-09 15:49 ~ 16:05 — 反复失败
后续 5 次尝试全部失败
规律:pairs=388 时必定失败。 失败在第 2 或第 3 步 burst hit=0 after 15000ms。 每次失败留下 parked 僵尸进程,必须重启清理。
2026-11-09 16:10 — 成果归档
生成备份包
创建 X200Pro_ROOT_备份/,包含: payload/(4个二进制)、 scripts/root_x200pro.sh(一键脚本)、 source/(3个研究仓库)、 logs/(成功记录)。
2026-11-10 00:32 — 银行问题
企业银行账号迁移(非技术)
发现 X200 Pro 上登着他人的企业银行账号,U盾主人在服役。 确认 U 盾在手后,用户自行完成账号迁移到另一台 vivo。 此后 X200 Pro 可自由刷机。
2026-11-10 00:33 ~ 01:16 — 第 7-13 次尝试
尝试各种优化,全部失败
测试内容:
1. pairs=73 最佳窗口         → ❌ 第3步失败
2. 重启后立即跑               → ❌ 第3步失败
3. 5xx/4805 个 timer 撑 partial → ❌ 更差
4. shell 模式                → ❌ 第2步就失败
5. 省电模式                  → ❌ 无改善
结论:外部调理全部无效,问题在 exploit 内部。
2026-11-10 01:20 — 新路线
突破:获取官方固件
逆向 Downgrader.apk 源码,发现:
凭据来源: sys.vivo.dota_info0 ~ info5
API 端点: https://sysupgrade.vivo.com.cn/degrade/getDegradePkg
请求加密: RSA-PKCS1
响应解密: AES-128-CBC, key=181120800577d693a5746b4cf212c068
从设备读取凭据成功(491 字符),调用 API 拿到官方降级包直链。
2026-11-10 01:23 — 下载完成
11.46GB 官方固件下载完毕
版本:     PD2405_A_16.1.24.23.W10
系统:     OriginOS 6 / Android 16
大小:     11,464,439,758 字节
SHA256:   cdaf8f63...6bdeb225  ✅ 完全匹配
防回滚:   anti-rollback-level = 0
2026-11-10 01:25 — 解析成功
payload.bin 结构解析
发现 header 是大端序(非标准 AOSP 的小端):
magic:            CrAU
version (BE):     2
manifest_size(BE): 31,896
manifest 起始:     offset 20(实际 23)
解析出 38 个分区:apusys, boot, ccu, init_boot, vbmeta, system, vendor...

boot 分区:96MB,3 个 operation,全部 type=14
2026-11-10 01:29 — 解密失败
boot 数据完全加密
熵分析结果:
数据熵: 7.999 bits/byte   ← 8.0 = 完全随机 = 加密
前64字节: e9c5b21155407a47b5e2f86bc93846d354e749313f173...
所有标准解压测试失败:
zlib     → Error -3 invalid
lzma     → Input format not supported
bz2      → Invalid data stream
brotli   → decoder failed
zstd     → Unknown frame descriptor
确认:type=14 是 vivo 私有加密类型

AOSP 官方只定义 0-13,vivo 自己加了 14。解密密钥在 /system/bin/update_engine 里,但该文件 SELinux 拒绝访问(连 stat 都不行)。

vivo 五层防护架构 // security layers

┌─────────────────────────────────────────────────────────┐
│  Layer 5 │ 应用层反 root                                  │
│          │ vr.ko + bbklog_enable + logd_kernel 内核模块   │
│          │ 状态: ✓ 已被 CVE-98260 绕过(vr de-tag 成功)  │
├─────────────────────────────────────────────────────────┤
│  Layer 4 │ SELinux 极限加固                               │
│          │ shell 域: service call 全拒 / perf 全拒          │
│          │ tracefs 只读 / kallsyms 隐藏 / slab 隐藏        │
│          │ 状态: ✗ 未突破                              │
├─────────────────────────────────────────────────────────┤
│  Layer 3 │ AVB 2.0 + 5 条独立 vbmeta 链                   │
│          │ main / system / vendor / oem / vgc              │
│          │ 状态: ✗ 未突破                              │
├─────────────────────────────────────────────────────────┤
│  Layer 2 │ MTK BROM 命令裁剪                              │
│          │ 只留售后通道,标准命令返回 FAILunknown command   │
│          │ 状态: △ 能进但无命令可用                    │
├─────────────────────────────────────────────────────────┤
│  Layer 1 │ OEM 解锁开关                                   │
│          │ ro.oem_unlock_supported = 空(根本不存在)      │
│          │ 状态: ✗ 不存在                              │
└─────────────────────────────────────────────────────────┘

完整尝试记录 // attempt log

#时间条件pairs结果失败位置
111-09 15:46初始状态73✅ SUCCESS uid=0—
211-09 15:49未重启?❌hit=0
311-09 15:55重启后388❌第3步
411-09 15:59重启后388❌第1步
511-09 16:01重启后388❌第2步
611-09 16:05立即跑388❌第3步
711-10 00:33pairs=7369❌第3步
811-10 00:37重启后立即388❌第3步
911-10 00:44负载低73❌第3步
1011-10 00:51shell 模式73❌第2步
1111-10 00:56最佳条件73❌第3步
1211-10 01:08500 timer73❌第2步
1311-10 01:134805 timer—❌第1步
关键发现
唯一成功的那次,5 次 plant 全部命中(12-48ms)。之后所有尝试第 3 步必定超时(15000ms)。 怀疑:vivo 防护在首次成功后加强,或 slab 初始状态不可逆。

第三方工具包分析 // toolkit analysis

月虹提权 + 文件

vivo/VIVO X200/   6.6.30 / 6.6.57 / 6.6.89  (9 个内核版本)
vivo/IQOO 13/     6.6.30 / 6.6.57 / 6.6.89
vivo/VIVO Pad5 Pro/ 6.6.127-g24559e55e8d4

你的内核: 6.6.127-g3b723d0e8507-abogki558077879  ← 不在列表中

白鹿提权助手 1.0.3

libic98260.so         → 只支持 6.1.145-android14
libic98260_iqoo12.so  → 只支持 6.1.145-android14
libcve98260_ksu.so    → 无内核字符串
libghostlock_*.so     → 其他机型

支持 IC_ALLOW_ANY_KERNEL=1 强制跳过检查(但内部偏移不匹配,风险高)

root 管理器(需先有 root)

KernelSU.apk                    13M
KernelSU-Next_v3.4.2.apk        17M
SukiSU_v4.3.0.apk               18M
FinaSU_v1.3.2.apk               27M
BakaSU.apk                      9.7M

文件统计 // file inventory

总文件数
111
总大小
6.8 MB
源码仓库
3
二进制
4
文档
8
X200Pro_ROOT_备份/ ├── README.md 8.0K ✓ 使用说明 ├── 技术分析.md 24K ✓ CVE 漏洞完整分析 ├── 攻击面分析.md 13K ✓ vivo 五层防护 │ ├── firmware_analysis/ ✓ 官方固件逆向 │ ├── README.md 1.5K │ ├── vivo_degrade_query.py 4.8K API 逆向脚本 │ ├── payload_extract3.py 8.0K payload 解析器 │ └── degrade_pkg.json 904B 固件信息 │ ├── payload/ ✓ Exploit 二进制 │ ├── ic98260 328K 漏洞利用主体 │ ├── ksupatch 420K KernelSU 符号绑定 │ ├── insmodf 408K 模块加载器 │ └── ksud 4.8M KernelSU 守护 │ ├── scripts/ ✓ 自动化脚本 │ └── root_x200pro.sh 8.0K 一键 root │ ├── logs/ ✓ 运行记录 │ ├── device_state.txt 229B │ └── success_2026-11-09.txt 1.7K 成功记录 │ └── source/ ✓ 研究源码 (816K) ├── cve-2026-98260-vivo-gki-research/ 19篇技术文档 ├── infinitylock-app/ Android App └── pd2454-kernelsu-runner/ Exploit 源码

关键数据速查 // quick reference

项目值
设备型号V2405A / PD2405 / PD2405M
SoCMT6991 (Dimensity 9400)
内核6.6.127-android15-8-g3b723d0e8507-abogki558077879-4k
系统PD2405B_A_17.2.12.4.W10 (OriginOS 17.2 / Android 17)
BL 状态green(从未解锁)
成功时的 slide0x1da7400000
成功时的 cred 地址0xffffff8006310780
成功时的 pairs73
失败时的 pairs388
固件 SHA256cdaf8f63435fdb0dd20a16a11f87a2682f137de09b6dd327f75dd19e6bdeb225
vivo API 端点https://sysupgrade.vivo.com.cn/degrade/getDegradePkg
响应解密 Key181120800577d693a5746b4cf212c068
凭据来源sys.vivo.dota_info0 ~ info5

进度更新 // changelog

有新进展时,在这里追加记录。格式:日期 — 标题 — 详情

2026-11-10 01:30 — v1.0 初始版本
完成 X200 Pro 完整攻击面分析。验证 CVE-2026-98260 有效(1 次成功)。逆向 vivo 官方固件 API, 下载并验证 11.46GB 固件包。确认 OTA payload 加密,无法提取 boot.img。
待更新...
当你有了新进展(例如:找到解密方法、社区发布了新工具、成功提升成功率), 把内容发给我,我会追加到这里。

下一步方向 // next steps

方向难度说明
逆向 update_engine 极高 需要读取被 SELinux 保护的二进制,找到 type=14 的解密密钥
提升 CVE-98260 成功率 高 修改 timer.c 的 SPRAY_POST 等参数,重编译测试
等社区适配 低 关注 g3b723d0e8507 内核的 payload 出现
换设备 低 二手 Pixel 800-1500 元,官方支持解锁