mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-06-12 13:17:39 +02:00
Invincible mode implemented in magisklogd
This commit is contained in:
@ -83,6 +83,9 @@ static void *request_handler(void *args) {
|
||||
case LATE_START:
|
||||
late_start(client);
|
||||
break;
|
||||
case MONITOR:
|
||||
/* Do NOT close the client, make it hold */
|
||||
break;
|
||||
default:
|
||||
close(client);
|
||||
break;
|
||||
@ -117,13 +120,6 @@ void main_daemon() {
|
||||
xdup2(fd, STDIN_FILENO);
|
||||
close(fd);
|
||||
|
||||
// Block user signals
|
||||
sigset_t block_set;
|
||||
sigemptyset(&block_set);
|
||||
sigaddset(&block_set, SIGUSR1);
|
||||
sigaddset(&block_set, SIGUSR2);
|
||||
pthread_sigmask(SIG_SETMASK, &block_set, NULL);
|
||||
|
||||
// Start the log monitor
|
||||
monitor_logs();
|
||||
|
||||
@ -138,6 +134,19 @@ void main_daemon() {
|
||||
// Change process name
|
||||
strcpy(argv0, "magiskd");
|
||||
|
||||
// Block all user signals
|
||||
sigset_t block_set;
|
||||
sigemptyset(&block_set);
|
||||
sigaddset(&block_set, SIGUSR1);
|
||||
sigaddset(&block_set, SIGUSR2);
|
||||
pthread_sigmask(SIG_SETMASK, &block_set, NULL);
|
||||
|
||||
// Ignore SIGPIPE
|
||||
struct sigaction act;
|
||||
memset(&act, 0, sizeof(act));
|
||||
act.sa_handler = SIG_IGN;
|
||||
sigaction(SIGPIPE, &act, NULL);
|
||||
|
||||
// Loop forever to listen for requests
|
||||
while(1) {
|
||||
int *client = xmalloc(sizeof(int));
|
||||
|
Reference in New Issue
Block a user