-
released this
2026-10-17 18:55:59 +03:00 | 3 commits to main since this releaseFixes the SOCKS5 Reconnect bug in 3.3.7. Install over any earlier build — same signing key, no uninstall needed.
Heads up: the server is still being rebuilt, so this build cannot connect yet. It will show "Offline", and a connect attempt will say why rather than silently giving up.
Changed
- Reconnecting always starts a fresh session. In SOCKS5 mode the Reconnect button used to re-attach to the session you already had. It now ends that session and starts a new one, exactly as the connect button does — one way to begin a session instead of two, and you get a full window back rather than the remainder of a broken one.
Fixed
- SOCKS5 "Reconnect" works again. In 3.3.7 it ended your session and then asked for the session it had just ended, failing with "Session not activated".
Everything in 3.3.7 is included; see its notes for the session-end reliability work.
app-release.apk.sha1is the checksum of the APK.Downloads
-
released this
2026-10-17 16:56:20 +03:00 | 6 commits to main since this releaseSession-end reliability. Install over 3.3.6 — same signing key, no uninstall needed.
Known issue in this build (fixed in the next release). In SOCKS5 mode, the Reconnect button in Settings ends your session instead of re-attaching to it, then fails with "Session not activated". It only appears when a proxy session has been orphaned, and the cost is losing the rest of that session — nothing leaks. Workaround: connect again from the main screen.
Heads up: the server is being rebuilt, so this build cannot connect yet. It will show "Offline", and a connect attempt will say why instead of silently giving up. That error reporting is part of this release.
Added
- A warning before a session ends. Scheduled off the same deadline the VPN service already enforces, so it arrives even with the app closed, and a support top-up moves it along. It does not promise an exact number of minutes: on a deeply sleeping phone Android can hold it back past the end of the session, in which case it is skipped rather than shown late.
- A "disconnected — not protected" notification when a session ends without you asking: the 2-hour expiry, the data limit, or the server ending the session.
- SOCKS5 mode now asks for the notification permission. It never did, because it never raises the VPN consent dialog, so on Android 13+ these alerts were dropped before they were shown.
- The app now shows what went wrong — connect errors, the reason a session ended, and progress while connecting — instead of the button silently going back to idle.
Changed
- A control-plane outage no longer tears down a working tunnel. The app used to disconnect itself after about two minutes of failed status polls, putting you back on your real IP. It now keeps the tunnel up and says "Can't reach the server — still connected". Expiry is still enforced by the VPN service's own deadline, which keeps running regardless.
Fixed
- The countdown no longer over-reports after the phone sleeps, and a clock moved backwards can no longer stretch a session.
- A session that expired while the phone was asleep is recognised on waking, by wall clock rather than by time the device spent awake.
- Disconnecting from Android's VPN settings no longer leaves a frozen countdown in the notification shade for a tunnel that is already gone.
- The VPN recovers after the tunnel core stops. Recovery never worked: every attempt failed on the same internal error, and each one left another copy of the core running. It now usually comes back on the first retry without dropping the connection.
- Disconnecting with the app's own button releases your session on the server instead of leaving it open until it expires.
- A core that fails to start now logs why. Its output was being discarded, so the only trace was an exit code.
Groundwork
- Rewarded-ad plumbing. Ads are off in this build, so none of it is reachable yet. Reviewed, not yet exercised end to end.
Everything above was found by testing the previous build on a real handset and an emulator, reproducing each failure before fixing it.
app-release.apk.sha1is the checksum of the APK.Downloads
-
3.3.6 Stable
released this
2026-10-08 13:20:52 +03:00 | 24 commits to main since this releaseReVolt VPN 3.3.6 — bugfix release.
- VPN notification now shows the ReVolt icon instead of the generic Android info icon.
- "Test Local SOCKS" now does a real round trip through the tunnel, so it no longer reports OK while the server is down.
See CHANGELOG.md for details.
Downloads
-
3.3.5 Stable
released this
2026-09-06 12:37:20 +03:00 | 26 commits to main since this releaseReVolt VPN 3.3.5 — hardening and reliability release.
- Harden the control-plane trust boundary: strict nonce / destination-IP / port / SNI / XHTTP-path validation, capped no-redirect control responses, and the tunnel destination is pinned to the compiled server (a compromised API can no longer redirect user traffic).
- Vendor the pinned
flutter_vlessAndroid runtime in-tree, fixing an IPv6 leak and dropping on-device destination logging. - Enforce authenticated ephemeral local SOCKS5.
- Fail closed on connection-mode changes (persist before applying).
- Session countdown uses a monotonic clock; a VPN error now tears the tunnel down.
- Reproducible release verification (app-config SHA-256 pin).
- Remove unused Flutter dependencies, orphaned assets, and dead Dart wrappers.
See CHANGELOG.md for the full list.
Downloads
-
v3.3.4 (beta) Pre-Release
released this
2026-09-02 20:33:33 +03:00 | 45 commits to main since this release3.3.4 — beta
Added
- OS-level session-expiry enforcement — the VPN service tears the tunnel down on its own clock (AlarmManager + handler) even if the UI process is killed.
- Session survives Android killing the process (re-established on START_STICKY).
- Support-ad extension reflected immediately (immediate server sync after reward).
Changed
- Session-status beacon slowed: 5 s → 60 s foreground, 30 s → 60 s background.
- Removed the "Always-on VPN" settings deep-link (battery-optimisation exemption remains).
Removed
- Legacy
assconnection-mode migration.
Security & privacy
- Session credentials + VLESS UUID are held app-private on disk for the session lifetime (removed on disconnect/expiry).
- Privacy policy: corrected server-log disclosure (systemd journal).
Beta build. Ads are disabled (
adsEnabled=false) and this build relies on the server'sADMOB_BYPASS(sessions are currently free). The "Support us" button is not functional in this build.Downloads
-
3.3.2 Pre-Release
released this
2026-09-01 00:16:05 +03:00 | 47 commits to main since this releaseBackground reliability. 3.3.1 could show "connected" against a tunnel that was no longer running. This fixes the cause rather than the symptom, and removes the machinery that existed to work around it.
⚠️ Prerelease — not yet confirmed on a device. It compiles and analyzes clean, but whether the tunnel survives backgrounding has not been verified on real hardware. The in-app updater deliberately does not pick this up yet.
After installing, do these two things
Android will stop a background VPN unless you allow it. Neither can be enabled by the app:
- Settings → Background reliability → Allow background activity (battery optimisation exemption)
- Open VPN settings → enable Always-on VPN for Revolt VPN. Optionally enable Block connections without VPN so traffic stops rather than leaks if the tunnel drops.
Then connect, swipe the app away from recents, and check that traffic still flows.
Fixed
- The app could report "connected" with no traffic. Startup state came from a local SOCKS probe that read the VPN's port from a static living in a different process — always null from the UI process, so it always fell back to port 10807. Correct only while the port was fixed; 3.3.1's ephemeral ports made it permanently wrong. Liveness now comes from the OS.
- A frozen countdown could outlive the tunnel. The foreground notification is owned by the VPN service, but the UI process was posting to the same notification id. When that process died, its notification stayed on screen forever.
Removed
- Standard/Extreme resilience modes and the runtime-restart machinery. Recovery ran off a broadcast delivered to the app process, so it could never fire when Android killed that process.
- Startup restoration and the config-snapshot rebuild.
Full detail in CHANGELOG.md.
Downloads
-
3.3.1 Pre-Release
released this
2026-08-31 23:31:51 +03:00 | 48 commits to main since this releaseSecure routing and runtime resilience.
Connection modes
Two explicit modes replace the old Auto mode. TUN is the default Android VPN routing. SOCKS5 runs a local authenticated proxy with no VPN interface, and never requests the VPN permission.
Authenticated local SOCKS5
Every connection binds an ephemeral loopback port with fresh random credentials. Android loopback is reachable by any app on the device, so this authentication is load-bearing. Credentials stay in memory and are never persisted or logged.
Resilience
Standard and Extreme profiles. Extreme restarts a failed Xray/tun2socks runtime rather than dropping to the direct network. Android physical-network monitoring ignores the VPN's own network, fixing the old reconnect loop.
Privacy
Session metadata is now hidden from public lock-screen previews. The app requests no package visibility at all.
Fixes
- Extreme recovery survives an app-process restart
- First tap on the connect button is no longer ignored
- The health probe no longer polls while connected
- Session countdown reconciles against wall-clock time on resume
Full detail in CHANGELOG.md.
Contains work from #2 by @Naveax.
Downloads
-
3.3.0 Stable
released this
2026-08-30 15:30:14 +03:00 | 59 commits to main since this releaseSee CHANGELOG.md for the full list of changes.
Downloads
-
v3.2.2 - final Stable
released this
2026-08-08 14:21:53 +03:00 | 68 commits to main since this releaseApp works you can use it freely and privately
Downloads