From a32d4fc0ab0a103c12daccd8dc137c3c0690e5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E5=AE=AB=E9=9B=AA=E7=8F=8A?= Date: Mon, 14 Feb 2022 18:36:00 +0800 Subject: [PATCH] Save boot kmsg (#1688) --- .../org/lsposed/lspd/service/ConfigFileManager.java | 7 ++++++- .../org/lsposed/lspd/service/LogcatService.java | 13 ++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java index c6a50973..06e19578 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java @@ -226,11 +226,16 @@ public class ConfigFileManager { return logDirPath.resolve(getNewLogFileName("modules")).toFile(); } - static File getpropsLogPath() throws IOException { + static File getPropsPath() throws IOException { createLogDirPath(); return logDirPath.resolve("props.txt").toFile(); } + static File getKmsgPath() throws IOException { + createLogDirPath(); + return logDirPath.resolve("kmsg.log").toFile(); + } + static void getLogs(ParcelFileDescriptor zipFd) throws RemoteException { try (var os = new ZipOutputStream(new FileOutputStream(zipFd.getFileDescriptor()))) { var comment = String.format(Locale.ROOT, "LSPosed %s %s (%d)", diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LogcatService.java b/daemon/src/main/java/org/lsposed/lspd/service/LogcatService.java index 5f02de0d..84eaff6a 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LogcatService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LogcatService.java @@ -37,6 +37,7 @@ public class LogcatService implements Runnable { } getprop(); + dmesg(); } private static void getprop() { @@ -46,7 +47,7 @@ public class LogcatService implements Runnable { try { SELinux.setFSCreateContext("u:object_r:app_data_file:s0"); new ProcessBuilder("sh", "-c", cmd) - .redirectOutput(ConfigFileManager.getpropsLogPath()) + .redirectOutput(ConfigFileManager.getPropsPath()) .start(); } catch (IOException e) { Log.e(TAG, "getprop: ", e); @@ -55,6 +56,16 @@ public class LogcatService implements Runnable { } } + private static void dmesg() { + try { + new ProcessBuilder("dmesg") + .redirectOutput(ConfigFileManager.getKmsgPath()) + .start(); + } catch (IOException e) { + Log.e(TAG, "dmesg: ", e); + } + } + private native void runLogcat(); @Override