Skip to content

Releases: grifmo/univpn

UniVPN v0.9.2

Choose a tag to compare

@github-actions github-actions released this 10 Oct 12:47
44dac40

This release fixes all 13 issues from the community code review, including the two known issues in v0.9.0 and v0.9.1. Updating is recommended.

Fixes

Tunnel state (#14)

  • Mullvad profiles keep working after the 7-day refresh. The refresh now keeps a resolvable server address, and profiles broken by earlier versions are repaired automatically. (#1)
  • A failed connection is no longer shown as active. The overlay and status chip show "⚠ — not connected" in red, and UniVPN retries with backoff (5 s up to 60 s). (#2)
  • A tunnel that drops or is taken over by another VPN app is detected. UniVPN shows the warning and reconnects on the next app switch, instead of fighting the other app for the VPN slot. (#3)
  • After a restart or standby, UniVPN looks back far enough to find the app in front. (#4)
  • "Default (keep current tunnel)" now keeps the current tunnel instead of disconnecting it. (#5)
  • A foreground change is no longer lost when a tunnel switch is already in progress. (#7)
  • A config refresh can no longer bring back a profile you deleted. (#11)
  • Test Connection now checks for a real WireGuard handshake. (#10)

Data and security (#15, #16)

  • WireGuard configs, including private keys, are encrypted with a key held in the Android Keystore. Existing profiles are encrypted on first start, with no plaintext left behind in the database file. (#13)
  • Web import requires the PIN shown on the TV. Wrong PINs are rate-limited, and request size and connections are limited. Uploaded configs are validated before they are saved. (#8, #9)
  • Deleting a provider account also removes its credentials and generated keys. (#12)
  • The 4→5 database migration adds the missing serverName column. (#6)

Upgrading

Install over v0.9.x as usual. Your profiles and settings are kept. Debug builds can't be updated with a release build; uninstall those first.


Full Changelog: v0.9.1...v0.9.2

UniVPN v0.9.2-beta.1

UniVPN v0.9.2-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Oct 08:57
44dac40

What's Changed

  • Keep the tunnel state honest: reconcile, retry, detect drops by @grifmo in #14
  • Encrypt stored WireGuard configs with a Keystore key by @grifmo in #16
  • Require a PIN for web import and limit request size by @grifmo in #15

New Contributors

Full Changelog: v0.9.1...v0.9.2-beta.1

UniVPN v0.9.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 07:46

Changes

  • The JetBrains Mono font now loads. The bundled file was a web font Android can't read, so monospaced labels (status chip, profile badges, server rows) fell back to the system font.
  • The Play Store icon now uses the current logo.

⚠️ Known issues

Fixed in v0.9.2. Please update.

  • Mullvad profiles generated in the app stop working after 7 days. The automatic refresh writes a server address that can't be resolved, so the tunnel fails to start.
  • A failed connection still shows the profile as active. If a tunnel can't start, UniVPN keeps displaying the profile as active and doesn't retry. Traffic then leaves the device unprotected.

Together, these mean a Mullvad profile can look connected after a week while nothing is protected.

Workaround: Download a WireGuard .conf from your Mullvad account and import it instead of generating the profile in UniVPN. Imported configs are never refreshed. With any provider, check your IP address after switching apps if it matters. The optional overlay helps here: it shows the active profile and the external IP address.

All findings from a community code review are tracked in Issues. See also Known issues in the README.


Full Changelog: v0.9.0...v0.9.1

UniVPN v0.9.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:20

⚠️ Known issues

Fixed in v0.9.2. Please update.

  • Mullvad profiles generated in the app stop working after 7 days. The automatic refresh writes a server address that can't be resolved, so the tunnel fails to start.
  • A failed connection still shows the profile as active. If a tunnel can't start, UniVPN keeps displaying the profile as active and doesn't retry. Traffic then leaves the device unprotected.

Together, these mean a Mullvad profile can look connected after a week while nothing is protected.

Workaround: Download a WireGuard .conf from your Mullvad account and import it instead of generating the profile in UniVPN. Imported configs are never refreshed. With any provider, check your IP address after switching apps if it matters. The optional overlay helps here: it shows the active profile and the external IP address.

All findings from a community code review are tracked in Issues. See also Known issues in the README.


Full Changelog: https://github.com/grifmo/univpn/commits/v0.9.0