Only running Gradle will not generate the missing
jniLibs; please complete the native build first when building for the first time. Environmental requirements
The current application only builds
arm64-v8a, and the corresponding Rust target is aarch64-linux-android.
Prepare warehouse
1
Get source code
2
Configure Android SDK
Install API 37, NDK 30.0.14904198 and CMake 3.22.1, then create NDK will automatically locate according to
local.properties in the root directory of the repository:android.ndkVersion in gradle.properties.3
Preparing for Go and Rust
.github/patch/ to go env GOROOT. CI automatically performs this step before building the native component.Execute in Git Bash or WSL:4
Sync mihomo
Select a kernel channel. Alpha is used by default:You can also use Meta:
Build native components
Complete build
A full build will generate all native libraries and download Geo data:
Native debugging builds only the current ABI:
jniLibs/arm64-v8a/ should contain:
Geo data is located at
build/generated/assets/geo/:
Build APK
###Debug Debug is suitable for local installation and debugging:Release
Release enables compression and resource shrinking:Geo data variants
Both variants use the same application code and kernel; the only difference is whether the Geo resources are packaged into the APK.
APK outputs to:
YumeBox-external.apk or YumeBox-builtin.apk. The actual file name is based on the output directory.
Release signature
Local verification does not need to be configured with a formal signature; publishing APK requiresrelease.keystore and signing.properties in the warehouse root directory:
Do not submit
release.keystore or signing.properties. CI build
CI uses
arm64-v8a and writes build version information via build.number, build.hash, and build.branch.
Verify installation
app/build/outputs/apk/.
FAQ
For more build errors, please see FAQ.
