依赖
使用方法
- GitHub Action
- 本地构建
1
新建文件夹
前往示例仓库通过模板生成新项目
2
修改代码
修改模块项目代码
3
构建模块
通过 GitHub Action 手动或自行修改 Workflow 来实现构建模块
项目结构
Git 仓库目录
src (模块目录)
module.prop (模块信息配置)
customize.sh (可选,配置安装)
action.sh (可选,操作按钮)
post-fs-data.sh (可选,在 post-fs-data 执行)
post-mount.sh (可选,在 post-mount 执行)
service.sh (可选,在 late_start 执行)
boot-completed.sh (可选,在系统启动完毕后执行)
uninstall.sh (可选,配置卸载)
system.prop (可选,配置需要修改的属性)
sepolicy.rule (可选,配置需要修改的 SELinux 策略)
system (可选,配置需要通过 systemless 挂载的文件)
cfgui (可选,模块 ConfigUI 前端)
webroot (可选,模块 WebUI 前端)
nga-utils.sh (构建产生,常用 Shell 函数)
hashList.dat (构建产生,安装时校验的模块文件哈希值)
META-INF (构建产生,Recovery 刷入脚本)
zygisk (构建产生,Zygisk 共享库)
bin (构建产生,可执行二进制)
其他模块资源...
c++_native (C++ 项目目录)
<项目名称>
Android.mk (构建配置文件)
Application.mk (构建配置文件)
其他源码文件...
其他 C++ 项目目录...
go_native (Go 项目目录)
<项目名称>
arch (输出构建架构的子项目)
go.mod (项目信息文件)
go.sum (有依赖时生成的校验文件)
其他源码文件...
其他 Go 项目目录...
README.md (仓库说明文件)
changelog.md (模块更新日志)
update.json (模块更新配置)
.nometa (可选,构建时不自动添加工具自带 META-INF 目录)
其他仓库资源...
不建议往
META-INF 添加任何 Recovery 刷入脚本之外的文件注意事项
- 模块目录
action.sh的支持范围是: ShiroSU 默认支持/Magisk 27008+/KernelSU 1.0.2+/APatch 11039+post-mount.sh、boot-completed.sh仅在 ShiroSU/KernelSU/APatch 支持, 但 Magisk 可在service.sh内主动执行boot-completed.shMETA-INF在仅支持 ShiroSU/KernelSU/APatch 时无需包含zygisk、bin会通过c++_native/go_native中的目录自动添加,如有需要,也可自行添加
- C++ 项目
- 项目名称 必须与
Android.mk中的LOCAL_MODULE相同,即构建后的文件名称Android.mk如果配置以BUILD_EXECUTABLE构建,将自动把编译后文件移动至模块目录的bin/<项目名称>/<架构>.bin, 如果配置以BUILD_SHARED_LIBRARY构建,将自动把编译后文件移动至模块目录的zygisk/<架构>.so
- 项目名称 必须与
- Go 项目
- 项目名称 必须与
go.mod中的module值的最后名称相同,即构建后的文件名称arch按行输出要构建的架构,架构以 Go 支持的为准 (例如使用amd64而非x86_64)
- 项目名称 必须与
changelog.md、update.json等文件可按需自定义名称、路径
