An Xray GUI client for Android, support VPN Service, TPROXY(ROOT), TUN2SOCKS(ROOT) and BPF2SOCKS(ROOT)
237
stars
321
commits
Kotlin
primary language
Sep 10, 2026
updated
An Xray client for Android, powered by Xray-core, AndroidLibXrayLite, hev-socks5-tunnel.
geoip.dat, geosite.dat, geoip-only-cn-private.dat, and the Xray executableservice.d
VpnService.hev-socks5-tunnel to create the fixed TUN device asterisk0.bpf2socks helper directly with libsu.65532, and the default SOCKS5 inbound port is 65534.asteriskd monitor after Xray and mode rules are ready.files/xray/logs/asteriskd.log; generated files/xray/stop.sh is the single ROOT stop entry point and restores captured IPv6 state before cleanup.files/xray directory, commonly /data/user/0/org.asterisk.zcc.ang/files/xray.xray executable file or a zip archive containing xray.geoip.dat and geosite.dat can be restored from bundled assets, updated from online sources, or replaced manually.Initialize submodules before building:
git submodule update --init --recursive
Open the project root in Android Studio, or build it with Gradle wrapper:
.\gradlew.bat assembleDebug
On macOS or Linux:
./gradlew assembleDebug
The build:
hev-socks5-tunnel to ProjectConfig.HEV_SOCKS5_TUNNEL_VERSION before building ithev-socks5-tunnel JNI library and CLI runtime from its submoduleasteriskd, bpf2socks, and bpfmatcher to their ProjectConfig versions before building them with the NDKarm64-v8a, armeabi-v7a, x86, and x86_64If 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
Kotlin
100.0%
An Xray GUI client for Android, support VPN Service, TPROXY(ROOT), TUN2SOCKS(ROOT) and BPF2SOCKS(ROOT)
237
stars
321
commits
Kotlin
primary language
Sep 10, 2026
updated
An Xray client for Android, powered by Xray-core, AndroidLibXrayLite, hev-socks5-tunnel.
geoip.dat, geosite.dat, geoip-only-cn-private.dat, and the Xray executableservice.d
VpnService.hev-socks5-tunnel to create the fixed TUN device asterisk0.bpf2socks helper directly with libsu.65532, and the default SOCKS5 inbound port is 65534.asteriskd monitor after Xray and mode rules are ready.files/xray/logs/asteriskd.log; generated files/xray/stop.sh is the single ROOT stop entry point and restores captured IPv6 state before cleanup.files/xray directory, commonly /data/user/0/org.asterisk.zcc.ang/files/xray.xray executable file or a zip archive containing xray.geoip.dat and geosite.dat can be restored from bundled assets, updated from online sources, or replaced manually.Initialize submodules before building:
git submodule update --init --recursive
Open the project root in Android Studio, or build it with Gradle wrapper:
.\gradlew.bat assembleDebug
On macOS or Linux:
./gradlew assembleDebug
The build:
hev-socks5-tunnel to ProjectConfig.HEV_SOCKS5_TUNNEL_VERSION before building ithev-socks5-tunnel JNI library and CLI runtime from its submoduleasteriskd, bpf2socks, and bpfmatcher to their ProjectConfig versions before building them with the NDKarm64-v8a, armeabi-v7a, x86, and x86_64If 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
Kotlin
100.0%