English | 简体中文
An Xray client for Android, powered by Xray-core, AndroidLibXrayLite, and hev-socks5-tunnel.
- VPN Service, TPROXY(ROOT), and TUN2SOCKS(ROOT) run modes support
- VMess, VLESS, Trojan, Shadowsocks, Socks, HTTP, Hysteria2, WireGuard, strategy group, and chain proxy support
- v2rayNG, mihomo subscription format support
- Resource file management for
geoip.dat,geosite.dat,geoip-only-cn-private.dat, and the Xray executable - ROOT start-on-boot script generation through Magisk
service.d - MIUIX Compose UI
- Works without root permission.
- Uses Android
VpnService. - Suitable for normal Android app-level VPN usage.
- Requires root permission.
- Runs the local Xray executable directly with libsu.
- Uses iptables and policy routing for transparent proxy traffic.
- Uses the configured transparent proxy port as the Xray inbound.
- Requires root permission.
- Runs the local Xray executable directly with libsu.
- Uses
hev-socks5-tunnelto create the fixed TUN deviceasterisk0. - Uses Xray'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 Xray's TPROXY inbound.
- Runtime files are stored in the app private
files/xraydirectory, commonly/data/user/0/org.asterisk.zcc.ang/files/xray. - The bundled Xray executable is restored from native libraries and can be replaced manually with an
xrayexecutable file or a zip archive containingxray. geoip.datandgeosite.datcan be restored from bundled assets, updated from online sources, or replaced manually.- Built-in update sources include Loyalsoldier/v2ray-rules-dat, v2fly/geoip, v2fly/domain-list-community, Chocolate4U/Iran-v2ray-rules, and runetfreedom/russia-v2ray-rules-dat.
Open the project root in Android Studio, or build it with Gradle wrapper:
.\gradlew.bat assembleDebugOn macOS or Linux:
./gradlew assembleDebugThe build:
- uses the Android SDK and NDK
- downloads or prepares the bundled Xray-core asset
- builds the native
setuidgidhelper - packages native runtime components for
arm64-v8a,armeabi-v7a,x86, andx86_64
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.ang ACTIVATE_VPN allow


