Switch from starting tunnel with dummy ip and updating peers to only bring the tunnel up once peers are resolved. We still get the benefit of protection from bringing the vpn interface up, while preventing heavy peer updates post resolve.
Fix for dns resolution when no underlying dns servers are detected, use custom dns resolution with well known servers.
#1270
New features:
- Full config view in quick format
- Live tunnel config view in quick format
- IPv4/IPv6 endpoint fallback and recovery
- Improved DDNS handling
- Improved realtime tunnel monitoring via wireguard-go callbacks handshake failures and success
- Architecture change to always bring tunnels up with post tunnel bootstrapping for improved security and reliability with subsequent domain resolution and peer updates
- Added support for DoT and custom DNS provider endpoints
- Added support for Amnezia globals
- Improved/shared config parser with desktop
- Improved AndroidTV navigation
What went away:
- Kernel backend/mode
- Ping monitoring (now redundant with the handshake monitoring)
This will break for users who have selected get tunnel name via root shell. They will need to select the new option on update. Also, this will cause more location pings. Users who want less location pings will have to enable the legacy api option manually.
#768#797
Migrated app from using ObjectBox library for db to Room as ObjectBox is not FLOSS compliant.
Migrated app to using version catalog for managing dependancies.
Added floss build flavor for F-Droid and general build flavor for all other builds. Floss build excludes google analytics and crashlytics.
Other performance improvements and refactors.