diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
index dea2d1b59..4eabe56d2 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
@@ -271,14 +271,16 @@ public class JavaGUILauncherActivity extends BaseActivity implements View.OnTouc
javaArgList.add(modFile.getAbsolutePath());
}
- Logger.getInstance().appendToLog("Info: Java arguments: " + Arrays.toString(javaArgList.toArray(new String[0])));
- // Run java on sandbox, non-overrideable.
- Collections.reverse(javaArgList);
- javaArgList.add("-Xbootclasspath/a:" + Tools.DIR_DATA + "/security/pro-grade.jar");
- javaArgList.add("-Djava.security.manager=net.sourceforge.prograde.sm.ProGradeJSM");
- javaArgList.add("-Djava.security.policy=" + Tools.DIR_DATA + "/security/java_sandbox.policy");
- Collections.reverse(javaArgList);
+ if (LauncherPreferences.PREF_JAVA_SANDBOX) {
+ Collections.reverse(javaArgList);
+ javaArgList.add("-Xbootclasspath/a:" + Tools.DIR_DATA + "/security/pro-grade.jar");
+ javaArgList.add("-Djava.security.manager=net.sourceforge.prograde.sm.ProGradeJSM");
+ javaArgList.add("-Djava.security.policy=" + Tools.DIR_DATA + "/security/java_sandbox.policy");
+ Collections.reverse(javaArgList);
+ }
+
+ Logger.getInstance().appendToLog("Info: Java arguments: " + Arrays.toString(javaArgList.toArray(new String[0])));
return JREUtils.launchJavaVM(this, javaArgList);
} catch (Throwable th) {
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
index be1c4dae5..3a53aaef2 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java
@@ -49,6 +49,7 @@ public class LauncherPreferences {
public static boolean PREF_VIRTUAL_MOUSE_START = false;
public static boolean PREF_ARC_CAPES = false;
public static boolean PREF_USE_ALTERNATE_SURFACE = true;
+ public static boolean PREF_JAVA_SANDBOX = true;
public static int PREF_SCALE_FACTOR = 100;
@@ -82,6 +83,7 @@ public class LauncherPreferences {
PREF_VIRTUAL_MOUSE_START = DEFAULT_PREF.getBoolean("mouse_start", false);
PREF_ARC_CAPES = DEFAULT_PREF.getBoolean("arc_capes",false);
PREF_USE_ALTERNATE_SURFACE = DEFAULT_PREF.getBoolean("alternate_surface", false);
+ PREF_JAVA_SANDBOX = DEFAULT_PREF.getBoolean("java_sandbox", true);
PREF_SCALE_FACTOR = DEFAULT_PREF.getInt("resolutionRatio", 100);
/*
diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml
index 7ecf7be59..2c60b00f4 100644
--- a/app_pojavlauncher/src/main/res/values/strings.xml
+++ b/app_pojavlauncher/src/main/res/values/strings.xml
@@ -110,6 +110,8 @@
Snapshot
Old-alpha
Old-beta
+ Sandbox .jar installer
+ Control the availability sandbox security manager when launching .jar installer.
Clone
diff --git a/app_pojavlauncher/src/main/res/xml/pref_misc.xml b/app_pojavlauncher/src/main/res/xml/pref_misc.xml
index 6ecce2806..be6c9f251 100644
--- a/app_pojavlauncher/src/main/res/xml/pref_misc.xml
+++ b/app_pojavlauncher/src/main/res/xml/pref_misc.xml
@@ -5,6 +5,11 @@
+