Download the latest version here.
What's Changed
- New Crowdin updates by @kasnder in #538
- Fix stats update loop continuing every 10s when screen is off by @kasnder in #549
- Restore host list settings visibility in minimal blocking mode by @kasnder in #547
- Remove hidden NetGuard lockdown feature by @kasnder in #542
- Add sort by most recent tracker detection by @nmarteybotchway in #537
- Improve DNS fallback: use Mullvad as secondary, only fall back when list is empty by @kasnder in #545
- Complete Material 3 migration with unified edge-to-edge by @kasnder in #540
- Add tracker activity timeline by @kasnder in #543
- Fix activity content overlapping system navigation bar by @kasnder in #558
- VPN battery optimizations, ePDG routing, and UI fixes by @kasnder in #546
- Add option in filter settings to show froxzen (disabled) apps by @nmarteybotchway in #556
- Make Timeline live-update and give it a guiding empty state by @kasnder in #572
- New Crowdin updates by @kasnder in #555
- Add WireGuard support via embedded wireguard-go bridge by @kasnder in #573
- [codex] Restore install tracker analysis notifications by @kasnder in #580
- Batch access/usage DB writes, debounce network reloads, back off WG restarts by @kasnder in #596
- Migrate WireGuard engine from wireguard-go to gotatun (Rust) by @kasnder in #594
- Add bulk exclude/include all apps from tracker monitoring by @kasnder in #544
- New Crowdin updates by @kasnder in #574
- Fix bottom nav bar overlap on edge-to-edge displays by @kasnder in #597
- Fix lock deadlocks, production NPE, connection leaks, and log typo by @kasnder in #539
- Fix Fastlane metadata length violations and add CI validation by @kasnder in #600
- Fix: stale pause alarm re-fires after manual resume from UI by @kasnder in #601
- Don't self-disable on OS-initiated VPN revoke (fix #526, #331) by @kasnder in #605
- Fix Fragment view leak and edge-to-edge/contrast UI polish issues by @kasnder in #606
- Transparency: label blocked/allowed in traffic log; whitelist Cloudflare CDN (WI-6: #554, #561, #358) by @kasnder in #607
- Fix DNS failure on IPv6-only mobile data (accept IPv6 resolvers) by @kasnder in #604
- Fix dead toggle for ambiguous shared-IP trackers in tracker list by @kasnder in #602
- Fix grayed-out Backup export/import and remove dead usage-tracking toggles (#308) by @kasnder in #609
- Stream-parse tracker blocklist assets to cut parse-time memory (#405) by @kasnder in #612
- Route IPv6 DNS servers through the VPN by @kasnder in #613
- Add optional TCP MSS clamp for tethering PMTUD failures (#478) by @kasnder in #603
- Fix cursor leaks and restore Chrome Timeline tracking by @kasnder in #614
- Fix no-op onboarding status buttons by @kasnder in #616
- Add feedback when an app can't be launched from details screen (#514) by @kasnder in #623
- Add Dependabot for automated dependency updates by @kasnder in #627
- Add reproducible Exodus tracker-signature updater script (#318) by @kasnder in #622
- ci: bump the actions group with 4 updates by @dependabot[bot] in #628
- Reproducible updaters for bundled lists + Disconnect category-drift flag by @kasnder in #635
- Accessibility sweep: label remaining unlabeled controls (#231) by @kasnder in #634
- deps: land safe Dependabot bumps; triage jni & gotatun by @kasnder in #637
- Add dynamic accessibility labels to app-list Internet toggle (#231) by @kasnder in #625
- Recover native tunnel failures safely by @kasnder in #620
- Make VPN replacement fail closed by @kasnder in #621
- Harden WireGuard bridge integration by @kasnder in #615
- New Crowdin updates by @kasnder in #598
- Fix weekly review regressions by @kasnder in #617
- New Crowdin updates by @kasnder in #639
- Fix Ukrainian blocking mode resources by @kasnder in #641
- Handle external VPN revocation policy by @kasnder in #638
- deps(rust): upgrade jni to 0.22.4 by @kasnder in #640
- Accessibility follow-ups: insights contrast, stat grouping, lint sweep by @kasnder in #646
- Respect per-app monitoring toggle when recording tracker access (#435) by @kasnder in #644
- Make filtered-but-hidden apps reachable via search (#420, #483) by @kasnder in #611
- Make WireGuard AllowedIPs authoritative over RFC1918 route exclusions (#593) by @kasnder in #645
- New Crowdin updates by @kasnder in #648
- New Crowdin updates by @kasnder in #650
- Make Rust build F-Droid compatible by @kasnder in #649
- Improve Android test coverage by @kasnder in #651
- Reduce Secure DNS screen-off battery use: RFC 8484 caching + idle-socket eviction by @kasnder in #657
- Consolidate system-app settings into one "Monitor system apps" toggle by @kasnder in #656
- Fix SecurityException crash resolving cross-profile UIDs on Android 16 by @kasnder in #667
- deps(rust): bump getrandom from 0.3.4 to 0.4.3 in /wgbridge-rs by @dependabot[bot] in #666
- ci: bump the actions group with 2 updates by @dependabot[bot] in #665
- deps(rust): bump gotatun from 0.7.2 to 0.8.1 in /wgbridge-rs by @kasnder in #668
- Speed up builds across worktrees by @kasnder in #663
- Improve TLS ClientHello SNI parsing (research mode) by @kasnder in #669
- Add reproducible release pipeline by @kasnder in #670
- Fix Android 37 platform package in release CI by @kasnder in #671
- New Crowdin updates by @kasnder in #659
- ci: bump the actions group with 2 updates by @dependabot[bot] in #672
- deps: bump com.android.tools.build:gradle from 9.2.1 to 9.3.0 in the gradle-minor-patch group by @dependabot[bot] in #674
- deps(rust): bump tokio from 1.52.3 to 1.53.1 in /wgbridge-rs in the cargo-minor-patch group by @dependabot[bot] in #673
- Fix ANR when handling package add/remove broadcasts by @kasnder in #678
- Version 2026072101 by @kasnder in #676
New Contributors
- @nmarteybotchway made their first contribution in #537
- @dependabot[bot] made their first contribution in #628
Full Changelog: 2026040...2026072