English / Русский / Українська / 简体中文 / فارسی
Android-first open-source VPN client built around a modified sing-box core.
Etonify is an Android-focused VPN client for people who need a transparent, maintainable, and community-driven alternative to legacy VPN clients. Its Android runtime, subscription handling, UI, diagnostics, and maintenance flow are developed around Etonify and yamixdev/etonify-core, a stable sing-box base with changes maintained specifically for the client.
The app does not provide VPN servers. It is a client for subscriptions and configurations that you own or are allowed to use.
Etonify is in early public development. Android is the only production target right now. Other Flutter platform folders may exist in the repository, but they are not release targets yet.
- Android VPN TUN mode powered by etonify-core.
- Local mixed proxy inbound for apps or devices that use HTTP/SOCKS manually.
- Subscription import from URL, QR code, local file, clipboard, and deep links.
- Deep link handlers for
etonify://,happ://add,happ://crypt*, andsing-box://import-remote-profile. - Happ link decryptor for
crypt,crypt2,crypt3,crypt4, andcrypt5links. - Happ subscription import with explicit HWID consent when a provider requires it.
- Subscription refresh, reparse, usage display, expiration display, and safe handling of invalid refresh results.
- Proxy list with country flags, latency, source-order sorting, latency/name/country sorting, URL-test, and quick server switching.
- Split tunneling using Android VPN app allow/disallow rules plus sing-box routing fallback.
- DNS presets and custom DNS resolver support, including UDP, TCP, DoT, DoH, and device DNS modes.
- Smart Routing rule sets and a locally compiled AdGuard DNS filter.
- Traffic dashboard with live speed, session totals, active profile, active proxy, and a lightweight graph.
- GitHub release update center with ABI-aware APK selection and download progress.
- Runtime logs, diagnostics, memory cleanup hooks, and redaction for known sensitive values.
- RU/EN app localization, with more user-facing translations planned.
- Telegram channel: @etonify
- Direct contact with the developers: Etonify Direct
- MeowTeam: YamixDEV works on the Android client, releases, and etonify-core; dudosxdev contributes networking and protocol expertise.
- Issues and pull requests are welcome.
- Security reports are welcome. Please avoid publishing exploitable details publicly before the team has time to investigate.
Requirements:
- Flutter 3.44.0 or newer with Dart
>=3.11.4. - Android SDK 36.
- JDK 21 can be used to run Gradle, while Android bytecode targets remain Java 17 for current AGP compatibility.
Common commands:
flutter pub get
flutter gen-l10n
flutter analyze
flutter testLocal release APK for device testing:
$env:MEOW_ALLOW_DEBUG_RELEASE_SIGNING='true'
flutter build apk --release
adb install -r build\app\outputs\flutter-apk\app-release.apkFor public distribution, create a real release keystore and android/key.properties. That file is intentionally ignored by Git.
- Production focus is Android.
- Etonify 0.2.3 bundles
libbox.aarbuilt fromyamixdev/etonify-core. Its source commit, SHA-256 and build provenance are documented underandroid/app/libsand verified by CI. - Generated l10n files under
lib/l10n/generatedare part of the source tree because the app imports them directly. third_party/flutter_circle_flagsis required bypubspec.yamlas a local path dependency.- Third-party attribution notes are tracked in THIRD_PARTY_NOTICES.md.
- Official release builds can include private Happ crypto compatibility assets restored from GitHub Actions secrets. These assets are not part of the public source tree.
Etonify is licensed under the GNU General Public License v3.0 or later. See THIRD_PARTY_NOTICES.md for bundled and adapted components.