English | فارسی
Android client application for the MasterDnsVPN ecosystem, built with a Kotlin/Jetpack Compose UI on top of the upstream Go networking core.
- Upstream core project: https://github.com/masterking32/MasterDnsVPN
- This repository focuses on the Android client implementation and packaging.
- Go engine logic is integrated through
gomobileas an Android AAR.
- VPN tunnel connect/disconnect lifecycle control
- Real-time connection telemetry (state, throughput, scan progress)
- Structured connection logs with source/severity filtering
- Multi-profile management (create, select, edit, delete)
- Profile-level settings and resolver import workflows
- Global settings for proxy mode, split tunneling, and sharing options
- Local persistence using Room + DataStore
- API 21+ support (Android 5.0 and newer)
- Home: connection status, traffic speed, active profile, quick actions
- Profiles: profile CRUD and import helpers
- Settings: profile and global configuration
- Logs: searchable-by-filter timeline with share/clear tools
- Info: project metadata and links
- Open the repository Releases page.
- Download the latest universal APK (recommended for most users).
- Install on your Android device.
If Android blocks installation, enable Install unknown apps for your browser/file manager and retry.
You need an operational MasterDnsVPN server first.
- Open Profiles and create or import a profile.
- Set required values such as
DOMAINSandENCRYPTION_KEY. - Add DNS resolvers (one per line, as
IPorIP:PORT). - Save the profile and select it.
- Return to Home and tap Connect.
- JDK 17
- Android SDK (platform/Build-Tools compatible with
compileSdk 35) - Go toolchain (as used in CI)
gomobileandgobind
# From repository root
bash ./android/build_go_mobile.sh
cd android
./gradlew :app:assembleDebugRelease builds require signing environment variables (see workflow release-manual.yml for exact names):
ANDROID_SIGNING_ENABLED=trueANDROID_KEYSTORE_PATHANDROID_KEYSTORE_PASSWORDANDROID_KEY_ALIASANDROID_KEY_PASSWORD- Optional:
ANDROID_VERSION_NAME,ANDROID_VERSION_CODE
Then run:
cd android
./gradlew :app:assembleReleaseandroid-ci.yml: builds Go mobile AAR and Debug APK artifacts on push/PR.go-test.yml: runs Go tests for applicable packages.release-manual.yml: manual signed release workflow that uploads APK/AAR assets.
- Install APK files only from trusted releases.
- Never share
ENCRYPTION_KEY, credentials, or full raw configs publicly. - Redact sensitive values before sharing logs/screenshots.
- App not installed / update failed: uninstall older build signed with a different key.
- Connected but no internet: verify domain, resolver list, and server reachability/config.
- VPN disconnects immediately: check VPN permission and battery/background restrictions.
- No logs shown: confirm a profile is selected and a connection attempt was made.
This project is provided for legitimate privacy and network-routing use cases. Users are responsible for complying with local laws, service terms, and organizational policies.
MIT License. See LICENSE.
- MasterDnsVPN upstream project and contributors
- Upstream project link: https://github.com/masterking32/MasterDnsVPN
- Android client maintainers and community testers