You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
add: support for magic mount in KSU and APatch
This commit allows ReZygisk to u(n)mount mounted paths in KSU and APatch environments using magic mount.
This commit is contained in:
@@ -37,21 +37,30 @@ void revert_unmount_ksu() {
|
|||||||
ksu_loop = info.source;
|
ksu_loop = info.source;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unmount everything mounted to /data/adb
|
// Unmount everything mounted to /data/adb
|
||||||
if (info.target.starts_with("/data/adb")) {
|
if (info.target.starts_with("/data/adb")) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unmount everything mounted to /data/adb
|
||||||
|
if (info.root.starts_with("/adb/modules")) {
|
||||||
|
targets.emplace_back(info.target);
|
||||||
|
}
|
||||||
|
|
||||||
// Unmount ksu overlays
|
// Unmount ksu overlays
|
||||||
if (info.type == "overlay"
|
if (info.type == "overlay"
|
||||||
&& info.source == KSU_OVERLAY_SOURCE
|
&& info.source == KSU_OVERLAY_SOURCE
|
||||||
&& std::find(DEVICE_PARTITIONS.begin(), DEVICE_PARTITIONS.end(), info.target) != DEVICE_PARTITIONS.end()) {
|
&& std::find(DEVICE_PARTITIONS.begin(), DEVICE_PARTITIONS.end(), info.target) != DEVICE_PARTITIONS.end()) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unmount temp dir
|
// Unmount temp dir
|
||||||
if (info.type == "tmpfs" && info.source == KSU_OVERLAY_SOURCE) {
|
if (info.type == "tmpfs" && info.source == KSU_OVERLAY_SOURCE) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& info: parse_mount_info("self")) {
|
for (auto& info: parse_mount_info("self")) {
|
||||||
// Unmount everything from ksu loop except ksu module dir
|
// Unmount everything from ksu loop except ksu module dir
|
||||||
if (info.source == ksu_loop && info.target != MODULE_DIR) {
|
if (info.source == ksu_loop && info.target != MODULE_DIR) {
|
||||||
@@ -98,21 +107,30 @@ void revert_unmount_apatch() {
|
|||||||
ap_loop = info.source;
|
ap_loop = info.source;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unmount everything mounted to /data/adb
|
// Unmount everything mounted to /data/adb
|
||||||
if (info.target.starts_with("/data/adb")) {
|
if (info.target.starts_with("/data/adb")) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unmount everything mounted to /data/adb
|
||||||
|
if (info.root.starts_with("/adb/modules")) {
|
||||||
|
targets.emplace_back(info.target);
|
||||||
|
}
|
||||||
|
|
||||||
// Unmount ksu overlays
|
// Unmount ksu overlays
|
||||||
if (info.type == "overlay"
|
if (info.type == "overlay"
|
||||||
&& info.source == AP_OVERLAY_SOURCE
|
&& info.source == AP_OVERLAY_SOURCE
|
||||||
&& std::find(DEVICE_PARTITIONS.begin(), DEVICE_PARTITIONS.end(), info.target) != DEVICE_PARTITIONS.end()) {
|
&& std::find(DEVICE_PARTITIONS.begin(), DEVICE_PARTITIONS.end(), info.target) != DEVICE_PARTITIONS.end()) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unmount temp dir
|
// Unmount temp dir
|
||||||
if (info.type == "tmpfs" && info.source == AP_OVERLAY_SOURCE) {
|
if (info.type == "tmpfs" && info.source == AP_OVERLAY_SOURCE) {
|
||||||
targets.emplace_back(info.target);
|
targets.emplace_back(info.target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& info: parse_mount_info("self")) {
|
for (auto& info: parse_mount_info("self")) {
|
||||||
// Unmount everything from ksu loop except ksu module dir
|
// Unmount everything from ksu loop except ksu module dir
|
||||||
if (info.source == ap_loop && info.target != MODULE_DIR) {
|
if (info.source == ap_loop && info.target != MODULE_DIR) {
|
||||||
|
|||||||
Reference in New Issue
Block a user