Log if failed to dlopen a zygisk module

This commit is contained in:
LoveSy
2022-03-15 02:42:47 +08:00
committed by topjohnwu
parent ffcd093db1
commit 69c2f407d6
2 changed files with 10 additions and 3 deletions

View File

@@ -112,14 +112,19 @@ static void zygiskd(int socket) {
vector<comp_entry> modules;
{
vector<int> module_fds = recv_fds(socket);
char buf[256];
for (int fd : module_fds) {
snprintf(buf, sizeof(buf), "/proc/self/fd/%d", fd);
comp_entry entry = nullptr;
if (void *h = dlopen(buf, RTLD_LAZY)) {
android_dlextinfo info {
.flags = ANDROID_DLEXT_USE_LIBRARY_FD,
.library_fd = fd,
};
if (void *h = android_dlopen_ext("/jit-cache", RTLD_LAZY, &info)) {
*(void **) &entry = dlsym(h, "zygisk_companion_entry");
} else {
LOGW("Failed to dlopen zygisk module: %s\n", dlerror());
}
modules.push_back(entry);
close(fd);
}
}