diff --git a/native/jni/magiskhide/hide_utils.cpp b/native/jni/magiskhide/hide_utils.cpp index 76f88c62c..fd8f8d611 100644 --- a/native/jni/magiskhide/hide_utils.cpp +++ b/native/jni/magiskhide/hide_utils.cpp @@ -289,5 +289,4 @@ void test_proc_monitor() { if (procfp == nullptr && (procfp = opendir("/proc")) == nullptr) exit(1); proc_monitor(); - exit(0); } diff --git a/native/jni/magiskhide/proc_monitor.cpp b/native/jni/magiskhide/proc_monitor.cpp index 0f65a2208..e5914f3fa 100644 --- a/native/jni/magiskhide/proc_monitor.cpp +++ b/native/jni/magiskhide/proc_monitor.cpp @@ -35,7 +35,16 @@ static map> uid_proc_map; /* uid -> list of process */ pthread_mutex_t monitor_lock; #define PID_MAX 32768 -static bitset attaches; /* true if pid is monitored */ +struct pid_set { + bitset::const_reference operator[](size_t pos) const { return set[pos - 1]; } + bitset::reference operator[](size_t pos) { return set[pos - 1]; } + void reset() { set.reset(); } +private: + bitset set; +}; + +// true if pid is monitored +pid_set attaches; /******** * Utils