Aethery
Native Android client for private, censorship-resistant connections.
v0.1.1 — Aethery is an Android app around the Aether core. It is not a replacement or fork of Aether's networking engine.
What Aethery does
Aethery turns Aether into an Android-first VPN experience. It provides the native interface, Android VPN/TUN bridge, connection state, protocol picker, live connection logs, and release packaging. Aether remains responsible for route discovery, tunnel establishment, transport protocols, and encrypted traffic handling.
Android UI + Android VPN/TUN
│
▼
Aethery client
│ JNI
▼
Aether core — discovery, MASQUE, WireGuard, routing
Highlights
- Native Android UI with one-tap connect, connection state, motion, and live logs.
- Android
VpnServiceTUN integration: device traffic flows through the selected tunnel only after the core reports readiness. - MASQUE over HTTP/3, with HTTP/2 fallback when available.
- WireGuard for networks where it is reachable.
- WARP-on-WARP (
gool) support through the Aether core. - Automatic endpoint scanning with IP-level diagnostics in the connection log.
- App-level default protocol setting and direct links to releases/source.
Protocol notes
| Protocol | Intended use |
|---|---|
| MASQUE | Recommended default. Uses HTTPS-like tunnel transport and can fall back to HTTP/2. |
| WireGuard | Fast direct transport where UDP/WireGuard is reachable. |
| WARP-on-WARP | Nested WireGuard transport supplied by Aether. It still needs a reachable outer WireGuard path. |
Network filtering differs by provider and location. A protocol appearing connected means Aether completed its tunnel readiness check; it does not promise that every destination is reachable on every network.
Download
Draft and published builds are available from GitHub Releases.
| Device ABI | Asset |
|---|---|
| 64-bit ARM | Aethery-arm64-v8.apk |
| 32-bit ARM | Aethery-Arm64-v7.apk |
The second filename intentionally follows the current release naming convention, while its contents target armeabi-v7a.
Install an APK from Android Downloads after allowing installs from the source application when Android asks.
Build from source
Requirements
- Android Studio with Android SDK 36
- Android NDK
26.3.11579264 - CMake
3.22.1 - JDK 17
- Rust stable, including the Android target for the ABI you need
cargo-ndk
arm64-v8a
.\core\build-android.ps1
New-Item -ItemType Directory -Force app\src\main\jniLibs\arm64-v8a
Copy-Item core\android-libs\arm64-v8a\libaether.so app\src\main\jniLibs\arm64-v8a\libaether.so -Force
.\gradlew.bat :app:assembleDebug -PtargetAbi=arm64-v8a
APK output:
app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
For armv7, build Aether for armeabi-v7a, copy the resulting libaether.so to app/src/main/jniLibs/armeabi-v7a/, then run Gradle with -PtargetAbi=armeabi-v7a.
CI releases
The Android release workflow runs manually and builds debug APKs for arm64-v8a and armeabi-v7a. It uploads only direct .apk files to a draft GitHub Release. See the release guide.
To prepare v0.1.1:
Open **Actions**, select **Build Android APKs**, choose **Run workflow**, and enter `v0.1.1` as the release tag.
Review the draft assets and release note in GitHub, then publish the release when ready.
Project layout
app/ Android application and JNI bridge
core/aether/ Aether Rust core used by this client
core/quiche/ QUIC/HTTP3 dependency used by Aether
.github/ issue forms and Android release workflow
Contributing
Read CONTRIBUTING.md before opening an issue or pull request. Bug and feature forms are available from New issue.
Security
Do not disclose security-sensitive tunnel, credential, or traffic issues in public issues. Read SECURITY.md for private reporting guidance.
License
Aethery is licensed under GNU AGPL-3.0. Aether and bundled dependencies retain their own license terms; see their respective files in core/.
