From 69381576d76ae89358660239dcf9a51f5888e026 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 16 Oct 2025 15:31:28 +0200 Subject: [PATCH 1/3] android: Use Docker's recommended syntax for env variables --- src/frontends/android/openssl/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontends/android/openssl/Dockerfile b/src/frontends/android/openssl/Dockerfile index 4b88928c1..cf24befa3 100644 --- a/src/frontends/android/openssl/Dockerfile +++ b/src/frontends/android/openssl/Dockerfile @@ -18,8 +18,8 @@ RUN apt-get update && \ COPY compile.sh / RUN chmod +x /compile.sh -ENV ANDROID_NDK_ROOT /ndk -ENV OUT_DIR /out +ENV ANDROID_NDK_ROOT=/ndk +ENV OUT_DIR=/out WORKDIR /src From 5d98463eed4d423c07cc110cac805c3c63d67d11 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 16 Oct 2025 16:39:49 +0200 Subject: [PATCH 2/3] android: Fix querying display name of the log file The previous code did not necessarily provide it (in particular if the size, or anything else, was queried as first column). --- .../android/data/LogContentProvider.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java index 46b060c39..0049f08f3 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/LogContentProvider.java @@ -20,6 +20,8 @@ import java.io.File; import java.io.FileNotFoundException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import org.strongswan.android.logic.CharonVpnService; @@ -85,28 +87,33 @@ public class LogContentProvider extends ContentProvider { /* this is called by apps to find out the name and size of the file. * since we only provide a single file this is simple to implement */ - if (projection == null || projection.length < 1) + if (projection == null) { - return null; + projection = new String[]{ OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE }; } Long timestamp = mUris.get(uri); if (timestamp == null) { /* don't check the validity as this information is not really private */ return null; } - MatrixCursor cursor = new MatrixCursor(projection, 1); - if (OpenableColumns.DISPLAY_NAME.equals(cursor.getColumnName(0))) + List cols = new ArrayList<>(); + List vals = new ArrayList<>(); + for (String col : projection) { - cursor.newRow().add(CharonVpnService.LOG_FILE); - } - else if (OpenableColumns.SIZE.equals(cursor.getColumnName(0))) - { - cursor.newRow().add(mLogFile.length()); - } - else - { - return null; + if (OpenableColumns.DISPLAY_NAME.equals(col)) + { + cols.add(OpenableColumns.DISPLAY_NAME); + vals.add(CharonVpnService.LOG_FILE); + } + else if (OpenableColumns.SIZE.equals(col)) + { + cols.add(OpenableColumns.SIZE); + vals.add(mLogFile.length()); + } } + + MatrixCursor cursor = new MatrixCursor(cols.toArray(new String[0]), 1); + cursor.addRow(vals.toArray()); return cursor; } From d8ff59d02faf69dbdac9fc1785bb2ec12bea2bcd Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 27 Oct 2025 15:13:02 +0100 Subject: [PATCH 3/3] android: New release after fixing eap-mschapv2 and log file issues OpenSSL is also updated in the released version of the app. --- src/frontends/android/app/build.gradle | 4 ++-- .../src/main/play/release-notes/de-DE/default.txt | 15 ++++++++------- .../src/main/play/release-notes/en-US/default.txt | 15 ++++++++------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/frontends/android/app/build.gradle b/src/frontends/android/app/build.gradle index f684b1019..49a3af857 100644 --- a/src/frontends/android/app/build.gradle +++ b/src/frontends/android/app/build.gradle @@ -9,8 +9,8 @@ android { minSdkVersion 21 targetSdkVersion 36 - versionCode 94 - versionName "2.6.0" + versionCode 95 + versionName "2.6.1" externalNativeBuild { ndkBuild { diff --git a/src/frontends/android/app/src/main/play/release-notes/de-DE/default.txt b/src/frontends/android/app/src/main/play/release-notes/de-DE/default.txt index 8650f2060..e9defaaa4 100644 --- a/src/frontends/android/app/src/main/play/release-notes/de-DE/default.txt +++ b/src/frontends/android/app/src/main/play/release-notes/de-DE/default.txt @@ -1,11 +1,12 @@ +# 2.6.1 # + +- Aktualisiert OpenSSL, um ML-KEM zu unterstützen (muss explizit in Proposal konfiguriert werden) +- Behebt eine Schwachstelle im eap-mschapv2 Plugin +- Korrigiert den Dateinamen, wenn das Log exportiert wird + # 2.6.0 # - Erlaubt die Vorauswahl eines Benutzer-Zertifikats via Alias in verwalteten Profilen -- Erlaubt die Auswahl von Benutzer-Zertifikaten in verwalteten Profilen, die kein eigenes Zertifikat installieren +- Erlaubt die Auswahl von Benutzer-Zertifikaten in verwalteten Profilen - Fixt das Lesen von Split-Tunneling Settings in verwalteten Profilen -- Anpassungen für die randlose Anzeige, welche erzwungen wird, wenn Android 16 als Ziel-SDK verwendet wird -- Ziel-SDK auf Android 16 erhöht - -# 2.5.6 # - -- Unterstützt benutzerdefinierte HTTP Proxy-Server (Android 10+) +- Anpassungen für die randlose Anzeige diff --git a/src/frontends/android/app/src/main/play/release-notes/en-US/default.txt b/src/frontends/android/app/src/main/play/release-notes/en-US/default.txt index 3577d2e5a..899e41603 100644 --- a/src/frontends/android/app/src/main/play/release-notes/en-US/default.txt +++ b/src/frontends/android/app/src/main/play/release-notes/en-US/default.txt @@ -1,11 +1,12 @@ +# 2.6.1 # + +- Update OpenSSL to support ML-KEM (requires explicit configuration in proposals) +- Fix vulnerability in eap-mschapv2 plugin +- Fix filename when exporting the log + # 2.6.0 # - Allow preselecting a user certificate via alias in managed profiles -- Allow selecting a user certificate for managed profiles that don't install their own certificate +- Allow selecting a user certificate for managed profiles - Fix reading split-tunneling settings in managed profiles -- Adapt to edge-to-edge display, which becomes mandatory when targeting Android 16 -- Increase target SDK to Android 16 - -# 2.5.6 # - -- Add support for custom HTTP proxy server (Android 10+) +- Adapt to edge-to-edge display