Skip to content

uernn/ABK

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,755 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABK

AnyBase Kernel

用于构建、分发和管理 GKI KernelSU / SUSFS 内核的自动化仓库与 Android 应用。

Release ABK App KernelSU SUSFS

简体中文 | English

项目定位

ABK 的目标是把手动 fork、启用 Actions、填写 GKI 参数、触发构建、下载产物和刷写安装这些步骤收敛到一个更顺手的流程里。

仓库侧提供 GitHub Actions 构建工作流;App 侧提供 Root 检查、GitHub 授权、fork 检查/同步、构建提交、进度通知、产物下载和刷写/安装入口。

快速入口

支持范围

  • Android 12 / 13 / 14 / 15 / 16 GKI 构建流程。
  • KernelSU Official、KernelSU Next、SukiSU、ReSukiSU 构建分支。
  • SUSFS、ZRAM、BBG、KPM、Re-Kernel、一加 8E 支持等可选功能。
  • AnyKernel3 包、kernel img、KernelSU 管理器和 SUSFS 模块产物整理。

实际可用性取决于目标设备、内核版本、上游分支状态和当前补丁兼容性。

使用方式

  1. Fork 本仓库到自己的 GitHub 账号。
  2. 首次进入 fork 仓库的 Actions 页面并启用工作流。
  3. 使用 ABK App 登录 GitHub,授权后让 App 检查 fork 与上游同步状态。
  4. 在 App 的“构建内核”页确认或调整设备推荐参数。
  5. 提交构建后等待通知栏和 App 内进度更新。
  6. 构建完成后下载需要的 img、AnyKernel3、管理器或 SUSFS 模块。
  7. 在确认风险后按需刷写 boot 镜像或安装模块/APK。

也可以直接在 GitHub Actions 中手动运行对应工作流。

风险提示

🧪 虚拟化支持(实验性)

实验性功能: 不保证所有 GKI 版本均能成功构建或启动,刷入前请务必备份 Boot 镜像。

TIPS: 工作流使用的是上游虚拟化补丁,如有更好的补丁可以提个 issues。此外由于存在三个补丁,或许需要反复试验以确保其中一个适配你的机型,请根据他人或实际经验来选择。

虚拟化支持会为内核启用 Linux 容器运行所需的 IPC、PID namespace、SysV IPC、POSIX mqueue 等能力,便于在 Android 上运行完整 Linux 环境、搭建开发环境或运行服务。

支持范围: 5.10 / 5.15 / 6.1 / 6.6 / 6.12

使用方式: 在手动触发构建时,选择 虚拟化支持 选项:

选项 说明
off 关闭(默认)
678 使用 6_7_8 槽位补丁(推荐)
123 使用 1_2_3 槽位补丁(备用)
345 使用 3_4_5 槽位补丁(备用)

提示: 6.12 内核仅有一个补丁,选择任意非关闭选项即可。

如果构建失败或刷入后 bootloop: 可尝试切换到其他槽位补丁(如 678 → 123 或 345),不同内核子版本可能适用不同的补丁。

  • 刷写内核属于高风险操作,可能导致无法开机、数据损坏或需要恢复出厂 boot 镜像。
  • 不建议在不确定设备分区、内核版本、Android 版本和安全补丁级别时强行构建或刷写。
  • 一加 ColorOS 14 / 15 等设备兼容性仍需自行验证,异常情况下可能需要清除数据。
  • 如果构建失败,优先检查 SukiSU / SUSFS / ReSukiSU 等上游分支是否刚更新且尚未互相适配。
  • 自定义外部模块会执行第三方仓库根目录的 setup.sh。启用前请审查脚本内容和来源可信度,避免执行未知或恶意代码。
  • ABK 仅面向合法授权设备和合法研究/自用场景。禁止用于灰黑产、未授权访问、绕过风控、作弊、窃取数据、破坏服务或其他违法违规用途。

自定义提交固定

config/config 可用于固定 SUSFS 和 SukiSU 的 commit,适合在上游最新提交临时不可用时回退到稳定版本。

custom=true

