diff --git a/loader/src/injector/solist.c b/loader/src/injector/solist.c index 1e460a8..a39f223 100644 --- a/loader/src/injector/solist.c +++ b/loader/src/injector/solist.c @@ -93,7 +93,7 @@ static bool solist_init() { See #63 for more information. */ solist = (SoInfo *)getSymbValueByPrefix(linker, "__dl__ZL6solist"); - if (solist == NULL) { + if ((void *)solist == NULL) { LOGE("Failed to find solist __dl__ZL6solist*"); ElfImg_destroy(linker); @@ -101,8 +101,9 @@ static bool solist_init() { return false; } + LOGD("%p is solist", (void *)solist); + somain = (SoInfo *)getSymbValueByPrefix(linker, "__dl__ZL6somain"); - LOGI("%p is somain", (void *)somain); if (somain == NULL) { LOGE("Failed to find somain __dl__ZL6somain*"); @@ -111,6 +112,8 @@ static bool solist_init() { return false; } + LOGD("%p is somain", (void *)somain); + sonext = (SoInfo **)getSymbAddressByPrefix(linker, "__dl__ZL6sonext"); if (sonext == NULL) { LOGE("Failed to find sonext __dl__ZL6sonext*"); @@ -120,14 +123,10 @@ static bool solist_init() { return false; } + LOGD("%p is sonext", (void *)sonext); + SoInfo *vdso = (SoInfo *)getSymbValueByPrefix(linker, "__dl__ZL4vdso"); - if (vdso == NULL) { - LOGE("Failed to find vsdo __dl__ZL4vdso*"); - - ElfImg_destroy(linker); - - return false; - } + if (vdso != NULL) LOGD("%p is vdso", (void *)vdso); get_realpath_sym = (const char *(*)(SoInfo *))getSymbAddress(linker, "__dl__ZNK6soinfo12get_realpathEv"); if (get_realpath_sym == NULL) { @@ -138,6 +137,8 @@ static bool solist_init() { return false; } + LOGD("%p is get_realpath", (void *)get_realpath_sym); + soinfo_free = (void (*)(SoInfo *))getSymbAddressByPrefix(linker, "__dl__ZL11soinfo_freeP6soinfo"); if (soinfo_free == NULL) { LOGE("Failed to find soinfo_free __dl__ZL11soinfo_freeP6soinfo*"); @@ -147,6 +148,8 @@ static bool solist_init() { return false; } + LOGD("%p is soinfo_free", (void *)soinfo_free); + g_module_load_counter = (uint64_t *)getSymbAddress(linker, "__dl__ZL21g_module_load_counter"); if (g_module_load_counter != NULL) LOGD("found symbol g_module_load_counter");