mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-25 07:57:39 +00:00
Update unmounting policies
This commit is contained in:
parent
7eed9c4a6d
commit
9e22b80714
@ -89,10 +89,11 @@ int hide_daemon() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// First unmount the mirror, dummy skeletons, cache mounts, and /sbin links
|
// First unmount dummy skeletons, /sbin links, cache mounts, and mirrors
|
||||||
vec_for_each_r(&mount_list, line) {
|
vec_for_each_r(&mount_list, line) {
|
||||||
if (strstr(line, "tmpfs /system") || strstr(line, "tmpfs /vendor") || strstr(line, "tmpfs /sbin")
|
if (strstr(line, "tmpfs /system") || strstr(line, "tmpfs /vendor") || strstr(line, "tmpfs /sbin")
|
||||||
|| (strstr(line, cache_block) && strstr(line, "/system/")) || strstr(line, MIRRDIR) ) {
|
|| (strstr(line, cache_block) && (strstr(line, " /system") || strstr(line, " /vendor")))
|
||||||
|
|| strstr(line, MIRRDIR)) {
|
||||||
sscanf(line, "%*s %512s", buffer);
|
sscanf(line, "%*s %512s", buffer);
|
||||||
lazy_unmount(buffer);
|
lazy_unmount(buffer);
|
||||||
}
|
}
|
||||||
@ -105,9 +106,25 @@ int hide_daemon() {
|
|||||||
vec_init(&mount_list);
|
vec_init(&mount_list);
|
||||||
file_to_vector(buffer, &mount_list);
|
file_to_vector(buffer, &mount_list);
|
||||||
|
|
||||||
// Unmount loop mounts
|
// Unmount loop mounts on /system, /vendor, /magisk
|
||||||
vec_for_each_r(&mount_list, line) {
|
vec_for_each_r(&mount_list, line) {
|
||||||
if (strstr(line, "/dev/block/loop") || strstr(line, DUMMDIR)) {
|
if (strstr(line, "/dev/block/loop")
|
||||||
|
&& (strstr(line, " /system") || strstr(line, " /vendor") || strstr(line, " /magisk"))) {
|
||||||
|
sscanf(line, "%*s %512s", buffer);
|
||||||
|
lazy_unmount(buffer);
|
||||||
|
}
|
||||||
|
free(line);
|
||||||
|
}
|
||||||
|
vec_destroy(&mount_list);
|
||||||
|
|
||||||
|
// Re-read mount infos
|
||||||
|
snprintf(buffer, sizeof(buffer), "/proc/%d/mounts", pid);
|
||||||
|
vec_init(&mount_list);
|
||||||
|
file_to_vector(buffer, &mount_list);
|
||||||
|
|
||||||
|
// Unmount remaining mounts on dummy skeletons
|
||||||
|
vec_for_each_r(&mount_list, line) {
|
||||||
|
if (strstr(line, DUMMDIR)) {
|
||||||
sscanf(line, "%*s %512s", buffer);
|
sscanf(line, "%*s %512s", buffer);
|
||||||
lazy_unmount(buffer);
|
lazy_unmount(buffer);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user