
Android kernel exploit research package for CVE-2026-43499, containing popsicle exploit source, embedded su payload, root bridge helper, and reproducible build artifacts.
生成日期:2026-08-08
本目录已经整理出当前项目中能够找回的完整 popsicle 源码树、必要头文件、嵌入式 su 载荷、生产二进制和运行脚本。
必须区分:
source-final-correspondence-20260808/
├─ source/
│ ├─ exploit/
│ │ ├─ popsicle/
│ │ │ ├─ main.c
│ │ │ ├─ util.c
│ │ │ ├─ slide.c
│ │ │ ├─ fops.c
│ │ │ ├─ pipe.c
│ │ │ ├─ preload.c
│ │ │ ├─ root_bridge_helper.c
│ │ │ ├─ su_blob.S
│ │ │ ├─ su_daemon.c
│ │ │ ├─ common.h / offset.h / target.h
│ │ │ ├─ kernelsnitch/
│ │ │ └─ build/embed/su_daemon_aarch64_pie
│ │ └─ ghostlock-oneplus/kernelsnitch/
│ └─ target-files/popsicle-target.h
├─ embed/su_daemon_aarch64_pie
├─ artifacts/production/
├─ runtime/
├─ review-build/
├─ rebuild-current-source.ps1
├─ source-files.sha256
├─ binary-function-size-diff.md
├─ binary-function-size-diff.csv
└─ manifest.json
生产文件:
artifacts/production/t807d-popsicle-r562-show-callback-canonical-20260804.so
SHA-256:
B6DED21F90096A2FA2567807F79E7E8CCFDF9802DAF4628277A333DD8FE7DB71
主要源码输入:
生产文件:
artifacts/production/t807d-root-bridge-helper-r557-show-verify-callback-20260804
SHA-256:
F7FF4C293902993183F98A8D314FA2ECD012A72A36F287A361C4503844EAAB91
主要源码输入:
| 生产对象 | 对应源码 |
|---|---|
| root bridge、marker、cred、SELinux、KSU 辅助逻辑 | source/exploit/popsicle/root_bridge_helper.c |
| 嵌入 su 边界符号 | source/exploit/popsicle/su_blob.S |
| su 内容 | source/exploit/popsicle/build/embed/su_daemon_aarch64_pie |
| 公共定义和目标配置 | 同 r562 |
已补齐两个容易被漏掉的相对路径依赖。
第一,target.h 引用:
#include "../../target-files/popsicle-target.h"
因此源码必须保持:
source/exploit/popsicle/target.h
source/target-files/popsicle-target.h
第二,popsicle/kernelsnitch/utils.h 和 kernelsnitch.h 继续引用:
../../ghostlock-oneplus/kernelsnitch/...
因此 source/exploit/ghostlock-oneplus/kernelsnitch/ 也必须保留。
只复制 source/popsicle 会得到“看起来齐全、实际无法编译”的不完整快照。本恢复包已经按原始相对路径布局整理。
工具链:
NDK: D:Android
dk 29android-ndk-r29 API: 35 ABI: AArch64
执行:
powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .
ebuild-current-source.ps1
当前源码重编译结果:
| 文件 | 大小 | SHA-256 |
|---|---|---|
| review-build/rebuild-current-source.so | 139600 | D5C8CF6D3A0A223F0BB3319FFAE926EF3EDF56DEF520B0A99CF7526B4437EC1A |
| review-build/rebuild-current-source-helper | 75008 | 025FD4BEB793227D9595D5739483798BBB8CDB94B69734399BE4C9F329032D8F |
这证明源码树可编译,但不能替换 artifacts/production 中的已验证生产二进制。
时间线证据:
至少 common.h、pipe.c、preload.c、root_bridge_helper.c、util.c 的当前内容是在两份生产二进制生成之后才落盘或修改的。
项目中也没有找到:
所以从现有材料出发,能做到的是恢复全部可用源码并定位差异,不能把生产 ELF 反向变成当时逐字节的 C 源码。
binary-function-size-diff.md 给出了生产文件与当前源码重编译文件的函数尺寸差异。
r562 SO 的关键差异:
r557 helper 的关键差异:
这些差异与 Round592 源码审查记录的修复方向一致:环境变量路径复制、独立 linker symbol 地址差、分配失败处理、reclaim 清理等。
完整源码哈希在 source-files.sha256。生产产物、脚本、嵌入文件和审查构建结果的哈希在 manifest.json。
本次测试入口:
run_t807_jailbreak.cmd
对应 PowerShell:
run_t807_jailbreak.ps1
它固定引用:
test-payload-current-source/
其中 SO 和 helper 是刚刚由 source/ 重编译得到的产物,不是 production/ 中的 r562/r557 回滚文件。脚本设置 ForceCurrentSourceTest=true,因此即使设备之前已经处于 KernelSU root 状态,也会继续推送并测试本次新产物。
本次编译的三个完整输出:
| 文件 | SHA-256 |
|---|---|
| review-build/rebuild-current-source.so | D5C8CF6D3A0A223F0BB3319FFAE926EF3EDF56DEF520B0A99CF7526B4437EC1A |
| review-build/rebuild-current-source-helper | 025FD4BEB793227D9595D5739483798BBB8CDB94B69734399BE4C9F329032D8F |
| review-build/su_daemon-rebuild | D57A7F657C8DD931D2C6A82306FA097AAD14AB11E5B773F1689DD03026A880FB |
日志输出到 logs-current-source/。
| 生产对象 | 对应源码 |
|---|
| SO 主流程 | source/exploit/popsicle/main.c |
| 通用内核和用户态工具 | source/exploit/popsicle/util.c |
| slide 和地址定位 | source/exploit/popsicle/slide.c |
| fops 和 pselect 触发路径 | source/exploit/popsicle/fops.c |
| pipe、reclaim、direct write | source/exploit/popsicle/pipe.c |
| LD_PRELOAD 入口和 su 文件写入 | source/exploit/popsicle/preload.c |
| 嵌入 su 边界符号 | source/exploit/popsicle/su_blob.S |
| 公共定义 | common.h、offset.h、target.h |
| 目标配置 | source/target-files/popsicle-target.h |
| KernelSnitch 头 | source/exploit/popsicle/kernelsnitch/ 与 source/exploit/ghostlock-oneplus/kernelsnitch/ |
| 嵌入文件内容 | source/exploit/popsicle/build/embed/su_daemon_aarch64_pie |
| 对象 | 文件时间 |
|---|
| r557 helper 生产文件 | 2026-08-04 22:47:29 |
| r562 SO 生产文件 | 2026-08-04 22:59:05 |
| main.c | 2026-08-04 22:22:16 |
| slide.c | 2026-08-04 21:54:58 |
| common.h | 2026-08-05 08:07:26 |
| pipe.c | 2026-08-05 08:07:34 |
| preload.c | 2026-08-05 08:07:30 |
| root_bridge_helper.c | 2026-08-05 08:10:10 |
| util.c | 2026-08-05 08:14:57 |