YumeBox
July 20, 2026 · View on GitHub
Usage
YumeBox currently only supports Android 8.0 (API 26) and above.
- Download the installation package for your architecture from the Release page
- For more information, visit the official documentation: yumebox.gal.tf
- Override configuration syntax reference: Override document
If this project is helpful to you, please give it a Star — it is the motivation for continuous updates.
Feedback and suggestions
If you encounter a bug, or have ideas and suggestions for improvements, please submit them on the Issues page.
For more discussion and feedback, join the group: @OOM_WG
Contributing
If you want to make YumeBox better, please refer to CONTRIBUTING.
If you want to translate YumeBox into more languages, or improve the existing translations, fork this project and create or update the corresponding translation file in the locale/lang directory.
Notices
The author knows nothing about the code in this project. The code is either available or unavailable, there is no third case.
See ThirdParty for the third-party libraries used in this project.
- Icon copyright: The copyright of the YumeBox application icon and brand assets belongs to the project owners.
- Fork release restrictions:
- Releases must not use the YumeBox project name.
- Releases must not use the original YumeBox icon.
- Releases must not include YumeBox's official issue feedback channels.
Build
YumeBox does not use Git submodules. A clean checkout needs the mihomo source and generated assets before Gradle can build the app.
-
Install OpenJDK 24, Android SDK 37, NDK 30.0.14904198, CMake 3.22.1, Kotlin CLI, Go 1.26, Rust nightly, Git, and
patch.sdkmanager "platforms;android-37" "ndk;30.0.14904198" "cmake;3.22.1" -
Create
local.propertiesin the project root:sdk.dir=/path/to/android-sdk # ndk.dir=/path/to/android-sdk/ndk/30.0.14904198 -
Fetch the mihomo source. Available channels are
alpha,meta, andsmart.chmod +x scripts/sync-kernel.sh ./scripts/sync-kernel.sh alpha -
Prepare Rust. Release builds should use MetaCubeX Go 1.26 with the patches in
.github/patch, matching CI.rustup toolchain install nightly --component rust-src rustup target add --toolchain nightly \ armv7-linux-androideabi \ aarch64-linux-android \ i686-linux-android \ x86_64-linux-android cargo install cargo-ndk -
Generate locale sources, native libraries, and bundled Geo assets:
kotlin scripts/native-build.main.kts --allRun the native script with
--helpto build Go, Rust, C++, or Geo assets separately. -
Optionally sign release builds. Place the keystore at
release.keystorein the project root, then createsigning.properties:keystore.password=<keystore password> key.alias=<key alias> key.password=<key password> -
Build the APK:
# arm64-v8a debug APK without bundled Geo data (local default) ./gradlew :app:assembleDebug # arm64-v8a debug APK with Geo databases and BundleMRS.7z ./gradlew -Pgeo.bundle=true :app:assembleDebug # release APKs for every configured ABI plus a universal APK ./gradlew -Pbuild.allAbis=true -Pgeo.bundle=true :app:assembleReleaseAPKs are written to
app/build/outputs/apk/<build-type>/. External builds omit Geo assets andBundleMRS.7z; mihomo downloads them when needed. On Windows, usegradlew.bat.