Commit 89e0be00 authored by topjohnwu's avatar topjohnwu

Fix a bug causing magiskhide CLI freezing

parent ef40c121
......@@ -576,7 +576,7 @@ static bool check_data() {
return data;
}
extern int launch_magiskhide();
extern int launch_magiskhide(int client = -1);
static void *start_magisk_hide(void *) {
launch_magiskhide();
......
......@@ -32,7 +32,7 @@ pthread_mutex_t list_lock;
exit(1);
}
int launch_magiskhide() {
int launch_magiskhide(int client) {
if (hide_enabled)
return HIDE_IS_ENABLED;
......@@ -62,9 +62,12 @@ int launch_magiskhide() {
// Get thread reference
proc_monitor_thread = pthread_self();
if (client >= 0) {
write_int(client, DAEMON_SUCCESS);
close(client);
}
// Start monitoring
proc_monitor();
return DAEMON_SUCCESS;
error:
hide_enabled = 0;
......@@ -101,7 +104,7 @@ void magiskhide_handler(int client) {
switch (req) {
case LAUNCH_MAGISKHIDE:
res = launch_magiskhide();
res = launch_magiskhide(client);
break;
case STOP_MAGISKHIDE:
res = stop_magiskhide();
......
......@@ -10,7 +10,7 @@
#define TERM_THREAD SIGUSR1
// Daemon entries
int launch_magiskhide();
int launch_magiskhide(int client);
int stop_magiskhide();
int add_list(int client);
int rm_list(int client);
......
......@@ -200,4 +200,5 @@ void proc_monitor() {
if (fork_dont_care() == 0)
hide_daemon(pid);
}
pthread_exit(nullptr);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment