针对 Sharp AQUOS R7 的设备专用 Linux 5.10 版 GhostLock(CVE-2026-43499)移植。已验证的目标是运行 Android 14 构建 03.00.11、内核为 5.10.237-android12-9-00013-gd09ef2e980e0-ab13968955(SM8450)的 AQUOS R7(Mineva,SGA202SH/A202SH)。此前已验证的目标,即构建 03.00.06 / 内核 5.10.218-android12-9-00041-g124993efd06e-ab12385094,保留在 git 标签 v1.0-030006 中。
这是 aquos-r6-ghostlock(AQUOS R6,内核 5.4.61-qgki)的移植版本。每一个常量——KASLR 处理、selinux_state 泄漏窗口、task/cred 偏移、零 BSS 暂存区域——都针对 R7 内核重新推导并验证;R6 的栈布局仅作为起始参考。
成功运行后,你将获得 UID 0 权限、SELinux 处于 permissive 模式,并启动一个小型 su 命令守护进程。它不会授予完整的 Linux 能力集,且更改不会持久化:重启后会恢复原厂内核状态。
需要面向 aarch64-linux-android29 的 Android NDK clang(已使用 NDK r30 测试):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
可复现性(03.00.11 校准):使用上述工具链构建的此源码,与设备端 03.00.11 测试中使用的二进制文件逐字节一致(MD5 25fc1d5d0e92d36c56f00f983a49667d)。发布资产正是该二进制文件经 llvm-strip 处理后的形式(598,672 字节,SHA-256 5c413a80e9fcc41032412f4e0e5183bc723dde9a2e0ace5a6d9c79681b04b9cd)。关于 03.00.06 构建,请参见标签 v1.0-030006(未剥离的 MD5 fa896ebd361519766b46cc2bab70dea2)。
推送二进制文件(发布资产或自行构建的版本)并运行一次:
adb push ghostlock510 /data/local/tmp/ghostlock510
adb shell chmod 755 /data/local/tmp/ghostlock510
adb shell "setsid nohup /data/local/tmp/ghostlock510 --use-setattr --stamp3 --perm-pc --cred-swap --install-su --stamp-off 0xf0 --log /data/local/tmp/ghostlock510.log </dev/null >/dev/null 2>&1 &"
使用已安装的 su 客户端执行 root 命令(需要完整路径):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
su 通过回环 TCP(端口 9999)与漏洞利用程序的守护进程通信;不会附加持久化的 root shell。命令基于行处理,在 su 内嵌套 su 无法工作。交互式程序(vi、top 等)需要 PTY;在守护进程之上实现交互式 su 模式留作未来工作。
在此确切构建上测得(参见 VERIFICATION.md):
因此:重启,运行一次 ghostlock510,并在该会话存活期间不要再次运行它。重启即是清理路径。
大型外部输入被有意排除在此仓库之外:
vmlinux/System.map;与设备上实际运行的内核的字节级一致性通过其 boot_b 镜像验证(全部 23 个 PT_LOAD 段,逐段比较)。CVE 修复(5.10.y 回溯移植 2026-07-21)晚于此代码树(HEAD 2025-08-20),且 kernel/futex/core.c 与 03.00.06 构建的 blob 完全相同——该漏洞仍然存在。v1.0-030006):偏移量来自 Android CI 内核构建 12385094,通过设备 boot_a 镜像进行字节验证。--stamp3 / --use-setattr 方法
受其启发(该仓库未声明许可证)。