From 2301a250b40b69b179218f26cdd6877ca13be9b4 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 27 Mar 2020 10:26:51 +0100 Subject: [PATCH] android: Don't require a password on Android 7 and newer --- .../java/org/strongswan/android/logic/CharonVpnService.java | 3 ++- .../src/main/jni/libandroidbridge/backend/android_service.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java index c46605dfcb..7163512345 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java @@ -307,7 +307,8 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe { Log.i(TAG, "charon started"); - if (mCurrentProfile.getVpnType().has(VpnTypeFeature.USER_PASS) && + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N && + mCurrentProfile.getVpnType().has(VpnTypeFeature.USER_PASS) && mCurrentProfile.getPassword() == null) { /* this can happen if Always-on VPN is enabled with an incomplete profile */ setError(ErrorState.PASSWORD_MISSING); diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c index c1c1e3acd5..9c65768f19 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c @@ -662,7 +662,10 @@ static void add_auth_cfg_pw(private_android_service_t *this, } auth->add(auth, AUTH_RULE_IDENTITY, id); - this->creds->add_username_password(this->creds, username, password); + if (password) + { + this->creds->add_username_password(this->creds, username, password); + } peer_cfg->add_auth_cfg(peer_cfg, auth, TRUE); } -- 2.47.2