Auto RAM tweaks

- It is now accessible for everyone (sandboxed, TrollStored, jailbroken)
- Enabled by default if Jetsam can't be controlled
- Default ratio: 25% (sandboxed), 40% (TrollStored or jailbroken)
This commit is contained in:
Duy Tran Khanh committed 2022-09-16 21:29:12 +07:00
1 parent 77370a01ea
commit 9aa7095ca1
3 files changed
+12 -11

No files matched your search

+9 -6
View File
@@ -28,7 +28,6 @@ static int margc = -1;
static char* margv[1000];
const char *javaHome;
const char *allocmem;
const char *multidir;
char *homeDir;
@@ -169,19 +168,23 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi
}
setenv("POJAV_RENDERER", renderer.UTF8String, 1);
allocmem_pre = [getPreference(@"allocated_memory") stringValue];
allocmem = [allocmem_pre cStringUsingEncoding:NSUTF8StringEncoding];
int allocmem;
if ([getPreference(@"auto_ram") boolValue]) {
CGFloat autoRatio = getEntitlementValue(@"com.apple.private.memorystatus") ? 0.4 : 0.25;
allocmem = roundf(([[NSProcessInfo processInfo] physicalMemory] / 1048576) * autoRatio);
} else {
allocmem = [getPreference(@"allocated_memory") intValue];
}
// "/Applications/PojavLauncher.app/libs/launcher.jar:/Applications/PojavLauncher.app/libs/ExagearApacheCommons.jar:/Applications/PojavLauncher.app/libs/gson-2.8.6.jar:/Applications/PojavLauncher.app/libs/jsr305.jar:/Applications/PojavLauncher.app/libs/lwjgl3-minecraft.jar";
// Check if JVM restarts
char *frameworkPath, *javaPath, *jnaLibPath, *userDir, *userHome, *memMin, *memMax, *arcDNS;
char *frameworkPath, *javaPath, *jnaLibPath, *userDir, *userHome, *arcDNS;
asprintf(&frameworkPath, "-Djava.library.path=%1$s/Frameworks:%1$s/Frameworks/libOSMesaOverride.dylib.framework:%1$s/Frameworks/libMoltenVK.dylib.framework", getenv("BUNDLE_PATH"));
asprintf(&javaPath, "%s/bin/java", javaHome);
asprintf(&jnaLibPath, "-Djna.boot.library.path=%s/Frameworks/libjnidispatch.dylib.framework", getenv("BUNDLE_PATH"));
asprintf(&userDir, "-Duser.dir=%s", getenv("POJAV_GAME_DIR"));
asprintf(&userHome, "-Duser.home=%s", getenv("POJAV_HOME"));
asprintf(&memMax, "-Xmx%sM", allocmem);
asprintf(&arcDNS, "-javaagent:%s/arc_dns_injector.jar=23.95.137.176", java_libs_path);
NSLog(@"[JavaLauncher] Java executable path: %s", javaPath);
setenv("JAVA_EXT_EXECNAME", javaPath, 1);
@@ -190,7 +193,7 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi
margv[++margc] = "-XstartOnFirstThread";
margv[++margc] = "-Djava.system.class.loader=net.kdt.pojavlaunch.PojavClassLoader";
margv[++margc] = "-Xms128M";
margv[++margc] = memMax;
margv[++margc] = (char *)[NSString stringWithFormat:@"-Xmx%dM", allocmem].UTF8String;
margv[++margc] = frameworkPath;
margv[++margc] = jnaLibPath;
margv[++margc] = userDir;
+1 -1
View File
@@ -123,7 +123,7 @@ void loadPreferences(BOOL reset) {
setDefaultValueForPref(prefDict, @"slideable_hotbar", @NO);
setDefaultValueForPref(prefDict, @"virtmouse_enable", @NO);
setDefaultValueForPref(prefDict, @"check_sha", @YES);
setDefaultValueForPref(prefDict, @"auto_ram", @(getenv("POJAV_DETECTEDJB") == NULL));
setDefaultValueForPref(prefDict, @"auto_ram", @(!getEntitlementValue(@"com.apple.private.memorystatus")));
setDefaultValueForPref(prefDict, @"unsupported_warn_counter", @(0));
if (0 != [fileManager fileExistsAtPath:@"/var/mobile/Documents/.pojavlauncher"]) {
+2 -4
View File
@@ -188,11 +188,9 @@ typedef void(^CreateView)(UITableViewCell *, NSString *, NSDictionary *);
@"hasDetail": @YES,
@"icon": @"slider.horizontal.3",
@"type": self.typeSwitch,
@"enableCondition": ^BOOL(){
return getenv("POJAV_DETECTEDJB") == NULL && whenNotInGame();
},
@"enableCondition": whenNotInGame,
@"warnCondition": ^BOOL(){
return getenv("POJAV_DETECTEDJB") == NULL && whenNotInGame();
return getenv("POJAV_DETECTEDJB") == NULL;
},
@"warnKey": @"auto_ram_warn",
@"requestReload": @YES