Skip to content

Latest commit

 

History

History
166 lines (117 loc) · 6.77 KB

README_cn.md

File metadata and controls

166 lines (117 loc) · 6.77 KB
banner

构建属于你自己的安卓内核镜像

License Language Issues Pull Requests

这个 Github Action 可以帮助你构建内核。它可以从一个配置文件中读取多个内核源,并使用不同的工具链构建它们。此外,它还支持使用 KernelSU 进行内核补丁,并上传构建好的内核镜像。



  配置文件使用方法  

  快速开始  

  本地构建  


开发进度

  • 网页配置 Json 编译配置文件(即将发布)
  • 使用 MagiskBoot 生成 boot.img
  • 本地编译内核脚本
  • 云端编译内核网页
  • AnyKernel3 原版及自定义版本支持
  • 编译信息自定义
  • Docker 编译支持

Github Action

该 Action 包含两个作业:Set-reposBuild-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

配置文件解析

具体配置方法请查看 编译配置指南

使用方法

本项目的基础使用方法如下:

  1. 在 GitHub 上 fork 本项目

  2. 通过 Github 网页或者拉取到本地修改 repos/repos*.json 文件,并提交修改

  3. 查看 Github 网页的 Action 页面,找到 Build kernelsRun 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 权限导致的:

workflow permissions

设置对应权限然后就可以发布属于你自己的 Release

  1. 等待编译完成,即可进入对应页面下载编译产物

  2. 使用您喜欢的打包软件进行内核打包(AnyKernel3Android-Image-KitchenMagiskBoot 等)

Artifacts

本地构建

如果您并不想在 Github 上重复执行 Action,您可以利用 nektos/act 来在本地环境里测试本构建流程并输出。

普通本地构建(内核源码等使用 Git 拉取)

这种方式是推荐的本地测试流程,您只需要安装 nektos/act 并执行如下指令:

# 将构建文件收集到 /tmp/artifacts 文件夹:
act --artifact-server-path /tmp/artifacts

如果您需要放在本地你喜欢的位置,请更改 /tmp/artifacts 为您喜欢的目录即可。

如果中途报错,请加入参数 -v 重新执行获取错误报告并提交 issue ,具体命令如下:

# 将构建文件收集到 /tmp/artifacts 文件夹:
act --artifact-server-path /tmp/artifacts -v

完全本地构建(内核源码等均为本地存储)

用上述方式构建仍然需要内核源码等存储在云端,如果您一定有要全部本地构建的需求,请考虑通过如下方式构建:

  1. 搭建本地 GiteaGitlabGit 服务。随后修改配置文件地址为本地服务地址。

  2. 在本地利用 git daemon 指令建立一个二级镜像。

此处仅仅提供思路,并不提供具体教程。

致谢

贡献者

contributors

Star 历史

Star History

许可

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。