diff --git a/core/src/main/java/org/lsposed/lspd/service/LogcatService.java b/core/src/main/java/org/lsposed/lspd/service/LogcatService.java index cdf1b1b2..dd0a092c 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LogcatService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LogcatService.java @@ -36,11 +36,16 @@ public class LogcatService implements Runnable { @SuppressWarnings("unused") private int refreshFd(boolean isVerboseLog) { try { - File log = isVerboseLog ? (verboseLog = ConfigFileManager.getNewVerboseLogPath()) : - (modulesLog = ConfigFileManager.getNewModulesLogPath()); + File log = isVerboseLog ? ConfigFileManager.getNewVerboseLogPath() : ConfigFileManager.getNewModulesLogPath(); Log.i(TAG, "New " + (isVerboseLog ? "verbose" : "modules") + " log file: " + log); - return ParcelFileDescriptor.open(log, mode).detachFd(); + int fd = ParcelFileDescriptor.open(log, mode).detachFd(); + var fdFile = new File("/proc/self/fd/" + fd); + if (isVerboseLog) verboseLog = fdFile; + else modulesLog = fdFile; + return fd; } catch (IOException e) { + if (isVerboseLog) verboseLog = null; + else modulesLog = null; Log.w(TAG, "someone chattr +i ?", e); return -1; }