100 Commits
Author SHA1 Message Date
Zane Schepke 83cc0cabbd chore: release 5.6.0 2026-08-26 17:35:01 -04:00
Zane Schepke 0f386c352e chore(deps): bump aboutlibraries
closes #1429
2026-08-26 16:25:29 -04:00
Zane Schepke 1e95c8fef3 fix: amnezia 3.1 properties, parsing ipc
closes #1428
2026-08-26 14:14:23 -04:00
Zane Schepke ce8e58af1c feat: amneziawg 3.1 support
closes #1428
2026-08-26 04:22:08 -04:00
Zane Schepke 0bef3d78a9 chore: README badge colors 2026-08-24 04:55:16 -04:00
Zane Schepke 8bebd49bd2 chore: update README 2026-08-24 04:47:46 -04:00
Zane Schepke 661a6ed0b5 chore: release 5.5.0 2026-08-24 03:47:42 -04:00
Zane Schepke 0309017ee3 refactor: notify on active tunnel feature toggles 2026-08-24 03:40:55 -04:00
Zane Schepke c7bd0b4f66 feat: seamless recovery tuning
Seamless recovery can now be tuned two various delay intervals by users.

Fixes:

This core version fixes a bug where valid Amnezia packet signatures would fail parser validation.

Fixes a bug where IPv6 endpoint recovery would not fire in situations where network is a valid candidate for upgrade but tunnel was repaired by IPv4 fallback. IPv6 now always tries once and only once on networks that support IPv6 if the peer endpoints are currently IPv4.

Fixes DNS resolution bug for IPv6 only endpoints.

Uses the new core logging level configuration.

Fixes a bug where stats and live config state was not updating properly with tunnel monitoring interval.
2026-08-24 02:43:50 -04:00
Zane Schepke 8dc51ab83e fix: bump core, fix suffixes description
closes #1422
closes #1384
closes #1334
2026-08-22 05:38:45 -04:00
Zane Schepke ecafc05c50 chore: bump gradle, agp 2026-08-21 23:20:10 -04:00
zaneschepke e03b054774 chore: release 5.4.0 2026-08-19 00:48:04 -04:00
zaneschepke 30ea850c44 chore: update readme amnezia support version 2026-08-19 00:06:29 -04:00
zaneschepke a534819c06 refactor: foreign dns naming to transit dns 2026-08-18 23:18:57 -04:00
zaneschepke 5db1fc1a7a ci: add nightly dispatch for fdroid repo 2026-08-18 05:52:16 -04:00
zaneschepke 70924980db feat: daily app update check and notification for standalone app flavor 2026-08-18 02:35:18 -04:00
zaneschepke cddd5149f0 fix: file name import bug and Android TV import error messaging
Fixes and index out of bounds bug on file name import and improved Android TV error messaging on file import edge cases.

closes #1148
2026-08-18 01:15:45 -04:00
zaneschepke 6486cd60fb fix: tile refresh crash in work profile for some android devices
closes #1269
2026-08-18 00:46:30 -04:00
zaneschepke 64b8f33de5 feat: add user configurable foreign dns and dns suffix policy options
closes #1401
closes #1384
2026-08-18 00:33:20 -04:00
zaneschepke dae1df5887 fix: bump core to 1.1.5
Pulls in fix for #1416.

closes #1416

 https://github.com/wgtunnel/core/commit/852ad2b40abb5a6decea1303332486c0a5974ab9
2026-08-17 00:30:03 -04:00
zaneschepke 1bedaba32b chore: release 5.3.1 2026-08-15 03:21:30 -04:00
zaneschepke 6c37a26bec fix: ipv6 recovery, kill switch settings change when active tun, lockdown and split tun dns failures
Fixes ipv6 recovery bug where recovery was not properly triggering.

Fixes a bug where changes to lockdown settings while a tunnel is active could break the kill switch tunnel bridge.

Fixes a bug where plain dns in our dns hijack (during lockdown or split dns w/plain) would cause DNS resolution loops, preventing resolution.

Fixes a bug where IPv6 tunnel DNS in plain DNS hijack would fail due to missing bracketing.
2026-08-15 03:15:50 -04:00
zaneschepke ec4b486cea ci: fix release notifications 2026-08-14 02:43:46 -04:00
zaneschepke a8edde0ee8 chore: fix fastfile for missing metadata files 2026-08-14 02:37:10 -04:00
Zane Schepke e525f9f2b2 chore(lang): New Crowdin updates (#1411) 2026-08-14 01:53:24 -04:00
zaneschepke 21cb4ee69f refactor: IPv6 endpoint settings, fallback is now automatic for ipv6 preferred endpoints 2026-08-14 01:36:09 -04:00
zaneschepke 640e831906 ci: fix crowdin fastlane mappings, play metadata publish to separate workflow 2026-08-14 01:14:47 -04:00
zaneschepke 2e574c563a chore: release 5.3.0 2026-08-14 00:37:47 -04:00
zaneschepke 71ae16802c fix: bump core for boottime go runtime patch
Bump nav, appcompat, and compose
2026-08-14 00:31:59 -04:00
zaneschepke 8571b4ef9b fix: export .conf mimetype and legacy downloads export snackbar message
closes #902
2026-08-13 12:51:29 -04:00
zaneschepke 3e2ebb5b1c fix: sticky service restore and package replace restore
Tunnels and auto tunnel now properly restore on start sticky scenarios when the service is killed and when package is replaced.

closes #1259
2026-08-13 05:13:18 -04:00
Zane Schepke c00afcbfdc feat(lang): new Crowdin updates (#1410) 2026-08-13 01:22:51 -04:00
zaneschepke 26861aa6f3 ci: fix fastlane to ignore incomplete metadata 2026-08-13 00:43:15 -04:00
zaneschepke 04c7e287e9 chore: fix fastlane for crowdin skip untranslated 2026-08-13 00:41:26 -04:00
zaneschepke ae043d6014 fix: Android TV export flow to legacy downloads export
Refactor of config export to a single flow.

Always assume SAF is not available on Android TV as it can be falsely reported to be supported. Fallback to legacy downloads export.

closes #902
2026-08-13 00:05:47 -04:00
zaneschepke 5526260629 chore: fix crowdin fastlane mappings 2026-08-12 02:57:05 -04:00
zaneschepke b12173ab6e chore: add basque language code mapping 2026-08-12 02:37:41 -04:00
zaneschepke 1eff703bfc chore: fix crowdin config 2026-08-12 02:16:21 -04:00
zaneschepke 827e7301aa Merge branch 'master' of github.com:wgtunnel/wgtunnel 2026-08-12 01:12:54 -04:00
zaneschepke f14db97a49 chore: fix crowdin config locale mapping 2026-08-12 01:12:26 -04:00
Zane Schepke 48d94e5320 Update Crowdin configuration file
[ci skip]
2026-08-12 01:01:10 -04:00
zaneschepke a2695c8b44 chore: trigger Crowdin source sync 2026-08-12 00:57:39 -04:00
Zane Schepke eeb886f830 feat(lang): new Crowdin updates (#1359)
Removes all english placeholders
2026-08-12 00:19:16 -04:00
zaneschepke c0922a210b feat: amnezia 3.0 support
Changes to 1.1.0 add Amnezia 3.0 support to the config parser. UI has also been updated to support Amnezia 3.0 values.

closes #1408

Additional fixes:
- Fixes race during tunnel bootstrap that could leave an orphaned tunnel
closes #1407
- Fixes bug where initial tunnel state could be lost due to a tunnel handle mapping race
closes #1404
2026-08-11 23:30:36 -04:00
zaneschepke 4e344b2e65 fix: android tv and legacy device file exports
closes #902
closes #970
2026-08-11 17:41:00 -04:00
zaneschepke b647b39eaa fix: gamepad google play warning
closes #1393
2026-08-11 03:09:06 -04:00
zaneschepke 71b1466b56 fix: ddns failing to retry after detecting no change
closes #1402
2026-08-11 02:46:19 -04:00
zaneschepke d552abc3e8 fix: missing core deps 2026-08-10 23:06:45 -04:00
zaneschepke 59869e0333 chore(deps): bump ksp, ktfmt, gradle wrapper
closes #1403
closes #1400
closes #1399
2026-08-10 18:13:03 -04:00
zaneschepke 373022412b refactor: migrate to new shared backend and core 2026-08-10 18:01:29 -04:00
zaneschepke d349aeef52 chore(deps): bump navigation3, ktor client 2026-08-02 00:31:27 -04:00
zaneschepke 6076994a22 fix: config import validation and ip4p parsing
closes #869
2026-08-02 00:23:55 -04:00
zaneschepke 86d77488ee fix!: seamless recovery, DDNS recovery, and IPv4/IPv6 fallback/recovery
Seamless recovery was far to aggressive in doing full tunnel bounces in the old implementation. The feature has now been integrated into a more broad recovery job with decoupled individual recovery paths that respect a recovery hierarchy of DDNS recovery first (if enabled), IPv4 fallback second (if ipv6 preferred and active), and only full bounce when all else fails. The feature is now also gated to only work when the device is interactive/not asleep to prevent false positives.

Additionally, the first implementation of seamless recovery was very crude. It performed fresh DNS request for tunnel endpoints because it didn't have a caching mechanism. The same for IPv4/Ipv6 fallback and recovery. This has been fixed by reintroducing the user setting for tagging a tunnel as a DDNS tunnel (BREAKING CHANGE for DDNS users). For the seamless recovery path, we now only make a fresh DNS request if the user has flagged the tunnel as a DDNS tunnel. IPv6 and IPv4 fallback and recovery still respect the cache in all scenarios.

Seamless recovery now properly only fires after 30 seconds of persistent handshake failures while the phone is interactive.

closes #1373
2026-08-01 15:42:40 -04:00
zaneschepke 13171ed1bb fix: old handle not properly cleaned up in tunnel bounce scenarios 2026-07-28 13:12:36 -04:00
zaneschepke 2a0209d609 fix: seamless recovery should only fire if we detect a usable network
Before, seamless recovery would fire if we detect any network. It should really only be triggering if we detect a usable network that has internet connectivity.
2026-07-28 13:07:16 -04:00
zaneschepke 3e17c12d37 chore(deps): bump agp
closes #1382
2026-07-25 02:34:06 -04:00
zaneschepke f585050bf2 chore: release 5.2.1 2026-07-23 03:52:41 -04:00
zaneschepke 38093c3048 chore(deps): update sonner 2026-07-23 03:50:44 -04:00
zaneschepke d65c43eb9e fix: selected tunnels should consume and clear selected on back
On back press/swipe, we should clear selected and consume the back instead of exiting the app
2026-07-23 03:42:36 -04:00
zaneschepke a456b2e510 refactor: add chevron for app mode 2026-07-23 03:20:18 -04:00
zaneschepke 34edc47afe refactor: improve UI divider with a chevron
Match Android to denote another deeper screen
2026-07-23 03:03:03 -04:00
zaneschepke 554f83744a fix: hide Wi-Fi details if they are android defaults
To prevent confusion, Wi-Fi details that are Android defaults should be hidden from user

closes #1377
2026-07-23 02:40:33 -04:00
zaneschepke 8e41986809 fix: attempt to fix wifi change detection on problem oems while vpn active
Certain OEMs fail to fire any wifi network change callbacks while a VPN is active. To get around this, we query all networks for these devices on defaultNetwork change to see if there is a Wifi network available and fallback to legacy mode if we are in default mode as the all networks capabilities won't have location restricted details
2026-07-23 02:00:49 -04:00
zaneschepke 6122b21b05 chore: release 5.2.0 2026-07-22 03:15:37 -04:00
zaneschepke a32da7b758 feat: IP4P support
App now properly checks for IP4P IPv6 addresses and get the real IPv4 peer endpoint and port from the natmap format address

closes #1127

#869
2026-07-22 01:13:01 -04:00
zaneschepke d3b72f0421 fix: tunnel dns ui bug when moving from split to encrypted
Plain should now show as an option under encrypted settings
2026-07-22 00:35:53 -04:00
zaneschepke 69ca4ab0aa fix: stats job failed to find tunnel bug
Fixes bug in the stats job that could cause high CPU turn and drain battery if handle is missing before job is canceled

closes #1375
2026-07-22 00:18:21 -04:00
zaneschepke ff3607f5cc fix: auto tunnel BSSID exact match bug
BSSID exact match was properly finding the first exact match but then we were failing to start the tunnel

closes #1369
2026-07-21 03:00:02 -04:00
zaneschepke f25887fb18 fix: making the split tunnel screen aware of package installs and removals
The split tunneling screen was not properly updating the cache when the user installed packages or removed packages.

closes #1372
2026-07-21 02:49:28 -04:00
zaneschepke 15f12a064d refactor: migrate deprecated orbit api 2026-07-21 00:58:02 -04:00
zaneschepke a1b4f4752f fix: make exclude lan feature private IP DNS server aware
Fixes bug where exclude lan was not private DNS aware. This caused private IP DNS servers to be excluded from the tunnel and break or leak DNS

closes #799
2026-07-21 00:32:06 -04:00
zaneschepke 4f08b9a6d9 fix: bssid should always be normalized to uppercase
closes #1371
2026-07-20 23:10:32 -04:00
zaneschepke c30a2eed95 chore: bump quickie and aboutlibraries
closes #1367
closes #1366
2026-07-20 23:05:44 -04:00
zaneschepke 412c249629 feat: split dns, encrypted tunnel dns
Adds a new dependency on our core library for a tunnel wrapper that allows split dns and encrypted tunnel dns

Fixes a bug in network monitor where the active underlying network was incorrectly set on VPN toggles, cause issues with auto tunneling and other features

Fixes a bug with lockdown mode where the tunnel's DNS servers were not being used and a kill switch default DNS server was being used

closes #572
closes #1128
closes #1370
closes #1341

#1363
2026-07-20 03:15:21 -04:00
zaneschepke 38eb70347f chore: bump agp, enable parallel tooling 2026-07-16 01:17:05 -04:00
zaneschepke 22aa087543 chore: fix crowdin sync issues and metadata language mappings 2026-07-15 14:09:43 -04:00
zaneschepke 06ce2b76fa chore: release 5.1.0 2026-07-15 04:56:26 -04:00
zaneschepke c57a274b2a refactor: add defensive socket protector clearing 2026-07-15 04:43:52 -04:00
zaneschepke dbfaa3d657 chore: code formatting 2026-07-15 03:41:08 -04:00
zaneschepke ff58ffba11 fix: network detection race during vpn starts
Fixes race specifically with Wi-Fi networks where vpn starts could overwrite our SSID and BSSID values with android defaults
Make underlying/active network detail caching logic more robust for all detection modes
2026-07-15 02:03:44 -04:00
zaneschepke 2021a9ebe3 chore: bump orbit and kotlin
closes #1354
closes #1353
closes #1352
2026-07-14 13:29:25 -04:00
zaneschepke 1a35507a03 fix: dns resolver jni race, MTE tagging issue
Race where dns strings could be released from memory before go copied

All copies are now done sync

#1262
2026-07-14 13:20:38 -04:00
zaneschepke 666e015314 feat: add tunnel connection state to tunnel control tile
This also adds the tunnel name as the tile label

closes #1306
2026-07-14 05:27:43 -04:00
zaneschepke ba4dd0ab20 fix: integrate seamless recovery events with notifications
Add seamless recovery events and also detect seamless recovery DDNS and IPv4 events so we can notify user of these events like before
Improve snackbar queuing to fix sonner ordering issues
2026-07-14 03:15:43 -04:00
Zane Schepke 561337cc84 feat(lang): New Crowdin updates (#1350) 2026-07-14 03:10:01 -04:00
zaneschepke f0c094231c chore: update crowdin config 2026-07-14 03:01:12 -04:00
zaneschepke b6c3f27f37 refactor: clean up jni layer, improve logging, move status callback init to on load 2026-07-13 05:33:14 -04:00
zaneschepke 10357d689e chore: fix crowdin to skip untranslated 2026-07-13 02:23:09 -04:00
Zane Schepke e8e889f96c feat(lang): New Crowdin updates (#1346) 2026-07-13 01:58:46 -04:00
zaneschepke ff7eb0a90a chore: fix crowdin sync issue, language mapping 2026-07-13 01:46:23 -04:00
zaneschepke 0a6a639abb chore: fix translation duplicates from merge 2026-07-13 01:38:43 -04:00
Zane Schepke e414fba47c feat(lang): New Crowdin updates (#1335) 2026-07-13 01:30:25 -04:00
zaneschepke 3c69382700 feat: add toggle tunnel action to remote control feature 2026-07-12 01:14:51 -04:00
zaneschepke 95d99d83eb fix: proguard rules for new jni callback
#1262
2026-07-12 00:12:13 -04:00
zaneschepke 396e62df05 fix: defensive copies and async native resolver callback for GrapheneOS MTE crash
Copy strings with strdup to prevent go from seeing MTE tagged memory

Switch to async callback for native resolver to prevent go garbage collection issues with JVM thread + MTE

#1262
2026-07-11 02:54:07 -04:00
zaneschepke 4fe9824dd2 chore: fix warnings, bump gradle and ksp 2026-07-11 01:09:10 -04:00
zaneschepke adf96c66f5 fix: companion service start and shutdown
Companion service was not always properly starting and stopping with the vpnservice

closes #1334
2026-07-11 00:50:48 -04:00
zaneschepke 71712c09c1 feat: seamless recovery
DDNS, IPv4 recovery and seamless roaming have all been merged into the new seamless recovery feature. There were a lot of overlaps and edge cases that were best solved by the nuclear seamless recovery feature

Kotlin side now maintains ownership of the vpn service interface fd, preventing the closure of the interface while the seamless recovery feature closes and recreates the wireguard tunnel device, allowing maintained protection from leaks throughout the bounce process

This feature solves various network and tunnel issues including DDNS changes, network migration issues, NAT issues, Amnezia mimic packet issues, etc that were traditionally solved by a full vpn interface and tunnel destruction

closes #1295
closes #1036
2026-07-10 04:46:14 -04:00
zaneschepke 3eff5be130 chore: release 5.0.9 2026-07-07 15:43:33 -04:00
zaneschepke aaa4a28f4e chore: fix android tv banner 2026-07-07 15:39:15 -04:00