正式 APK 必须通过
packaging 入口构建;首次构建前请先完成原生组件准备。环境要求
构建入口是仓库根目录的
kotlin 脚本(Windows 为 kotlin.bat),首次运行会自动下载所需的 Kotlin Toolchain,无需手动安装 Kotlin 或 Gradle。最低支持 Android 8.0(API 26),当前仅支持 arm64-v8a;NDK 版本、最低 SDK 与 ABI 均读取自 kernel.properties。
准备仓库
1
获取源码
2
配置 Android SDK
安装 API 37、build-tools 37.0.0、NDK 30.0.16248370、CMake 3.22.1 与 Ninja,并接受 SDK 许可证。设置
ANDROID_HOME 指向 SDK,或在仓库根目录创建 local.properties:ANDROID_HOME、ANDROID_SDK_ROOT 与 sdk.dir 需要指向同一个 SDK。3
准备 Go 与 Rust
安装 MetaCubeX 维护的 Go 1.27(CI 使用同一版本)与 Rust nightly 工具链。建议使用专用 Go SDK,因为下一步会修改其 GOROOT:构建 Go 核心前,需要把
.github/patch/ 中的补丁应用到 go env GOROOT 指向的目录。CI 会在构建原生组件前自动执行;以下命令适用于 Linux、macOS 与 Git Bash:4
同步 mihomo 内核
默认同步 Alpha 分支,也可以改用 Meta:
构建原生组件
完整构建
按组件构建
默认 ABI 取自
kernel.properties 的 abi.app.list,也可以用环境变量显式指定:
构建产物
jniLibs/arm64-v8a/ 中的原生库:
Geo 数据位于
build/generated/assets/geo/:
构建 APK
构建命令为kotlin run -m packaging,所有 -Pkey=value 参数放在 -- 之后传给打包入口;PowerShell 中含点的参数需要用单引号包裹。
Debug
Debug 适合本地安装和调试,默认不内置 Geo:Release
Release 会构建 loader DEX 并封装 payload,需要先完成下文的签名配置:output_apk/debug/ 与 output_apk/release/,文件名为 YumeBox-external.apk 或 YumeBox-builtin.apk,并生成同名的 .apk.json,记录版本、SHA-256 等构建信息。
签名配置
未配置签名时,Debug 自动生成并使用 debug keystore;只要仓库根目录存在signing.properties,Debug 和 Release 都会优先使用它。Release 必须签名:在仓库根目录放置 release.keystore,并创建 signing.properties:
不要提交
release.keystore 和 signing.properties。--allow-unsigned 且没有 signing.properties 时才会生成未签名 APK;未签名 APK 无法通过 adb install 安装,CI 不使用此选项。
CI 构建
所有 CI 作业使用macos-26,只构建 arm64-v8a:
CI 使用提交计数作为构建版本号,并写入提交哈希与分支信息。
验证安装
output_apk/debug/ 中的实际产物。
常见问题
更多构建错误请查看常见问题。
