AsteriskNG
English | 简体中文 | Русский | Tiếng Việt
An Xray client for Android.
Telegram Channel
Features
- VPN Service, TPROXY(ROOT), TUN2SOCKS(ROOT), and BPF2SOCKS(ROOT) run modes
- VMess, VLESS, Trojan, Shadowsocks, SOCKS, HTTP, Hysteria2, WireGuard, strategy groups, and chained proxies
- v2rayNG and Mihomo subscription formats
- Profile, proxy, routing, log, and resource management
- MIUIX Compose UI
Screenshots
Run Modes
VPN Service
- Works without root permission.
- Uses Android
VpnService. - Runs Xray in the app process through AndroidLibXrayLite.
TPROXY(ROOT)
- Runs the local Xray executable directly with libsu.
- Uses a TPROXY inbound with iptables and policy routing for transparent proxy traffic.
TUN2SOCKS(ROOT)
- Runs the local Xray executable directly with libsu.
- Uses
hev-socks5-tunnelto create the fixed TUN deviceasterisk0. - Sends tunnel traffic to a local Xray SOCKS5 inbound.
BPF2SOCKS(ROOT)
- Runs the local Xray executable and native
bpf2sockshelper directly with libsu. - Uses eBPF without creating a TUN device and sends captured TCP and UDP traffic to a local Xray SOCKS5 inbound.
- Defaults to bridge port
65532and SOCKS5 inbound port65534. - Requires the eBPF capability probe to pass before startup. Devices with insufficient support cannot start this mode.
asteriskd
- Watches local IPv4/IPv6 addresses and tethering interfaces, then refreshes the relevant iptables rules or BPF maps.
- Cleans up networking rules owned by the active ROOT mode when the service stops.
Resource Files
- Runtime files are stored in the app-private
files/xraydirectory. - The bundled Xray executable can be replaced with an executable file or a zip archive containing
xray. geoip.dat,geosite.dat, and other resources can be restored, replaced locally, or updated from built-in and custom sources.
Broadcast Control
Enable Broadcast Control in settings, then send an explicit broadcast to the receiver below. Actions use the org.asterisk.zcc.ang.action. prefix.
| Operation | Action suffix |
|---|---|
| Start proxy | PROXY_START |
| Stop proxy | PROXY_STOP |
| Toggle proxy | PROXY_TOGGLE |
| Update all URL subscriptions | SUBSCRIPTION_UPDATE |
| Cancel broadcast subscription update | SUBSCRIPTION_UPDATE_CANCEL |
| Update all resources | RESOURCE_UPDATE |
| Cancel resource updates | RESOURCE_UPDATE_CANCEL |
adb shell am broadcast -n org.asterisk.zcc.ang/features.automation.BroadcastControlReceiver -a org.asterisk.zcc.ang.action.SUBSCRIPTION_UPDATE
Subscription updates skip local entries; cancellation preserves completed results and scheduled update settings. Resources use the current Resource Management configuration; resource cancellation also clears its shared queue. Repeated update commands of the same kind are merged while running.
Updates run in the background without starting the proxy. Broadcast delivery does not mean the update has finished; check the BroadcastControl app logs for results.
Development
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 prepares Xray, builds the configured native helper submodules, and packages the supported ABIs.
If Gradle cannot find the Android NDK, configure it through Android Studio, ndk.dir in local.properties, or ANDROID_NDK_HOME.
WSA
appops set org.asterisk.zcc.ang ACTIVATE_VPN allow
License
Credits
- @XTLS/Xray-core
- @Asterisk4Magisk/AndroidLibXrayLite
- @heiher/hev-socks5-tunnel
- @topjohnwu/libsu
- @compose-miuix-ui/miuix
- @2dust/v2rayNG
- @Loyalsoldier/v2ray-rules-dat
- @v2fly/geoip
- @v2fly/domain-list-community
- @Chocolate4U/Iran-v2ray-rules
- @runetfreedom/russia-v2ray-rules-dat
- @mayaxcn/china-ip-list
- @xchacha20-poly1305/husi — heuristic idea for the per-app proxy "Scan Chinese apps" feature
