mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-17 16:47:14 -04:00
- Prepend java as argv[0]
- Fix override mechanism
This commit is contained in:
parent
fb7a4b2407
commit
97dace30c5
@ -317,6 +317,7 @@ public class JREUtils {
|
|||||||
initJavaRuntime();
|
initJavaRuntime();
|
||||||
setupExitTrap(activity.getApplication());
|
setupExitTrap(activity.getApplication());
|
||||||
chdir(Tools.DIR_GAME_NEW);
|
chdir(Tools.DIR_GAME_NEW);
|
||||||
|
userArgs.add(0,"java"); //argv[0] is the program name according to C standard.
|
||||||
|
|
||||||
final int exitCode = VMLauncher.launchJVM(userArgs.toArray(new String[0]));
|
final int exitCode = VMLauncher.launchJVM(userArgs.toArray(new String[0]));
|
||||||
Logger.getInstance().appendToLog("Java Exit code: " + exitCode);
|
Logger.getInstance().appendToLog("Java Exit code: " + exitCode);
|
||||||
@ -340,6 +341,8 @@ public class JREUtils {
|
|||||||
*/
|
*/
|
||||||
public static List<String> getJavaArgs(Context ctx) {
|
public static List<String> getJavaArgs(Context ctx) {
|
||||||
List<String> userArguments = parseJavaArguments(LauncherPreferences.PREF_CUSTOM_JAVA_ARGS);
|
List<String> userArguments = parseJavaArguments(LauncherPreferences.PREF_CUSTOM_JAVA_ARGS);
|
||||||
|
String resolvFile;
|
||||||
|
resolvFile = new File(Tools.DIR_DATA,"resolv.conf").getAbsolutePath();
|
||||||
String[] overridableArguments = new String[]{
|
String[] overridableArguments = new String[]{
|
||||||
"-Djava.home=" + Tools.DIR_HOME_JRE,
|
"-Djava.home=" + Tools.DIR_HOME_JRE,
|
||||||
"-Djava.io.tmpdir=" + ctx.getCacheDir().getAbsolutePath(),
|
"-Djava.io.tmpdir=" + ctx.getCacheDir().getAbsolutePath(),
|
||||||
@ -358,29 +361,30 @@ public class JREUtils {
|
|||||||
"-Dglfwstub.windowWidth=" + CallbackBridge.windowWidth,
|
"-Dglfwstub.windowWidth=" + CallbackBridge.windowWidth,
|
||||||
"-Dglfwstub.windowHeight=" + CallbackBridge.windowHeight,
|
"-Dglfwstub.windowHeight=" + CallbackBridge.windowHeight,
|
||||||
"-Dglfwstub.initEgl=false",
|
"-Dglfwstub.initEgl=false",
|
||||||
|
"-Dext.net.resolvPath=" +resolvFile,
|
||||||
"-Dext.net.resolvPath=" +new File(Tools.DIR_DATA,"resolv.conf").getAbsolutePath(),
|
|
||||||
|
|
||||||
"-Dlog4j2.formatMsgNoLookups=true", //Log4j RCE mitigation
|
"-Dlog4j2.formatMsgNoLookups=true", //Log4j RCE mitigation
|
||||||
|
|
||||||
"-Dnet.minecraft.clientmodname=" + Tools.APP_NAME,
|
"-Dnet.minecraft.clientmodname=" + Tools.APP_NAME,
|
||||||
"-Dfml.earlyprogresswindow=false" //Forge 1.14+ workaround
|
"-Dfml.earlyprogresswindow=false" //Forge 1.14+ workaround
|
||||||
};
|
};
|
||||||
|
List<String> additionalArguments = new ArrayList<>();
|
||||||
|
for(String arg : overridableArguments) {
|
||||||
for (String userArgument : userArguments) {
|
String strippedArg = arg.substring(0,arg.indexOf('='));
|
||||||
for(int i=0; i < overridableArguments.length; ++i){
|
boolean add = true;
|
||||||
String overridableArgument = overridableArguments[i];
|
for(String uarg : userArguments) {
|
||||||
//Only java properties are considered overridable for now
|
if(uarg.startsWith(strippedArg)) {
|
||||||
if(userArgument.startsWith("-D") && userArgument.startsWith(overridableArgument.substring(0, overridableArgument.indexOf("=")))){
|
add = false;
|
||||||
overridableArguments[i] = ""; //Remove the argument since it is overridden
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(add)
|
||||||
|
additionalArguments.add(arg);
|
||||||
|
else
|
||||||
|
Log.i("ArgProcessor","Arg skipped: "+arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add all the arguments
|
//Add all the arguments
|
||||||
userArguments.addAll(Arrays.asList(overridableArguments));
|
userArguments.addAll(additionalArguments);
|
||||||
return userArguments;
|
return userArguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,5 +291,6 @@
|
|||||||
<string name="vbo_hack_description">Help with compatibility on some old versions</string>
|
<string name="vbo_hack_description">Help with compatibility on some old versions</string>
|
||||||
<string name="gles_version_hack_title">Force openGL 1</string>
|
<string name="gles_version_hack_title">Force openGL 1</string>
|
||||||
<string name="gles_version_hack_description">Help with compatibility on some old versions</string>
|
<string name="gles_version_hack_description">Help with compatibility on some old versions</string>
|
||||||
|
<string name="arc_capes_title">Arc Capes</string>
|
||||||
|
<string name="arc_capes_desc">Enables capes from Arc. For more information please visit https://arccapes.com</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user