gki-android12-5.10=
gki-android13-5.15=
gki-android14-6.1=
gki-android15-6.6=

sukisu=

留空表示使用对应分支的最新提交。

Stock Config

如果需要让构建产物中的 /proc/config.gz 更接近官方内核配置,可以将设备官方内核导出的配置解压并命名为 stock_defconfig,提交到 config/ 目录。

构建流程会自动检测并应用该文件;不存在时会跳过,不需要额外开关。

自定义外部模块开发

自定义外部模块用于在 ABK 内置补丁流程之外插入额外仓库逻辑。该功能默认关闭;在 App 或 GitHub Actions 中启用后,工作流会按配置 clone 外部仓库并执行仓库根目录的 setup.sh

工作流输入格式:

https://github.com/user/module-a;after_patch|https://github.com/user/module-b;before_build
  • | 分隔多个模块。
  • 每个模块用 链接;阶段 表示。
  • 支持阶段:
    • after_patch:在内置补丁、ZRAM、BBG、DDK、Re-Kernel 等源码集成之后执行。
    • before_build:在内核名称、构建时间等最终配置之后,正式编译前执行。
  • 工作流会将模块 clone 到 $GITHUB_WORKSPACE/custom_external_module_XX-name,与 $KERNEL_ROOTsusfs4ksukernel_patches 等目录同级。
  • 执行 setup.sh 时,当前工作目录是模块仓库根目录。
  • 脚本可使用 GitHub Actions 标准环境变量,以及 ABK 在前序步骤写入 $GITHUB_ENV 的变量。GitHub Actions 表达式(如 ${{ inputs.xxx }})不会在模块脚本中直接展开。

两个阶段都可用的常用变量:

变量 含义
GITHUB_WORKSPACE 当前 Actions 工作区,也是 ABK 仓库根目录。
CONFIG 构建组合名,格式为 android版本-内核版本-子版本,例如 android14-6.1-162
KERNEL_ROOT 内核源码同步目录,例如 $GITHUB_WORKSPACE/$CONFIG
DEFCONFIG 当前 GKI defconfig 路径:$KERNEL_ROOT/common/arch/arm64/configs/gki_defconfig
ZZH_PATCHES ABK 仓库根目录,等同 $GITHUB_WORKSPACE
SUSFS4KSU SUSFS 仓库预期路径;只有启用 SUSFS 时目录一定存在。
KERNEL_PATCHES WildKernels/kernel_patches 克隆目录。
SUKISU_PATCHES ShirkNeko/SukiSU_patch 克隆目录。
ANYKERNEL3 AnyKernel3 克隆目录。
ACTION_BUILD Numbersf/Action-Build 克隆目录。
CUSTOM_EXTERNAL_MODULES_MANIFEST 已解析的自定义模块清单 TSV 文件。
CUSTOM_EXTERNAL_MODULE_STAGE 当前执行阶段,值为 after_patchbefore_build
REPO Android repo 工具路径。
REMOTE_BRANCH kernel/common 目标分支查询结果。
ACTUAL_SUBLEVEL 从内核 Makefile 提取到的实际子版本号。
BRANCH KernelSU setup 使用的分支参数,例如 -s main
KSU_LATEST_COMMIT_DATE 当前 KernelSU 仓库最新提交时间;未知时为 未知
SUSFS_LATEST_COMMIT_DATE 当前 SUSFS 仓库最新提交时间;禁用时为 禁用
ABK_MANAGER_PACKAGE 内核信任的 ABK 管理器包名,默认来自 app/signing/abk-manager-cert.env
ABK_MANAGER_CERT_SIZE 内核信任的 ABK 管理器签名证书 DER 大小。
ABK_MANAGER_CERT_SHA256 内核信任的 ABK 管理器签名证书 SHA-256。
AVBTOOL / MKBOOTIMG / UNPACK_BOOTIMG / BOOT_SIGN_KEY_PATH 后续打包/签名工具路径。
CCACHE_DIR ccache 目录。

