Skip to content

Commit

Permalink
Make a copy of logcat and use that instead
Browse files Browse the repository at this point in the history
When Magisk is magic mounting /system/bin, there is a chance that logcat would be temporarily unavailable. Leave a copy and use that for magisklogd
  • Loading branch information
topjohnwu committed Oct 21, 2018
1 parent fc791b4 commit c2b0163
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
3 changes: 3 additions & 0 deletions native/jni/daemon/bootstages.c
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,9 @@ void startup() {
xsymlink(MIRRDIR "/bin/busybox", BBPATH "/busybox");
}

// Preserve a copy of logcat
cp_afc("/system/bin/logcat", MIRRDIR "/bin/logcat");

// Start post-fs-data mode
execl("/sbin/magisk.bin", "magisk", "--post-fs-data", NULL);
}
Expand Down
6 changes: 3 additions & 3 deletions native/jni/daemon/log_daemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,11 @@ static void log_daemon() {

// Construct cmdline
vec_init(&log_cmd);
vec_push_back(&log_cmd, "/system/bin/logcat");
vec_push_back(&log_cmd, MIRRDIR "/bin/logcat");
// Test whether these buffers actually works
const char* b[] = { "main", "events", "crash" };
for (int i = 0; i < 3; ++i) {
if (exec_command_sync("/system/bin/logcat", "-b", b[i], "-d", "-f", "/dev/null", NULL) == 0)
if (exec_command_sync(MIRRDIR "/bin/logcat", "-b", b[i], "-d", "-f", "/dev/null", NULL) == 0)
vec_push_back_all(&log_cmd, "-b", b[i], NULL);
}
chmod("/dev/null", 0666);
Expand Down Expand Up @@ -174,7 +174,7 @@ static void log_daemon() {

int start_log_daemon() {
if (!log_daemon_started) {
if (exec_command_sync("/system/bin/logcat", "-d", "-f", "/dev/null", NULL) == 0) {
if (exec_command_sync(MIRRDIR "/bin/logcat", "-d", "-f", "/dev/null", NULL) == 0) {
if (fork_dont_care() == 0)
log_daemon();
// Wait till we can connect to log_daemon
Expand Down

0 comments on commit c2b0163

Please sign in to comment.