diff options
author | Arne Schwabe <arne@rfc2549.org> | 2021-10-01 19:55:17 +0200 |
---|---|---|
committer | Arne Schwabe <arne@rfc2549.org> | 2021-10-01 19:56:39 +0200 |
commit | 66cfaf459142f4e0d7427a7db5db53b37d750149 (patch) | |
tree | adfb7e528f5c6f298579cc8a23e59d122a36b042 /main | |
parent | 02d27a843f29a03028bb427473008ee657059855 (diff) |
Remove Ice Cream Sandwich support from ics-openvpn (closes #1337)
Ice cream sandwich was the first Android version to support the
VPNService API, which also gave the project its name as it was an
Android port to ICS. Now that the NDK does no longer support API 14 and
15, this project needs to say farewell to Ice cream sandwich.
Diffstat (limited to 'main')
-rw-r--r-- | main/build.gradle.kts | 10 | ||||
-rw-r--r-- | main/src/main/cpp/CMakeLists.txt | 16 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java | 19 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java | 21 |
4 files changed, 11 insertions, 55 deletions
diff --git a/main/build.gradle.kts b/main/build.gradle.kts index a8adcdee..59bc8215 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -13,13 +13,13 @@ plugins { } android { - compileSdkVersion(31) + compileSdk = 31 - ndkVersion = "23.0.7599858" + //ndkVersion = "23.0.7599858" defaultConfig { - minSdkVersion(14) - targetSdkVersion(31) + minSdk = 16 + targetSdk = 31 versionCode = 178 versionName = "0.7.24" @@ -143,6 +143,8 @@ fun registerGenTask(variantName: String, variantDirName: String): File { "-Isrc/main/cpp/openvpn3/client", "-Isrc/main/cpp/openvpn3/", "-o", "${genDir}/ovpncli_wrap.cxx", "-oh", "${genDir}/ovpncli_wrap.h", "src/main/cpp/openvpn3/javacli/ovpncli.i")) + inputs.files( "src/main/cpp/openvpn3/javacli/ovpncli.i") + outputs.dir( genDir) } return baseDir diff --git a/main/src/main/cpp/CMakeLists.txt b/main/src/main/cpp/CMakeLists.txt index 7034c0c0..a4689802 100644 --- a/main/src/main/cpp/CMakeLists.txt +++ b/main/src/main/cpp/CMakeLists.txt @@ -104,7 +104,6 @@ target_compile_definitions(ovpnutil PRIVATE -DTARGET_ARCH_ABI=\"${ANDROID_ABI}\" ) target_link_libraries(ovpnutil log) - if (NOT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} MATCHES "build/intermediates/cmake/.*skeleton.*/") add_library(osslspeedtest SHARED ovpnutil/sslspeed.c) target_link_libraries(osslspeedtest log crypto ssl) @@ -243,23 +242,12 @@ add_executable(pie_openvpn.${ANDROID_ABI} minivpn/minivpn.c) target_compile_options(pie_openvpn.${ANDROID_ABI} PRIVATE -fPIE) target_link_libraries(pie_openvpn.${ANDROID_ABI} PRIVATE openvpn -fPIE -pie) -add_executable(nopie_openvpn.${ANDROID_ABI} minivpn/minivpn.c) -target_link_libraries(nopie_openvpn.${ANDROID_ABI} PRIVATE openvpn) - # Hack to copy OpenVPN binaries to assets directory SET(OVPN_ASSET_DIR ${CMAKE_SOURCE_DIR}/../../../build/ovpnassets) add_custom_target(makeassetdir ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${OVPN_ASSET_DIR}) - -add_custom_command(TARGET nopie_openvpn.${ANDROID_ABI} POST_BUILD - COMMAND - ${CMAKE_COMMAND} -E copy - $<TARGET_FILE:nopie_openvpn.${ANDROID_ABI}> - ${OVPN_ASSET_DIR} - ) - add_custom_command(TARGET pie_openvpn.${ANDROID_ABI} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -268,6 +256,6 @@ add_custom_command(TARGET pie_openvpn.${ANDROID_ABI} POST_BUILD ) # Hack that these targets are really executed -add_dependencies(ovpnutil pie_openvpn.${ANDROID_ABI} nopie_openvpn.${ANDROID_ABI}) +add_dependencies(ovpnutil pie_openvpn.${ANDROID_ABI}) add_dependencies(pie_openvpn.${ANDROID_ABI} makeassetdir) -add_dependencies(nopie_openvpn.${ANDROID_ABI} makeassetdir) + diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java index c43b3ea6..bb3b804d 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java @@ -27,8 +27,6 @@ import de.blinkt.openvpn.R; public class OpenVPNThread implements Runnable {
private static final String DUMP_PATH_STRING = "Dump path: ";
@SuppressLint("SdCardPath")
- private static final String BROKEN_PIE_SUPPORT = "/data/data/de.blinkt.openvpn/cache/pievpn";
- private final static String BROKEN_PIE_SUPPORT2 = "syntax error";
private static final String TAG = "OpenVPN";
// 1380308330.240114 18000002 Send to HTTP proxy: 'X-Online-Host: bla.blabla.com'
private static final Pattern LOG_PATTERN = Pattern.compile("(\\d+).(\\d+) ([0-9a-f])+ (.*)");
@@ -42,7 +40,6 @@ public class OpenVPNThread implements Runnable { private String mTmpDir;
private OpenVPNService mService;
private String mDumpPath;
- private boolean mBrokenPie = false;
private boolean mNoProcessExitStatus = false;
public OpenVPNThread(OpenVPNService service, String[] argv, String nativelibdir, String tmpdir) {
@@ -82,19 +79,6 @@ public class OpenVPNThread implements Runnable { }
if (exitvalue != 0) {
VpnStatus.logError("Process exited with exit value " + exitvalue);
- if (mBrokenPie) {
- /* This will probably fail since the NoPIE binary is probably not written */
- String[] noPieArgv = VPNLaunchHelper.replacePieWithNoPie(mArgv);
-
- // We are already noPIE, nothing to gain
- if (!noPieArgv.equals(mArgv)) {
- mArgv = noPieArgv;
- VpnStatus.logInfo("PIE Version could not be executed. Trying no PIE version");
- run();
- }
-
- }
-
}
if (!mNoProcessExitStatus)
@@ -150,9 +134,6 @@ public class OpenVPNThread implements Runnable { if (logline.startsWith(DUMP_PATH_STRING))
mDumpPath = logline.substring(DUMP_PATH_STRING.length());
- if (logline.startsWith(BROKEN_PIE_SUPPORT) || logline.contains(BROKEN_PIE_SUPPORT2))
- mBrokenPie = true;
-
Matcher m = LOG_PATTERN.matcher(logline);
int logerror = 0;
if (m.matches()) {
diff --git a/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java index 52ec55d7..7f9508b1 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java +++ b/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java @@ -21,11 +21,9 @@ import de.blinkt.openvpn.R; import de.blinkt.openvpn.VpnProfile; public class VPNLaunchHelper { - private static final String MININONPIEVPN = "nopie_openvpn"; private static final String MINIPIEVPN = "pie_openvpn"; private static final String OVPNCONFIGFILE = "android.conf"; - private static String writeMiniVPN(Context context) { String nativeAPI = NativeUtils.getNativeAPI(); /* Q does not allow executing binaries written in temp directory anymore */ @@ -45,7 +43,7 @@ public class VPNLaunchHelper { for (String abi : abis) { - File vpnExecutable = new File(context.getCacheDir(), "c_" + getMiniVPNExecutableName() + "." + abi); + File vpnExecutable = new File(context.getCacheDir(), "c_" + MINIPIEVPN + "." + abi); if ((vpnExecutable.exists() && vpnExecutable.canExecute()) || writeMiniVPNBinary(context, abi, vpnExecutable)) { return vpnExecutable.getPath(); } @@ -59,19 +57,6 @@ public class VPNLaunchHelper { return Build.SUPPORTED_ABIS; } - private static String getMiniVPNExecutableName() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) - return MINIPIEVPN; - else - return MININONPIEVPN; - } - - - public static String[] replacePieWithNoPie(String[] mArgv) { - mArgv[0] = mArgv[0].replace(MINIPIEVPN, MININONPIEVPN); - return mArgv; - } - static String[] buildOpenvpnArgv(Context c) { Vector<String> args = new Vector<>(); @@ -93,9 +78,9 @@ public class VPNLaunchHelper { InputStream mvpn; try { - mvpn = context.getAssets().open(getMiniVPNExecutableName() + "." + abi); + mvpn = context.getAssets().open(MINIPIEVPN + "." + abi); } catch (IOException errabi) { - VpnStatus.logInfo("Failed getting assets for archicture " + abi); + VpnStatus.logInfo("Failed getting assets for architecture " + abi); return false; } |