条件变量:

  • KSU_VERSION:仅 KernelSU Official 分支会设置。
  • KBUILD_BUILD_TIMESTAMPKBUILD_BUILD_VERSION:只在 before_build 阶段可用,因为它们在“设置自定义构建时间”步骤后才写入环境。
  • GitHub Actions 标准变量如 GITHUB_REPOSITORYGITHUB_REFGITHUB_SHAGITHUB_RUN_IDRUNNER_OSRUNNER_TEMPHOMEPATH 也可使用。

ABK Control 管理器识别说明:

  • 如果使用 ABK_control_module 让 ABK 直接作为 KernelSU / SukiSU / ReSukiSU 管理器,建议同时配置 after_patchbefore_build 两个阶段。
  • 手机上安装的 ABK APK 必须与内核构建日志中打印的 ABK_MANAGER_PACKAGEABK_MANAGER_CERT_SHA256 一致。默认 debug / 本地临时签名 APK 不会匹配仓库内的正式签名证书。
  • 构建会在编译前校验 ABK Control 桥接标记和 CONFIG_ABK_CONTROL=y;失败时优先检查是否遗漏 before_build 阶段,或是否使用了与 APK 不一致的证书元数据。

最小模块结构:

your-module/
└── setup.sh

最小 setup.sh 示例:

#!/usr/bin/env bash
set -euo pipefail

echo "Running custom module from: $PWD"
echo "Kernel root: $KERNEL_ROOT"

# 示例:向 defconfig 追加一个选项,实际模块应先确认目标内核支持该符号。
grep -q '^CONFIG_EXAMPLE_FEATURE=y$' "$DEFCONFIG" || echo 'CONFIG_EXAMPLE_FEATURE=y' >> "$DEFCONFIG"

开发建议:

  • 保持脚本幂等:重复执行不应产生重复配置或破坏源码树。
  • 明确失败:关键文件不存在、补丁未应用或版本不匹配时应直接 exit 1
  • 限定修改范围:优先只修改 $KERNEL_ROOT$DEFCONFIG 或模块自己的临时目录。
  • 不要假设固定内核版本:需要时读取 ${CONFIG}${KERNEL_ROOT}/common/Makefile 判断。
  • 不要在脚本中提交密钥、token、隐私数据或不可审计的二进制逻辑。

App

ABK App 使用 Material 3 Expressive 风格设计,面向手机端完成完整构建闭环:

  • 启动后检查 Root 权限。
  • 使用 GitHub Device Flow 登录并请求用户确认授权。
  • 检查用户是否 fork 了本仓库,必要时创建 fork。
  • 检查 fork 是否落后上游,并提示同步。
  • 根据当前内核版本生成推荐构建参数。
  • 触发 GitHub Actions 工作流并同步进度。
  • 构建完成后下载产物并提供刷写/安装入口。

App 编译由 Build ABK App 工作流完成。

内置 ksud

  • APK 构建工作流会在构建时从 SukiSU-Ultra/SukiSU-Ultra 源码编译 userspace/ksud,并把生成的 ksud 二进制打包进 APK。
  • 当前工作流默认打包 arm64-v8aarmeabi-v7ax86_64 三个 ABI;运行时会优先使用 APK 内置 ksud,不可用时再回退到 /data/adb/ksud 或系统 ksud
  • 仓库不直接提交预编译 ksud 二进制;来源、构建方式和许可证说明见 THIRD_PARTY_NOTICES.md

致谢

ABK 基于以下项目、仓库和社区工作继续开发。这里集中列出所有在 README、网页、工作流或产物说明中引用到的主要仓库和项目:

License

本仓库包含多个第三方项目、补丁和构建产物引用。使用、分发或修改前请分别遵守对应上游项目的许可证和使用条款。使用 ABK、工作流、自定义模块或构建产物造成的设备损坏、数据丢失、账号风险、服务中断、合规问题或任何直接/间接损失,均由使用者自行承担。

About

KernelSU/MKSU/SukiSU/ReSukiSU/KernelSU-Next + SUSFS GKI KERNEL

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Kotlin 65.2%
  • C 20.5%
  • C++ 4.9%
  • HTML 2.3%
  • JavaScript 2.2%
  • SCSS 2.1%
  • Other 2.8%