diff --git a/native/jni/core/daemon.cpp b/native/jni/core/daemon.cpp index 98d96c632..30e168dfa 100644 --- a/native/jni/core/daemon.cpp +++ b/native/jni/core/daemon.cpp @@ -391,6 +391,7 @@ static void daemon_entry() { default_new(poll_map); default_new(poll_fds); + default_new(module_list); // Register handler for main socket pollfd main_socket_pfd = { fd, POLLIN, 0 }; diff --git a/native/jni/core/module.cpp b/native/jni/core/module.cpp index ecc32f5ea..188f29605 100644 --- a/native/jni/core/module.cpp +++ b/native/jni/core/module.cpp @@ -583,34 +583,32 @@ void magic_mount() { char buf[4096]; LOGI("* Loading modules\n"); - if (module_list) { - for (const auto &m : *module_list) { - const char *module = m.name.data(); - char *b = buf + sprintf(buf, "%s/" MODULEMNT "/%s/", MAGISKTMP.data(), module); + for (const auto &m : *module_list) { + const char *module = m.name.data(); + char *b = buf + sprintf(buf, "%s/" MODULEMNT "/%s/", MAGISKTMP.data(), module); - // Read props - strcpy(b, "system.prop"); - if (access(buf, F_OK) == 0) { - LOGI("%s: loading [system.prop]\n", module); - load_prop_file(buf, false); - } - - // Check whether skip mounting - strcpy(b, "skip_mount"); - if (access(buf, F_OK) == 0) - continue; - - // Double check whether the system folder exists - strcpy(b, "system"); - if (access(buf, F_OK) != 0) - continue; - - LOGI("%s: loading mount files\n", module); - b[-1] = '\0'; - int fd = xopen(buf, O_RDONLY | O_CLOEXEC); - system->collect_files(module, fd); - close(fd); + // Read props + strcpy(b, "system.prop"); + if (access(buf, F_OK) == 0) { + LOGI("%s: loading [system.prop]\n", module); + load_prop_file(buf, false); } + + // Check whether skip mounting + strcpy(b, "skip_mount"); + if (access(buf, F_OK) == 0) + continue; + + // Double check whether the system folder exists + strcpy(b, "system"); + if (access(buf, F_OK) != 0) + continue; + + LOGI("%s: loading mount files\n", module); + b[-1] = '\0'; + int fd = xopen(buf, O_RDONLY | O_CLOEXEC); + system->collect_files(module, fd); + close(fd); } if (MAGISKTMP != "/sbin") { // Need to inject our binaries into /system/bin @@ -768,7 +766,6 @@ static void collect_modules(bool open_zygisk) { } void handle_modules() { - default_new(module_list); prepare_modules(); collect_modules(false); exec_module_scripts("post-fs-data");