Preload libjvm.so

This commit is contained in:
khanhduytran0 2020-10-16 15:34:09 +07:00
parent 0499f9df7b
commit ad922f3521
2 changed files with 15 additions and 18 deletions

View File

@ -30,18 +30,16 @@ public class JREUtils
public static void initJavaRuntime() { public static void initJavaRuntime() {
dlopen(findInLdLibPath("libjli.so")); dlopen(findInLdLibPath("libjli.so"));
dlopen(findInLdLibPath("libjvm.so"));
// As we set LD_LIBRARY_PATH, so it's not required to preload them /*
/* dlopen(findInLdLibPath("libverify.so"));
dlopen("libjvm.so"); dlopen(findInLdLibPath("libjava.so"));
dlopen(Tools.homeJreDir + "/lib/libverify.so"); // dlopen(findInLdLibPath("/lib/libjsig.so"));
dlopen(Tools.homeJreDir + "/lib/libjava.so"); dlopen(findInLdLibPath("libnet.so"));
// dlopen(Tools.homeJreDir + "/lib/libjsig.so"); dlopen(findInLdLibPath("libnio.so"));
dlopen(Tools.homeJreDir + "/lib/libnet.so"); dlopen(findInLdLibPath("libawt.so"));
dlopen(Tools.homeJreDir + "/lib/libnio.so"); dlopen(findInLdLibPath("libawt_headless.so"));
dlopen(Tools.homeJreDir + "/lib/libawt.so"); */
dlopen(Tools.homeJreDir + "/lib/libawt_headless.so");
*/
dlopen(nativeLibDir + "/libopenal.so"); dlopen(nativeLibDir + "/libopenal.so");
if (LauncherPreferences.PREF_CUSTOM_OPENGL_LIBNAME.equals("libgl04es.so")) { if (LauncherPreferences.PREF_CUSTOM_OPENGL_LIBNAME.equals("libgl04es.so")) {

View File

@ -66,14 +66,13 @@ static void logArgs(int argc, char** argv) {
} }
JNIEXPORT jint JNICALL Java_com_oracle_dalvik_VMLauncher_createLaunchMainJVM(JNIEnv *env, jclass clazz, jobjectArray vmArgArr, jstring mainClassStr, jobjectArray mainArgArr) { JNIEXPORT jint JNICALL Java_com_oracle_dalvik_VMLauncher_createLaunchMainJVM(JNIEnv *env, jclass clazz, jobjectArray vmArgArr, jstring mainClassStr, jobjectArray mainArgArr) {
/*
void *libjvm = dlopen("libjvm.so", RTLD_NOW + RTLD_GLOBAL); void *libjvm = dlopen("libjvm.so", RTLD_NOW + RTLD_GLOBAL);
if (libjvm == NULL) { if (libjvm == NULL) {
LOGE("dlopen failed to open libjvm.so (dlerror %s).", dlerror()); LOGE("dlopen failed to open libjvm.so (dlerror %s).", dlerror());
return -1; return -1;
} }
*/
JNI_CreateJavaVM_func *jl_JNI_CreateJavaVM = (JNI_CreateJavaVM_func *) dlsym(RTLD_NEXT /* libjvm */, "JNI_CreateJavaVM"); JNI_CreateJavaVM_func *jl_JNI_CreateJavaVM = (JNI_CreateJavaVM_func *) dlsym(libjvm, "JNI_CreateJavaVM");
if (jl_JNI_CreateJavaVM == NULL) { if (jl_JNI_CreateJavaVM == NULL) {
LOGE("dlsym failed to get JNI_CreateJavaVM (dlerror %s).", dlerror()); LOGE("dlsym failed to get JNI_CreateJavaVM (dlerror %s).", dlerror());
return -1; return -1;
@ -116,7 +115,7 @@ JNIEXPORT jint JNICALL Java_com_oracle_dalvik_VMLauncher_createLaunchMainJVM(JNI
static jint launchJVM(int argc, char** argv) { static jint launchJVM(int argc, char** argv) {
logArgs(argc, argv); logArgs(argc, argv);
/*
void* libjli = dlopen("libjli.so", RTLD_LAZY | RTLD_GLOBAL); void* libjli = dlopen("libjli.so", RTLD_LAZY | RTLD_GLOBAL);
// Boardwalk: silence // Boardwalk: silence
@ -126,9 +125,9 @@ static jint launchJVM(int argc, char** argv) {
return -1; return -1;
} }
LOGD("Found JLI lib"); LOGD("Found JLI lib");
*/
JLI_Launch_func *pJLI_Launch = JLI_Launch_func *pJLI_Launch =
(JLI_Launch_func *)dlsym(RTLD_NEXT /* libjli */, "JLI_Launch"); (JLI_Launch_func *)dlsym(libjli, "JLI_Launch");
// Boardwalk: silence // Boardwalk: silence
// LOGD("JLI_Launch = 0x%x", *(int*)&pJLI_Launch); // LOGD("JLI_Launch = 0x%x", *(int*)&pJLI_Launch);