Try logging a little harder
This commit is contained in:
parent
f1edc8443c
commit
5be035fd44
@ -468,6 +468,23 @@ void install_apk(const char *apk) {
|
||||
unlink(apk);
|
||||
}
|
||||
|
||||
static void *start_magisk_hide(void *args) {
|
||||
launch_magiskhide(-1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void auto_start_magiskhide() {
|
||||
if (!check_and_start_logger())
|
||||
return;
|
||||
char *hide_prop = getprop2(MAGISKHIDE_PROP, 1);
|
||||
if (hide_prop == NULL || strcmp(hide_prop, "0") != 0) {
|
||||
pthread_t thread;
|
||||
xpthread_create(&thread, NULL, start_magisk_hide, NULL);
|
||||
pthread_detach(thread);
|
||||
}
|
||||
free(hide_prop);
|
||||
}
|
||||
|
||||
/****************
|
||||
* Entry points *
|
||||
****************/
|
||||
@ -804,6 +821,8 @@ void late_start(int client) {
|
||||
if (buf == NULL) buf = xmalloc(PATH_MAX);
|
||||
if (buf2 == NULL) buf2 = xmalloc(PATH_MAX);
|
||||
|
||||
auto_start_magiskhide();
|
||||
|
||||
if (full_patch_pid > 0) {
|
||||
// Wait till the full patch is done
|
||||
waitpid(full_patch_pid, NULL, 0);
|
||||
|
@ -93,22 +93,6 @@ static void *request_handler(void *args) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void *start_magisk_hide(void *args) {
|
||||
launch_magiskhide(-1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void auto_start_magiskhide() {
|
||||
char *hide_prop = getprop2(MAGISKHIDE_PROP, 1);
|
||||
if (hide_prop == NULL || strcmp(hide_prop, "0") != 0) {
|
||||
pthread_t thread;
|
||||
xpthread_create(&thread, NULL, start_magisk_hide, NULL);
|
||||
pthread_detach(thread);
|
||||
}
|
||||
free(hide_prop);
|
||||
}
|
||||
|
||||
void main_daemon() {
|
||||
setsid();
|
||||
setcon("u:r:"SEPOL_PROC_DOMAIN":s0");
|
||||
@ -121,13 +105,7 @@ void main_daemon() {
|
||||
close(fd);
|
||||
|
||||
// Start the log monitor
|
||||
loggable = exec_command_sync("/system/bin/logcat", "-d", "-f", "/dev/null", NULL) == 0;
|
||||
chmod("/dev/null", 0666);
|
||||
if (loggable) {
|
||||
connect_daemon2(LOG_DAEMON, &fd);
|
||||
write_int(fd, HANDSHAKE);
|
||||
close(fd);
|
||||
}
|
||||
check_and_start_logger();
|
||||
|
||||
struct sockaddr_un sun;
|
||||
fd = setup_socket(&sun, MAIN_DAEMON);
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "utils.h"
|
||||
#include "daemon.h"
|
||||
|
||||
int loggable = 1;
|
||||
static int loggable = 0;
|
||||
static struct vector log_cmd, clear_cmd;
|
||||
static int sockfd;
|
||||
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
@ -106,6 +106,20 @@ static void *logcat_thread(void *args) {
|
||||
}
|
||||
}
|
||||
|
||||
int check_and_start_logger() {
|
||||
if (!loggable) {
|
||||
int fd;
|
||||
loggable = exec_command_sync("/system/bin/logcat", "-d", "-f", "/dev/null", NULL) == 0;
|
||||
chmod("/dev/null", 0666);
|
||||
if (loggable) {
|
||||
connect_daemon2(LOG_DAEMON, &fd);
|
||||
write_int(fd, HANDSHAKE);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
return loggable;
|
||||
}
|
||||
|
||||
void log_daemon() {
|
||||
setsid();
|
||||
struct sockaddr_un sun;
|
||||
|
@ -51,12 +51,11 @@ typedef enum {
|
||||
void main_daemon();
|
||||
int connect_daemon();
|
||||
int connect_daemon2(daemon_t d, int *sockfd);
|
||||
void auto_start_magiskhide();
|
||||
|
||||
// log_monitor.c
|
||||
|
||||
extern int loggable;
|
||||
void log_daemon();
|
||||
int check_and_start_logger();
|
||||
|
||||
// socket.c
|
||||
|
||||
|
@ -5,11 +5,8 @@ const char magiskrc[] =
|
||||
|
||||
// Triggers
|
||||
|
||||
"on post-fs\n"
|
||||
" start logd\n"
|
||||
"\n"
|
||||
|
||||
"on post-fs-data\n"
|
||||
" start logd\n"
|
||||
" load_persist_props\n"
|
||||
" rm "UNBLOCKFILE"\n"
|
||||
" start magisk_startup\n"
|
||||
|
@ -45,7 +45,7 @@ void launch_magiskhide(int client) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!loggable) {
|
||||
if (!check_and_start_logger()) {
|
||||
if (client > 0) {
|
||||
write_int(client, LOGCAT_DISABLED);
|
||||
close(client);
|
||||
|
Loading…
Reference in New Issue
Block a user