diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java index 1108387db..fe0afdb6c 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java @@ -74,7 +74,7 @@ public void addApp(String packagename) saveExtAppList(allowedapps); } - boolean checkAllowingModifyingRemoteControl(Context c) { + public boolean checkAllowingModifyingRemoteControl(Context c) { if (isManagedConfiguration()) { Toast.makeText(c, "Remote control apps are manged by managed configuration, cannot change", Toast.LENGTH_LONG).show(); VpnStatus.logError("Remote control apps are manged by managed configuration, cannot change"); diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index f10280be2..115d63195 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -184,8 +184,8 @@ public static String humanReadableByteCount(long bytes, boolean speed, Resources @Override public void addAllowedExternalApp(String packagename) throws RemoteException { - if(checkAllowingModifyingRemoteControl(this)) { - ExternalAppDatabase extapps = new ExternalAppDatabase(OpenVPNService.this); + ExternalAppDatabase extapps = new ExternalAppDatabase(OpenVPNService.this); + if(extapps.checkAllowingModifyingRemoteControl(this)) { extapps.addApp(packagename); } } diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt index 7db8cba68..3c878d4d7 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt @@ -176,6 +176,10 @@ class GeneralSettings : PreferenceFragmentCompat(), Preference.OnPreferenceClick File("/system/lib/modules/tun.ko").length() > 10 override fun onPreferenceClick(preference: Preference): Boolean { + if (!mExtapp.checkAllowingModifyingRemoteControl(requireContext())) + { + return false; + } if (preference.key == "clearapi") { val builder = AlertDialog.Builder( requireContext()