English | 简体中文
An Android Mihomo GUI client powered by Mihomo, CMFA Mihomo wrapper, and hev-socks5-tunnel.
- VPN Service, TPROXY(ROOT), TUN(ROOT), and TUN2SOCKS(ROOT) run modes
- Add configurations from QR code, local file, or URL subscription
- JavaScript override scripts for advanced configuration mutation
- ROOT start-on-boot script generation through Magisk
service.d - MIUIX Compose UI
- Works without root permission.
- Uses Android
VpnService. - Uses the CMFA bridge module to run Mihomo in the app process.
- Suitable for normal Android app-level VPN usage.
- Requires root permission.
- Runs the local Mihomo executable directly with libsu.
- Uses iptables and policy routing for transparent proxy traffic.
- Uses the configured transparent proxy port as the Mihomo inbound.
- Requires root permission.
- Runs the local Mihomo executable directly with libsu.
- Uses Mihomo's TUN listener to create the fixed TUN device
asterisk0. - Keeps Mihomo
auto-routedisabled and applies app-managed iptables and policy routing rules. - Defaults to the gVisor TUN stack for compatibility; users can switch to another Mihomo TUN stack in settings.
- Requires root permission.
- Runs the local Mihomo executable directly with libsu.
- Uses
hev-socks5-tunnelto create the fixed TUN deviceasterisk0. - Uses Mihomo's local SOCKS5 inbound as the tunnel target.
- Shares most ROOT routing and app proxy behavior with TPROXY, but routes traffic through the TUN device instead of Mihomo's TPROXY inbound.
- Runtime files are stored in the app private
files/clashdirectory, commonly/data/user/0/org.asterisk.zcc.ameta/files/clash. - The bundled Mihomo executable is restored from native libraries and can be replaced manually with an
mihomoexecutable file. - Custom resource files can be added, replaced manually, or updated from their configured URLs.
Initialize submodules before building:
git submodule update --init --recursiveOpen the project root in Android Studio, or build it with Gradle wrapper:
.\gradlew.bat assembleDebugOn macOS or Linux:
./gradlew assembleDebugThe build:
- uses Android SDK and NDK
- prepares bundled Mihomo and
hev-socks5-tunnelnative runtime files - checks out the Mihomo submodule to
ProjectConfig.MIHOMO_CORE_VERSIONbefore CMFA JNI builds - builds the vendored CMFA Go core
- builds the native
setuidgidhelper - produces ABI split APKs for
arm64-v8a,armeabi-v7a,x86,x86_64, plus a universal APK
If Gradle cannot find Android NDK, set ndk.dir in local.properties, set ANDROID_NDK_HOME, or install an NDK under the Android SDK.
For WSA, VPN permission can be granted with:
appops set org.asterisk.zcc.ameta ACTIVATE_VPN allow


