From 563f25c2e75feffa6d3efeedbd3412fa023bcdfc Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sat, 13 Jul 2024 18:47:09 +0700 Subject: [PATCH] Fix: always bypass validation to load external dylib --- Natives/JavaLauncher.m | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Natives/JavaLauncher.m b/Natives/JavaLauncher.m index e3acb239..f348dd9d 100644 --- a/Natives/JavaLauncher.m +++ b/Natives/JavaLauncher.m @@ -91,6 +91,14 @@ void init_loadCustomJvmFlags(int* argc, const char** argv) { int launchJVM(NSString *username, id launchTarget, int width, int height, int minVersion) { NSLog(@"[JavaLauncher] Beginning JVM launch"); + if (NSBundle.mainBundle.infoDictionary[@"LCDataUUID"]) { + NSDebugLog(@"[JavaLauncher] Running in LiveContainer, skipping dyld patch"); + } else { + // Activate Library Validation bypass for external runtime and dylibs (JNA, etc) + init_bypassDyldLibValidation(); + } + + init_loadDefaultEnv(); init_loadCustomEnv(); @@ -138,13 +146,6 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi isExecuteJar ? [launchTarget lastPathComponent] : PLProfiles.current.selectedProfile[@"lastVersionId"], minVersion]); return 1; } else if ([javaHome hasPrefix:@(getenv("POJAV_HOME"))]) { - if (NSBundle.mainBundle.infoDictionary[@"LCDataUUID"]) { - NSDebugLog(@"[JavaLauncher] Running in LiveContainer, skipping dyld patch"); - } else { - // Activate Library Validation bypass for external runtime - init_bypassDyldLibValidation(); - } - // Symlink libawt_xawt.dylib NSString *dest = [NSString stringWithFormat:@"%@/lib/libawt_xawt.dylib", javaHome]; NSString *source = [NSString stringWithFormat:@"%@/Frameworks/libawt_xawt.dylib", NSBundle.mainBundle.bundlePath];