基于 GitHub Actions 的 Android 6.1 GKI 内核自动构建工作流,面向 sm8650 / pineapple 内核源码及其 Oplus GKI 配置。
工作流会拉取指定 ROM 的内核源码,按需集成 KernelSU、SUSFS、Droidspaces、LZ4、网络功能等组件,最终通过 AnyKernel3 打包为可刷写的 ZIP;也可自动创建 GitHub Release。
Warning
内核与模块源码、ROM、设备及固件版本必须相互匹配。刷写内核存在无法启动、数据丢失或其他不可预期风险,请自行确认兼容性并提前备份数据。
- 支持多个 ROM 内核源码:
- YAAP(Android 16 / 17)
- LineageOS(Android 16 / 17)
- FrierenKernel(Android 17,LineageOS 优化版)
- crDroid
- PixelOS
- DerpFest(Android 17)
- 支持多种 Root 内核方案:
- KernelSU Official
- KernelSU-Next
- BakaSU
- 上述方案的 SUSFS 变体(部分组合)
- 不集成 KernelSU
- 可选功能:
- LZ4 1.10.0 补丁(YAAP、FrierenKernel 不应用;LineageOS 与 DerpFest 使用 Android 6.1 兼容适配)
- BBR、ECN 与 FQ 队列调度
- IPSet 与 IPv6 NAT
- Droidspaces 容器支持
- Droidspaces Extended:额外启用虚拟 HCI、systemd-coredump 相关配置及 Lindroid EVDI DRM
- Docker 容器支持(单一开关,默认关闭;
⚠️ 部分机型有 bootloop 风险,详见patch/docker.config头注释)
- 使用 AOSP Clang 编译:Android 17 源码使用
clang-r596125,Android 16 源码使用clang-r563880c - 通过 AnyKernel3 输出可刷写 ZIP
- 支持上传 Actions Artifact,并可自动创建 GitHub Release
- Fork 本仓库。
- 打开仓库的 Actions 页面。
- Android 16 内核选择 Build Android16 Kernel;Android 17 内核选择 Build Android17 Kernel。
- 点击 Run workflow,按需填写构建参数。
- 等待工作流完成:
- 可在对应工作流运行页面的 Artifacts 下载 ZIP;
- 若启用了
Create GitHub Release,可在仓库的 Releases 页面下载 ZIP。
| 参数 | 说明 |
|---|---|
Build Android16 Kernel |
选择并构建 YAAP、LineageOS、Crdroid 或 PixelOS 内核;该工作流提供 LZ4、Droidspaces 等通用选项。 |
Build Android17 Kernel |
选择并构建 YAAP、DerpFest、LineageOS 或 FrierenKernel 内核;Android 17 工作流固定使用 clang-r596125,FrierenKernel 的可选增强仅保留 Droidspaces。 |
ROM Kernel Source Code / Android 17 Kernel Source Code |
在对应 Android 版本的工作流中选择内核源码;ROM 选项不带版本后缀,由工作流内部的 android_version 区分源码分支与工具链。 |
KernelSU Version |
选择 KernelSU 集成方案,或选择 None 构建非 KernelSU 内核。 |
Enable lz4 1.10.0 patch |
为非 YAAP/FrierenKernel 源码应用 LZ4 1.10.0 补丁;LineageOS 与 DerpFest 使用 Android 6.1 兼容适配,并在缺少厂商加速目录时回退到通用 C 解码。 |
Enable IPSET & IPv6_NAT |
启用 IPSet、IPv6 NAT 及相关 Netfilter 配置;FrierenKernel 忽略此选项。 |
Enable BBR & ECN |
启用 BBR、ECN 与 FQ;FrierenKernel 忽略此选项。 |
Droidspaces Container Support |
选择 none、standard 或 extended 容器支持。YAAP 不应用 Droidspaces 补丁。 |
Docker Container Support |
patch/docker.config 单一片段(namespaces/cgroup v2/USER_NS/overlay/btrfs),可能导致部分机型 bootloop。 |
Custom Kernel Name |
设置内核附加版本名。脚本会自动补上 - 前缀。 |
创建 GitHub Release? |
是否在构建成功后创建并上传 GitHub Release。 |
单独构建工作流使用以下上游与分支:
矩阵构建工作流构建 YAAP-17、FrierenKernel、crDroid 与 LineageOS;其中 YAAP-17 和 FrierenKernel 使用 Android 17 的 clang-r596125,其余源码使用 Android 16 的 clang-r563880c。YAAP-17 跳过 LZ4、Droidspaces 与通用性能优化,FrierenKernel 跳过 LZ4、BBR/ECN/FQ、IPSet/IPv6 NAT 和通用性能优化,但保留 Droidspaces 选项。
Android 17 使用的 Clang 工具链产物:clang-r596125.tar.gz
在 Build Android17 Kernel 中,DerpFest 与 LineageOS 可勾选 LZ4 补丁,并选择 standard 或 extended Droidspaces 支持。YAAP 会忽略这两个选项。FrierenKernel 保留所选 Root/SUSFS 方案,额外增强仅保留 Droidspaces;即使勾选,也会跳过 LZ4、BBR/ECN/FQ、IPSet/IPv6 NAT 及工作流追加的通用性能配置。
可选择下列 KernelSU 方案:
| 选项 | 内容 |
|---|---|
KernelSU-Official |
官方 KernelSU |
KernelSU-Official-susfs |
官方 KernelSU + SUSFS |
KernelSU-Next |
KernelSU-Next |
KernelSU-Next-susfs |
KernelSU-Next + SUSFS |
BakaSU |
BakaSU |
BakaSU-susfs |
BakaSU + SUSFS |
None |
不集成 KernelSU |
选择带 susfs 的方案时,工作流会拉取 simonpunk/susfs4ksu 的 gki-android14-6.1 分支,并启用 SUSFS 相关配置。
由于不同 ROM 源码的 include 上下文可能不同,工作流会通过内联 shell 逻辑补齐 fs/namespace.c 和 fs/super.c 所需的 SUSFS 声明,并仅接受已知的 include 冲突;出现其他补丁 reject 时会直接终止构建,避免生成不完整的 SUSFS 内核。
KernelSU-Official-susfs 通过统一入口 .github/scripts/integrate-susfs.sh 的 source/config/built 三个阶段完成集成及校验:检查并应用上游 KernelSU/10_enable_susfs_for_ksu.patch,补齐官方 KernelSU 侧的配置及接口,并记录两端源码提交。内核补丁在临时目录验证全部新增片段后才写回,仅适配已知的 fs/exec.c 参数/栈对象差异及 namespace/super 声明上下文;任何未解决的功能冲突都会终止构建并保留 reject。
仅官方 SUSFS 方案在合并 vendor 配置后核实最终 out/.config,编译后检查 fs/susfs.o、vmlinux、Image 与 System.map 的关键静态键符号,校验通过才打包,并上传 SUSFS_Evidence_*(最终配置及符号表)。上述检查不替代刷机后的运行验证。
刷入集成 KernelSU 的内核后,请安装与所选方案相对应的管理器:
| 模式 | 内容 |
|---|---|
none |
不添加 Droidspaces 相关功能。 |
standard |
启用 PID、IPC、挂载命名空间、SysV IPC、POSIX 消息队列、NTSync 等基础容器支持。 |
extended |
在标准支持基础上,额外启用虚拟 HCI、Lindroid EVDI DRM,以及相关扩展配置。 |
Note
Droidspaces 补丁支持 DerpFest 等非 YAAP 源码,不会应用于 YAAP。
单独构建的 ZIP 大致遵循:
<ROM 源码>-A<Android 版本>-<KSU 方案>[-dss|-dss-ext][-docker]-<UTC 月日>.zip
其中:
A16/A17:对应工作流的 Android 版本;Actions Artifact 与 Release 也会显示版本,便于区分同名 ROM。dss:Droidspaces Standarddss-ext:Droidspaces Extendeddocker:启用 Docker 容器支持
工作流使用的主要依赖如下:
sudo apt update
sudo apt install -y \
bc bison flex libssl-dev libelf-dev libdw-dev build-essential \
lz4 git python3 curl dwarves cpio gcc-aarch64-linux-gnu编译 Android 17 内核时使用 Release 中的 clang-r596125 工具链产物,Android 16 内核使用 clang-r563880c,并执行:
make O=out gki_defconfig vendor/pineapple_GKI.config vendor/oplus/pineapple_GKI.config
make -j"$(nproc)" O=out Image完整的源码拉取、补丁应用、KernelSU/SUSFS 集成与打包步骤,请以 .github/workflows/build-android16.yml(Android 16)和 .github/workflows/build-android17.yml(Android 17)为准;两者共享 .github/workflows/_build-kernel.yml 中的构建逻辑。
- AnyKernel3
- KernelSU
- KernelSU-Next
- BakaSU
- SUSFS4KSU
- 各 ROM、内核源码及补丁项目的维护者