xingguangcuican6666/ABK_CVE_Fix_Module
GitHub: xingguangcuican6666/ABK_CVE_Fix_Module
该工具在 ABK 构建流程中自动将 Android 安全公告的 kernel CVE 官方修复补丁反向移植到 GKI kernel 源码树,确保自编译内核获得最新的安全修复。
Stars: 0 | Forks: 0
# ABK CVE Patcher
ABK 外部模块,可在 ABK 构建时,将来自 Android
安全公告(2025 年 12 月 – 2026 年 7 月)的 kernel CVE 修复反向移植到 GKI kernel 源码树中。
这些补丁提取自匹配的 AOSP common kernel 分支
(`android14-6.1-2026-06`),因此它们是 Google 为此 kernel 系列发布的确切修复方案
—— 而非手动编写的近似补丁。
## 用法
将该模块添加到 ABK 构建中(“自定义外部模块”):
App / 目录:
```
https://github.com/xingguangcuican6666/ABK_CVE_Fix_Module.git
```
GitHub Actions 输入 (`custom_external_modules`):
```
module:https://github.com/xingguangcuican6666/ABK_CVE_Fix_Module.git;after_patch
```
建议使用 `after_patch` 阶段:它在 ABK 的内置源码集成
(SUSFS、ZRAM、KernelSU 等)之后并在编译之前运行。`before_build`
也可以 —— 该 patcher 具有幂等性,因此甚至可以在两个阶段都运行。
## 支持的 kernel 系列
| 系列 | 源码分支 | 状态 |
| --- | --- | --- |
| `android14-6.1` | `aosp/android14-6.1-2026-06` | 支持 |
其他 kernel 系列(5.10、5.15、6.6、6.12)的构建会被检测到并跳过,
同时发出警告 —— 对于没有对应补丁的构建,该模块绝不会导致其失败。要添加
新的系列,请参阅 [docs/development.md](docs/development.md)。
## 行为机制
对于当前激活的 kernel 系列,`setup.sh` 会按顺序应用位于
`patches//series.tsv` 中的补丁系列。每个补丁都会:
- 当源码树已包含该修复时跳过 —— 由每个补丁的 guard 行加上 `git apply --reverse --check` 检测,因此更新的 sublevel 和重复运行都是安全的;
- 使用 `git apply` 应用,在 sublevel 之间存在微小上下文差异时回退到 three-way merge,并在之后断言 guard 行;
- 否则报告为失败,这将中止构建(参见下方的选项)。
已针对干净的 `android14-6.1` (6.1.118) 检出进行了验证:首次运行
应用了缺失的补丁,第二次运行报告 13/13 已应用。
## 选项
可以在工作流的 fork 中设置为环境变量,或者从
更早运行的其他外部模块中导出:
| 变量 | 含义 |
| --- | --- |
| `ABK_CVE_SKIP` | 要跳过的逗号分隔 CVE ID,例如 `CVE-2026-0038` |
| `ABK_CVE_ONLY` | 仅应用列出的 CVE ID |
| `ABK_CVE_NONFATAL` | `true` = 记录补丁失败日志,但不中止构建 |
## 覆盖的 CVE (android14-6.1)
13 个补丁覆盖了 14 个 CVE(F2FS、af_unix、EPoll、XFRM、vsock、TLS、
KVM/pKVM、Hypervisor)。完整表格请参见 [CVES.md](CVES.md),其中还包括
故意**未**覆盖的安全公告 CVE:不适用于 6.1 kernel 系列的修复、不属于 GKI 源码树
组成部分的 Arm Mali / Qualcomm 供应商组件,以及其修复尚未在上游
发布的 CVE。
## 许可证
模块脚本采用 GPL-3.0 许可证。`patches/` 下的补丁提取自
Linux kernel / AOSP common kernel,采用 GPL-2.0 许可证。
标签:Android内核, Cutter, Git, GKI, 漏洞补丁, 系统编译, 网络安全研究