diff --git a/conf/options/charon.opt b/conf/options/charon.opt
index fd2d36a0b..52983ee63 100644
--- a/conf/options/charon.opt
+++ b/conf/options/charon.opt
@@ -40,6 +40,17 @@ charon.cache_crls = no
Certification Authority (CA) to **/etc/ipsec.d/crls** (stroke) or
**/etc/swanctl/x509crl** (vici), respectively.
+charon.check_current_path = no
+ Whether to use DPD to check if the current path still works after any
+ changes to interfaces/addresses.
+
+ By default, after detecting any changes to interfaces and/or addresses no
+ action is taken if the current path to the remote peer still looks usable.
+ Enabling this option will use DPD to check if the path actually still works,
+ or, for instance, the peer removed the state after a longer phase without
+ connectivity. It will also trigger a MOBIKE update if NAT mappings were
+ removed during the downtime.
+
charon.cisco_unity = no
Send Cisco Unity vendor ID payload (IKEv1 only).
@@ -220,6 +231,11 @@ charon.interfaces_use
charon.keep_alive = 20s
NAT keep alive interval.
+charon.keep_alive_dpd_margin = 0s
+ Number of seconds the keep alive interval may be exceeded before a DPD is
+ sent instead of a NAT keep alive (0 to disable). This is only useful if a
+ clock is used that includes time spent suspended (e.g. CLOCK_BOOTTIME).
+
charon.leak_detective.detailed = yes
Includes source file names and line numbers in leak detective output.
diff --git a/src/frontends/android/app/src/main/AndroidManifest.xml b/src/frontends/android/app/src/main/AndroidManifest.xml
index 2b2ddfcdd..6c61e06f1 100644
--- a/src/frontends/android/app/src/main/AndroidManifest.xml
+++ b/src/frontends/android/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
\ No newline at end of file
diff --git a/src/frontends/android/app/src/main/res/drawable-hdpi/ic_launcher.png b/src/frontends/android/app/src/main/res/mipmap-hdpi/ic_app.png
similarity index 100%
rename from src/frontends/android/app/src/main/res/drawable-hdpi/ic_launcher.png
rename to src/frontends/android/app/src/main/res/mipmap-hdpi/ic_app.png
diff --git a/src/frontends/android/app/src/main/res/drawable-mdpi/ic_launcher.png b/src/frontends/android/app/src/main/res/mipmap-mdpi/ic_app.png
similarity index 100%
rename from src/frontends/android/app/src/main/res/drawable-mdpi/ic_launcher.png
rename to src/frontends/android/app/src/main/res/mipmap-mdpi/ic_app.png
diff --git a/src/frontends/android/app/src/main/res/drawable-xhdpi/ic_launcher.png b/src/frontends/android/app/src/main/res/mipmap-xhdpi/ic_app.png
similarity index 100%
rename from src/frontends/android/app/src/main/res/drawable-xhdpi/ic_launcher.png
rename to src/frontends/android/app/src/main/res/mipmap-xhdpi/ic_app.png
diff --git a/src/frontends/android/app/src/main/res/values-de/strings.xml b/src/frontends/android/app/src/main/res/values-de/strings.xml
index fcd14ea24..aaef5a6b9 100644
--- a/src/frontends/android/app/src/main/res/values-de/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-de/strings.xml
@@ -1,6 +1,6 @@
Log
@@ -215,6 +217,8 @@
- Wiederholen in %1$d Sekunden
Wiederholen abbrechen
+ Akku-Optimierung deaktivieren
+ Bitte den nächsten Dialog bestätigen, um die App auf die weisse Liste für Akku-Optimierung zu setzen, so dass sie NAT keepalives und Rekeyings zeitlich korrekt planen kann, um konstant erreichbar zu bleiben während die VPN-Verbindung besteht.
VPN umschalten
diff --git a/src/frontends/android/app/src/main/res/values-pl/strings.xml b/src/frontends/android/app/src/main/res/values-pl/strings.xml
index 6f4716ba8..16ae3fc7d 100644
--- a/src/frontends/android/app/src/main/res/values-pl/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-pl/strings.xml
@@ -36,6 +36,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
Log
@@ -215,6 +217,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/values-ru/strings.xml b/src/frontends/android/app/src/main/res/values-ru/strings.xml
index 5def66df8..426084f22 100644
--- a/src/frontends/android/app/src/main/res/values-ru/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-ru/strings.xml
@@ -33,6 +33,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
Журнал
@@ -212,6 +214,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/values-ua/strings.xml b/src/frontends/android/app/src/main/res/values-ua/strings.xml
index 4920aa238..7f414e524 100644
--- a/src/frontends/android/app/src/main/res/values-ua/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-ua/strings.xml
@@ -34,6 +34,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
Журнал
@@ -213,6 +215,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/values-zh-rCN/strings.xml b/src/frontends/android/app/src/main/res/values-zh-rCN/strings.xml
index 3408f5f55..75a3bef33 100644
--- a/src/frontends/android/app/src/main/res/values-zh-rCN/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-zh-rCN/strings.xml
@@ -33,6 +33,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
日志
@@ -212,6 +214,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/values-zh-rTW/strings.xml b/src/frontends/android/app/src/main/res/values-zh-rTW/strings.xml
index e3d7f0361..28e4e5ae1 100644
--- a/src/frontends/android/app/src/main/res/values-zh-rTW/strings.xml
+++ b/src/frontends/android/app/src/main/res/values-zh-rTW/strings.xml
@@ -33,6 +33,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
日誌
@@ -212,6 +214,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/src/frontends/android/app/src/main/res/values/mipmaps.xml
similarity index 78%
rename from src/frontends/android/app/src/main/res/mipmap-anydpi/ic_launcher.xml
rename to src/frontends/android/app/src/main/res/values/mipmaps.xml
index 653d08006..9711350a0 100644
--- a/src/frontends/android/app/src/main/res/mipmap-anydpi/ic_launcher.xml
+++ b/src/frontends/android/app/src/main/res/values/mipmaps.xml
@@ -1,6 +1,6 @@
-
\ No newline at end of file
+
+ @mipmap/ic_app
+ @mipmap/ic_app
+
diff --git a/src/frontends/android/app/src/main/res/values/strings.xml b/src/frontends/android/app/src/main/res/values/strings.xml
index 4d9fd879f..b72aad9c6 100644
--- a/src/frontends/android/app/src/main/res/values/strings.xml
+++ b/src/frontends/android/app/src/main/res/values/strings.xml
@@ -36,6 +36,8 @@
Settings
Default VPN profile
Connect to most recently used profile
+ Ignore battery optimizations
+ Don\'t show a warning if the app is not on the device\'s power whitelist
Log
@@ -215,6 +217,8 @@
- Retry in %1$d seconds
Cancel retry
+ Disable battery optimizations
+ Please confirm the next dialog to add the app to the device\'s power whitelist so it can ignore battery optimizations and schedule NAT keep-alives and rekeyings accurately in order to constantly keep reachable while the VPN is established.
Toggle VPN
diff --git a/src/frontends/android/app/src/main/res/xml/settings.xml b/src/frontends/android/app/src/main/res/xml/settings.xml
index 908a888d5..3eb7343e1 100644
--- a/src/frontends/android/app/src/main/res/xml/settings.xml
+++ b/src/frontends/android/app/src/main/res/xml/settings.xml
@@ -1,6 +1,6 @@