Various fixes, some cleanup
Fixes: - dlopen gets hooked no matter if installed in /Applications or container - Jailbroken IPA installation always looked for /usr/lib/jvm instead of the internal one - Metal returned 0 physical devices, caused all renderers to be broken - Zink renderer tried to load VirGL stuff
This commit is contained in:
1 parent
dc089a29f5
commit
c10e0af8ff
9 files changed
+22
-16
No files matched your search
@@ -99,7 +99,7 @@ void init_loadCustomJvmFlags() {
|
||||
}
|
||||
|
||||
NSString* environmentFailsafes(int minVersion) {
|
||||
NSString *jvmPath = getenv("POJAV_DETECTEDJB") ? @"/usr/lib/jvm" : [NSString stringWithFormat:@"%s/jvm", getenv("BUNDLE_PATH")];
|
||||
NSString *jvmPath = getenv("POJAV_PREFER_EXTERNAL_JRE") ? @"/usr/lib/jvm" : [NSString stringWithFormat:@"%s/jvm", getenv("BUNDLE_PATH")];
|
||||
NSString *javaHome = nil;
|
||||
|
||||
NSString *jre8Path = [NSString stringWithFormat:@"%@/java-8-openjdk", jvmPath];
|
||||
@@ -130,7 +130,7 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi
|
||||
|
||||
NSString *javaHome_pre = getPreference(@"java_home");
|
||||
if (![javaHome_pre hasPrefix:@"/"]) {
|
||||
javaHome_pre = [NSString stringWithFormat:@"%s/jvm/%@", getenv("POJAV_DETECTEDJB") ? "/usr/lib" : getenv("BUNDLE_PATH"), javaHome_pre];
|
||||
javaHome_pre = [NSString stringWithFormat:@"%s/jvm/%@", getenv("POJAV_PREFER_EXTERNAL_JRE") ? "/usr/lib" : getenv("BUNDLE_PATH"), javaHome_pre];
|
||||
}
|
||||
|
||||
// We handle unset JAVA_HOME right there
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#define JRE8_HOME_JB @"/usr/lib/jvm/java-8-openjdk"
|
||||
#define JRE16_HOME_JB @"/usr/lib/jvm/java-16-openjdk"
|
||||
#define JRE17_HOME_JB @"/usr/lib/jvm/java-17-openjdk"
|
||||
|
||||
void loadPreferences(BOOL reset);
|
||||
id getPreference(NSString* key);
|
||||
NSMutableDictionary* getDictionary(NSString *type);
|
||||
|
||||
@@ -116,7 +116,7 @@ void loadPreferences(BOOL reset) {
|
||||
setDefaultValueForPref(envPrefDict, @"allocated_memory", [NSNumber numberWithFloat:roundf(([[NSProcessInfo processInfo] physicalMemory] / 1048576) * 0.25)]);
|
||||
setDefaultValueForPref(prefDict, @"debug_logging", @(CONFIG_RELEASE != 1));
|
||||
setDefaultValueForPref(prefDict, @"arccapes_enable", @YES);
|
||||
setDefaultValueForPref(envPrefDict, @"java_home", @"");
|
||||
setDefaultValueForPref(envPrefDict, @"java_home", @"java-8-openjdk");
|
||||
setDefaultValueForPref(envPrefDict, @"renderer", @"auto");
|
||||
fillDefaultWarningDict();
|
||||
setDefaultValueForPref(prefDict, @"a7_allow", @NO);
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#define JRE8_NAME_JB @"Java 8"
|
||||
#define JRE16_NAME_JB @"Java 16"
|
||||
#define JRE17_NAME_JB @"Java 17"
|
||||
#define JRE8_NAME_SB @"Java 8 (sandbox)"
|
||||
|
||||
@interface LauncherPreferencesViewController2 : UITableViewController<UITextFieldDelegate>
|
||||
|
||||
@end
|
||||
@@ -226,11 +226,11 @@ jboolean pojavInit_OpenGL() {
|
||||
NSString *renderer = @(getenv("POJAV_RENDERER"));
|
||||
JNI_LWJGL_changeRenderer(renderer.UTF8String);
|
||||
BOOL isAuto = [renderer isEqualToString:@"auto"];
|
||||
if ([renderer isEqualToString:@"libOSMesa.8.dylib"]) {
|
||||
/* if ([renderer isEqualToString:@"libOSMesa.8.dylib"]) {
|
||||
config_renderer = RENDERER_VIRGL;
|
||||
setenv("GALLIUM_DRIVER", "virpipe", 1);
|
||||
loadSymbolsVirGL();
|
||||
} else if (isAuto || [renderer isEqualToString:@ RENDERER_NAME_GL4ES]) {
|
||||
} else */ if (isAuto || [renderer isEqualToString:@ RENDERER_NAME_GL4ES]) {
|
||||
config_renderer = RENDERER_MTL_ANGLE;
|
||||
setenv("POJAV_RENDERER", RENDERER_NAME_GL4ES, 1);
|
||||
loadSymbols();
|
||||
|
||||
@@ -116,6 +116,11 @@ void init_logDeviceAndVer(char *argument) {
|
||||
regLog("[Pre-Init] %s with iOS %s (Unjailbroken)", deviceHardware, deviceSoftware);
|
||||
}
|
||||
|
||||
NSString *jvmPath = [NSString stringWithFormat:@"%s/jvm", getenv("BUNDLE_PATH")];
|
||||
if (![fm fileExistsAtPath:jvmPath]) {
|
||||
setenv("POJAV_PREFER_EXTERNAL_JRE", "1", 1);
|
||||
}
|
||||
|
||||
regLog("[Pre-init] Entitlements availability:");
|
||||
printEntitlementAvailability(@"com.apple.developer.kernel.extended-virtual-addressing");
|
||||
printEntitlementAvailability(@"com.apple.developer.kernel.increased-memory-limit");
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ int hooked_open(const char *path, int oflag, ...) {
|
||||
}
|
||||
|
||||
void init_hookFunctions() {
|
||||
if (getenv("POJAV_DETECTEDJB")) {
|
||||
if (getenv("POJAV_PREFER_EXTERNAL_JRE")) {
|
||||
// In this environment, libawt_xawt is not available/X11 only.
|
||||
// hook dlopen to use our libawt_xawt
|
||||
rebind_symbols((struct rebinding[1]){{"dlopen", hooked_dlopen, (void *)&orig_dlopen}}, 1);
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
|
||||
#define RENDERER_NAME_GL4ES "libgl4es_114.dylib"
|
||||
#define RENDERER_NAME_MTL_ANGLE "libtinygl4angle.dylib"
|
||||
#define RENDERER_NAME_VK_ZINK "libOSMesa.8.dylib"
|
||||
#define RENDERER_NAME_VK_ZINK "libOSMesaOverride.dylib"
|
||||
|
||||
#define SPECIALBTN_KEYBOARD -1
|
||||
#define SPECIALBTN_TOGGLECTRL -2
|
||||
|
||||
@@ -16,5 +16,15 @@
|
||||
<!-- Disable sandbox so that PojavLauncher can enable JIT by itself -->
|
||||
<key>com.apple.private.security.no-container</key>
|
||||
<true/>
|
||||
|
||||
<!-- Required if sandbox is disabled -->
|
||||
<key>com.apple.security.iokit-user-client-class</key>
|
||||
<array>
|
||||
<string>IOSurfaceRootUserClient</string>
|
||||
<string>AGXDeviceUserClient</string>
|
||||
<string>AGXSharedUserClient</string>
|
||||
<string>AGXCommandQueue</string>
|
||||
<string>AGXDevice</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in new issue
Block a user