mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-25 08:47:38 +00:00
Remove isolated process handling in ptrace
Impossible to achieve only through ptrace
This commit is contained in:
parent
b36e6d987d
commit
e546884b08
@ -207,16 +207,8 @@ static bool check_pid(int pid) {
|
||||
auto it = uid_proc_map.end();
|
||||
|
||||
if (uid % 100000 > 90000) {
|
||||
// Isolated process
|
||||
it = uid_proc_map.find(-1);
|
||||
if (it == uid_proc_map.end())
|
||||
// No way to handle isolated process
|
||||
goto not_target;
|
||||
for (auto &s : it->second) {
|
||||
if (str_starts(cmdline, s)) {
|
||||
LOGI("proc_monitor: (isolated) [%s] PID=[%d] UID=[%d]\n", cmdline, pid, uid);
|
||||
goto inject_and_hide;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
it = uid_proc_map.find(uid);
|
||||
@ -226,17 +218,12 @@ static bool check_pid(int pid) {
|
||||
if (s != cmdline)
|
||||
continue;
|
||||
|
||||
if (str_ends(s, "_zygote")) {
|
||||
LOGI("proc_monitor: (app zygote) [%s] PID=[%d] UID=[%d]\n", cmdline, pid, uid);
|
||||
goto inject_and_hide;
|
||||
}
|
||||
|
||||
// Double check whether ns is separated
|
||||
// Check if ns is separated (could be app zygote)
|
||||
read_ns(pid, &st);
|
||||
for (auto &zit : zygote_map) {
|
||||
if (zit.second.st_ino == st.st_ino &&
|
||||
zit.second.st_dev == st.st_dev) {
|
||||
// For some reason ns is not separated, abort
|
||||
// ns not separated, abort
|
||||
goto not_target;
|
||||
}
|
||||
}
|
||||
@ -254,11 +241,6 @@ not_target:
|
||||
PTRACE_LOG("[%s] is not our target\n", cmdline);
|
||||
detach_pid(pid);
|
||||
return true;
|
||||
|
||||
inject_and_hide:
|
||||
// TODO: handle isolated processes and app zygotes
|
||||
detach_pid(pid);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool is_process(int pid) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user