diff --git a/jni/daemon/bootstages.c b/jni/daemon/bootstages.c index 82c56fa8a..432a5a6f1 100644 --- a/jni/daemon/bootstages.c +++ b/jni/daemon/bootstages.c @@ -187,7 +187,7 @@ static void trim_img(const char *img) { void exec_common_script(const char* stage) { DIR *dir; struct dirent *entry; - snprintf(buf, PATH_MAX, "%s/.core/%s.d", MOUNTPOINT, stage); + snprintf(buf, PATH_MAX, "%s/%s.d", COREDIR, stage); if (!(dir = opendir(buf))) return; @@ -677,6 +677,12 @@ void post_fs_data(int client) { LOGI("* Running module post-fs-data scripts\n"); exec_module_script("post-fs-data"); + // Systemless hosts + if (access(HOSTSFILE, F_OK) == 0) { + LOGI("* Enabling systemless hosts file support"); + bind_mount(HOSTSFILE, "/system/etc/hosts"); + } + // Start magiskhide if enabled char *hide_prop = getprop("persist.magisk.hide"); if (hide_prop) { diff --git a/jni/magisk.h b/jni/magisk.h index c8c283b4b..d62762544 100644 --- a/jni/magisk.h +++ b/jni/magisk.h @@ -30,6 +30,8 @@ #define DISABLEFILE "/cache/.disable_magisk" #define UNINSTALLER "/cache/magisk_uninstaller.sh" #define MOUNTPOINT "/magisk" +#define COREDIR MOUNTPOINT "/.core" +#define HOSTSFILE COREDIR "/hosts" #define MAINIMG "/data/magisk.img" #define DATABIN "/data/magisk" #define MAGISKTMP "/dev/magisk"