From e191213ce8867e78d916c8ff45bafd4523d0cd94 Mon Sep 17 00:00:00 2001 From: Mehroz Anjum Date: Thu, 15 Oct 2020 17:41:58 +0500 Subject: [PATCH 1/4] Android 10 Fix For ics-openvpn library Fixed: "Cannot run program error=13, Permission denied" issue which was prevent app to start process in android 10. --- .../src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java | 1 + .../main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Android-code/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java b/Android-code/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java index b836f5a..7dcd38c 100644 --- a/Android-code/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java +++ b/Android-code/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java @@ -186,6 +186,7 @@ else if ((flags & M_DEBUG) != 0) } catch (IOException e) { + e.printStackTrace(); VpnStatus.logException("Error reading from output of OpenVPN process", e); stopProcess(); } diff --git a/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java index aa14ea9..f5108ec 100644 --- a/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java +++ b/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java @@ -30,6 +30,12 @@ public class VPNLaunchHelper { private static String writeMiniVPN(Context context) { + + String nativeAPI = NativeUtils.getNativeAPI(); + /* Q does not allow executing binaries written in temp directory anymore */ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) + return new File(context.getApplicationInfo().nativeLibraryDir, "libovpnexec.so").getPath(); + String[] abis; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) abis = getSupportedABIsLollipop(); From cd33b9786d37d52985c886362c800a3f90cbe0b6 Mon Sep 17 00:00:00 2001 From: Mehroz Anjum Date: Thu, 15 Oct 2020 17:47:55 +0500 Subject: [PATCH 2/4] Update VPNLaunchHelper.java --- .../src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java index f5108ec..6ca17ca 100644 --- a/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java +++ b/Android-code/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java @@ -43,7 +43,7 @@ private static String writeMiniVPN(Context context) { //noinspection deprecation abis = new String[]{Build.CPU_ABI, Build.CPU_ABI2}; - String nativeAPI = NativeUtils.getNativeAPI(); + //String nativeAPI = NativeUtils.getNativeAPI(); if (!nativeAPI.equals(abis[0])) { VpnStatus.logWarning(R.string.abi_mismatch, Arrays.toString(abis), nativeAPI); abis = new String[] {nativeAPI}; From 539bb618e3220315ca689c003e67ca4a3ade6052 Mon Sep 17 00:00:00 2001 From: Mehroz Anjum Date: Thu, 15 Oct 2020 18:22:09 +0500 Subject: [PATCH 3/4] Added libovpnexec.so in jniLibs for android 10 Added libovpnexec.so in jniLibs for android 10 --- .../src/main/jniLibs/arm64-v8a/libovpnexec.so | Bin 0 -> 5896 bytes .../src/main/jniLibs/armeabi-v7a/libovpnexec.so | Bin 0 -> 5616 bytes .../app/src/main/jniLibs/x86/libovpnexec.so | Bin 0 -> 5608 bytes .../app/src/main/jniLibs/x86_64/libovpnexec.so | Bin 0 -> 6240 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Android-code/app/src/main/jniLibs/arm64-v8a/libovpnexec.so create mode 100644 Android-code/app/src/main/jniLibs/armeabi-v7a/libovpnexec.so create mode 100644 Android-code/app/src/main/jniLibs/x86/libovpnexec.so create mode 100644 Android-code/app/src/main/jniLibs/x86_64/libovpnexec.so diff --git a/Android-code/app/src/main/jniLibs/arm64-v8a/libovpnexec.so b/Android-code/app/src/main/jniLibs/arm64-v8a/libovpnexec.so new file mode 100644 index 0000000000000000000000000000000000000000..d099c7bdbddac16f0008ba5e66f1b5c42eede5dc GIT binary patch literal 5896 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 literal 0 HcmV?d00001 diff --git a/Android-code/app/src/main/jniLibs/x86/libovpnexec.so b/Android-code/app/src/main/jniLibs/x86/libovpnexec.so new file mode 100644 index 0000000000000000000000000000000000000000..deea86d6e485a1080d42c07e35d919cb19389ec1 GIT binary patch literal 5608 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 IUqDrV120DBy8r+H literal 0 HcmV?d00001 From 81e5aed5cfa42bcf7813fe414caf763135229cc5 Mon Sep 17 00:00:00 2001 From: Muhammad Mehroz Anjum Date: Thu, 15 Oct 2020 18:27:05 +0500 Subject: [PATCH 4/4] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b32a019..3e89bd1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Easy VPN Free ---- +## UPDATE +Fixed crash on **Android 10** ## Introduction Android application which lets you easily to connect to a number of free VPN server around the world with just a single tap!