diff --git a/mobile/res/values/strings.xml b/mobile/res/values/strings.xml
index 0f84061c..bbbb5fb8 100644
--- a/mobile/res/values/strings.xml
+++ b/mobile/res/values/strings.xml
@@ -135,6 +135,8 @@
How often IITCm should search for new plugin versions
Force plugin update
Update all enabled user plugins
+ Require secure updates
+ If enabled, only https updates are handled
- System Bar
diff --git a/mobile/res/xml/preferences.xml b/mobile/res/xml/preferences.xml
index 5978e5f1..c3d8e6ef 100644
--- a/mobile/res/xml/preferences.xml
+++ b/mobile/res/xml/preferences.xml
@@ -106,6 +106,11 @@
android:key="pref_force_plugin_update"
android:title="@string/pref_force_plugin_update"
android:summary="@string/pref_force_plugin_update_sum"/>
+
{
final String downloadURL = mScriptInfo.get("downloadURL");
if (updateURL == null) updateURL = downloadURL;
+ // check for https protocol
+ final URL url = new URL(updateURL);
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mActivity);
+ Boolean secureUpdates = prefs.getBoolean("pref_secure_updates", true);
+ if (!url.getProtocol().equals("https") && secureUpdates) return false;
+
// get remote script meta information
- final File local_file = new File(mFilePath);
- final InputStream is = new URL(updateURL).openStream();
- final String local_version = mScriptInfo.get("version");
+ final InputStream is = url.openStream();
final String remote_version = IITC_FileManager.getScriptInfo(IITC_FileManager.readStream(is)).get("version");
+ final File local_file = new File(mFilePath);
+ final String local_version = mScriptInfo.get("version");
// update script if neccessary
if (local_version.compareTo(remote_version) < 0) {