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 @@ +