mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-10-16 09:52:31 +00:00
Integrate MagiskSU into Magisk daemon
This commit is contained in:
@@ -74,7 +74,7 @@ int hide_daemon() {
|
||||
|
||||
int fd;
|
||||
FILE *fp;
|
||||
char cache_block[256], *line;
|
||||
char buffer[4096], cache_block[256], *line;
|
||||
struct vector mount_list;
|
||||
|
||||
cache_block[0] = '\0';
|
||||
@@ -87,18 +87,18 @@ int hide_daemon() {
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
snprintf(magiskbuf, BUF_SIZE, "/proc/%d/ns/mnt", pid);
|
||||
if(access(magiskbuf, F_OK) == -1) continue; // Maybe process died..
|
||||
snprintf(buffer, sizeof(buffer), "/proc/%d/ns/mnt", pid);
|
||||
if(access(buffer, F_OK) == -1) continue; // Maybe process died..
|
||||
|
||||
fd = xopen(magiskbuf, O_RDONLY);
|
||||
fd = xopen(buffer, O_RDONLY);
|
||||
// Switch to its namespace
|
||||
xsetns(fd, 0);
|
||||
close(fd);
|
||||
|
||||
manage_selinux();
|
||||
|
||||
snprintf(magiskbuf, BUF_SIZE, "/proc/%d/mounts", pid);
|
||||
fp = xfopen(magiskbuf, "r");
|
||||
snprintf(buffer, sizeof(buffer), "/proc/%d/mounts", pid);
|
||||
fp = xfopen(buffer, "r");
|
||||
vec_init(&mount_list);
|
||||
file_to_vector(&mount_list, fp);
|
||||
|
||||
@@ -116,8 +116,8 @@ int hide_daemon() {
|
||||
vec_for_each_r(&mount_list, line) {
|
||||
if (strstr(line, "tmpfs /system") || strstr(line, "tmpfs /vendor") || strstr(line, "tmpfs /sbin")
|
||||
|| (strstr(line, cache_block) && strstr(line, "/system/")) ) {
|
||||
sscanf(line, "%*s %512s", magiskbuf);
|
||||
lazy_unmount(magiskbuf);
|
||||
sscanf(line, "%*s %512s", buffer);
|
||||
lazy_unmount(buffer);
|
||||
}
|
||||
free(line);
|
||||
}
|
||||
@@ -132,8 +132,8 @@ int hide_daemon() {
|
||||
// Unmount loop mounts
|
||||
vec_for_each_r(&mount_list, line) {
|
||||
if (strstr(line, "/dev/block/loop") && !strstr(line, DUMMYPATH)) {
|
||||
sscanf(line, "%*s %512s", magiskbuf);
|
||||
lazy_unmount(magiskbuf);
|
||||
sscanf(line, "%*s %512s", buffer);
|
||||
lazy_unmount(buffer);
|
||||
}
|
||||
free(line);
|
||||
}
|
||||
|
@@ -83,9 +83,11 @@ void launch_magiskhide(int client) {
|
||||
|
||||
isEnabled = 1;
|
||||
write_int(client, 0);
|
||||
close(client);
|
||||
return;
|
||||
error:
|
||||
write_int(client, 1);
|
||||
close(client);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -106,6 +108,7 @@ void stop_magiskhide(int client) {
|
||||
|
||||
isEnabled = 0;
|
||||
write_int(client, 0);
|
||||
close(client);
|
||||
}
|
||||
|
||||
int magiskhide_main(int argc, char *argv[]) {
|
||||
@@ -123,8 +126,9 @@ int magiskhide_main(int argc, char *argv[]) {
|
||||
req = RM_HIDELIST;
|
||||
} else if (strcmp(argv[1], "--ls") == 0) {
|
||||
FILE *fp = xfopen(HIDELIST, "r");
|
||||
while (fgets(magiskbuf, BUF_SIZE, fp)) {
|
||||
printf("%s", magiskbuf);
|
||||
char buffer[512];
|
||||
while (fgets(buffer, sizeof(buffer), fp)) {
|
||||
printf("%s", buffer);
|
||||
}
|
||||
fclose(fp);
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user