- 网页配置 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 国际许可协议进行许可。