- 网页配置 Json 编译配置文件(即将发布)
- 使用
MagiskBoot生成boot.img - 本地编译内核脚本
- 云端编译内核网页
- AnyKernel3 原版及自定义版本支持
- 编译信息自定义
-
Docker编译支持
该 Action 包含两个作业:Set-repos 和 Build-Kernel。
Set-repos 作业从配置文件中读取内核源,并将其输出到 Build-Kernel 作业中。Build-Kernel 作业使用输出的内核源构建内核,并上传构建好的内核镜像。
| 事件名称 | 描述 |
|---|---|
| workflow_dispatch | 手动触发构建。 |
| 步骤 | 描述 |
|---|---|
| Install prerequisites | 安装构建所需的依赖 |
| Setup Anykernel3 | 克隆 Anykernel3 仓库 |
| Clone kernel source | 克隆内核源码仓库 |
| Get toolchains | 获取所需的交叉编译工具链 |
| Set args | 设置构建参数 |
| Update KernelSU | 更新 KernelSU |
| Make defconfig | 生成内核配置文件 |
| Build kernel | 编译内核 |
| Upload Image | 上传内核镜像文件 |
| Upload Image.gz | 上传内核镜像压缩文件 |
| Upload dtb | 上传设备树文件 |
| Upload dtbo.img | 上传设备树覆盖文件 |
| Pack AnyKernel3.zip | 打包 Anykernel3.zip |
| Upload AnyKernel3 image | 上传 Anykernel3 镜像文件 |
| Create GitHub Release | 创建 GitHub Release |
具体配置方法请查看 编译配置指南。
本项目的基础使用方法如下:
-
在 GitHub 上
fork本项目 -
通过 Github 网页或者拉取到本地修改
repos/repos*.json文件,并提交修改 -
查看 Github 网页的
Action页面,找到Build kernels并Run workflow
注意
执行这一步骤时, 在用
softprops/action-gh-release@v1发布Release, 您可能会遇到如下报错:👩🏭 Creating new GitHub release for tag v20230619.7... ⚠️ GitHub release failed with status: 403 undefined retrying... (2 retries remaining) 👩🏭 Creating new GitHub release for tag v20230619.7... ⚠️ GitHub release failed with status: 403 undefined retrying... (1 retries remaining) 👩🏭 Creating new GitHub release for tag v20230619.7... ⚠️ GitHub release failed with status: 403 undefined retrying... (0 retries remaining) ❌ Too many retries. Aborting... Error: Too many retries.这是由于您的
Workflow权限导致的:设置对应权限然后就可以发布属于你自己的
Release了
-
等待编译完成,即可进入对应页面下载编译产物
-
使用您喜欢的打包软件进行内核打包(AnyKernel3、Android-Image-Kitchen、MagiskBoot 等)
如果您并不想在 Github 上重复执行 Action,您可以利用 nektos/act 来在本地环境里测试本构建流程并输出。
这种方式是推荐的本地测试流程,您只需要安装 nektos/act 并执行如下指令:
# 将构建文件收集到 /tmp/artifacts 文件夹:
act --artifact-server-path /tmp/artifacts如果您需要放在本地你喜欢的位置,请更改 /tmp/artifacts 为您喜欢的目录即可。
如果中途报错,请加入参数 -v 重新执行获取错误报告并提交 issue ,具体命令如下:
# 将构建文件收集到 /tmp/artifacts 文件夹:
act --artifact-server-path /tmp/artifacts -v用上述方式构建仍然需要内核源码等存储在云端,如果您一定有要全部本地构建的需求,请考虑通过如下方式构建:
-
搭建本地
Gitea或Gitlab等Git服务。随后修改配置文件地址为本地服务地址。 -
在本地利用
git daemon指令建立一个二级镜像。
此处仅仅提供思路,并不提供具体教程。
- weishu : KernelSU 的开发者
- AKR 安卓开发者社区 : 编译教程提供
- DogDayAndroid/KSU_Thyme_BuildBot : 此项目的前身
- xiaoleGun/KernelSU_Action : 借鉴部分 Github Action
- UtsavBalar1231/Drone-scripts : 借鉴部分 Github Action
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。


