本 GitHub Action 可在云端自动化编译 Android 内核驱动程序,无需本地编译环境。解决访问 Google 源码仓库等问题,编译时间控制在 30min内。
- ✅ 云端编译 - 无需本地环境配置
- ✅ 自动源码管理 - 从官方仓库获取 Android 内核源码
- ✅ 版本感知构建 - 自动选择正确的构建系统
- ✅ 参数化输入 - 通过工作流参数自定义构建
- ✅ 结果打包 - 下载编译好的驱动和内核镜像
- 在仓库中创建
code目录 - 将以下文件放入
code目录:- 驱动源文件 (
.c和.h) - 驱动的
Makefile - 其他依赖文件
- 驱动源文件 (
- 转到 GitHub 仓库的 Actions 标签页
- 选择 Android Kernel Driver Builder
- 点击 Run workflow
- 提供以下参数:
android_version: Android 版本(内核) (例如14)kernel_version: 内核版本 (例如6.1)driver_name: 驱动文件名 (例如mydriver.ko)target_arch: 设备架构 (默认aarch64)
编译成功后 (30 分钟):
- 转到完成的工作流运行
- 下载
kernel-driver-<架构>产物 - 解压后包含:
- 编译好的驱动 (
.ko文件) - 内核镜像 (
boot.img) - 构建日志
- 编译好的驱动 (
| 参数 | 说明 | 示例 |
|---|---|---|
android_version |
Android 系统版本 | 11, 12, 13, 14 |
kernel_version |
Linux 内核版本 | 5.10, 5.15, 6.1 |
driver_name |
驱动文件名 | custom_driver.ko |
target_arch |
设备 CPU 架构 | aarch64, x86_64 |
-
构建系统选择:
- Android 11 及更早版本:使用传统
build.sh系统 - Android 12 及更新版本:使用现代 Bazel 构建系统
- Android 11 及更早版本:使用传统
-
源码管理:
- 自动从 Google 仓库获取内核源码
- 使用并行下载加速同步过程
-
驱动集成:
- 自动将驱动添加到内核构建系统
- 注册驱动为 GKI 模块
- 自动处理 Makefile 修改
Q: "repo sync" 步骤失败
A: 重新运行工作流,Google 服务器偶尔会出现超时
Q: 输出产物中找不到驱动文件
A: 检查:
driver_name参数是否正确(需与 Makefile 匹配)- 源文件是否在
/code目录 - Makefile 是否生成预期的
.ko文件
Q: 出现 "Kernel configuration not found" 错误
A: 确认内核版本在 Android 内核源码 中存在对应分支
问题反馈和功能请求:
- 提交 Issue
- 请提供工作流日志和输入参数