From 7c3e6b7a29159b70aee117e8518e3599ef9c3502 Mon Sep 17 00:00:00 2001 From: JingMatrix Date: Sat, 21 Mar 2026 23:23:57 +0100 Subject: [PATCH] Update libxposed and implement new Log API - Implement the new `XposedInterface.log(int, String, String, Throwable)` in `LSPosedContext`. - Refactor existing log methods to route through the centralized implementation. - Enhance `Utils.Log` utility: - Add standard Android log priority constants. - Implement `println` with support for the `muted` flag. - Update default `LOG_TAG` to "Vector". --- .../org/lsposed/lspd/impl/LSPosedContext.java | 21 +++++++++++++++++-- .../java/org/lsposed/lspd/util/Utils.java | 15 ++++++++++++- xposed/libxposed | 2 +- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java b/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java index 25a3add6a..4f4fe7abd 100644 --- a/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java +++ b/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java @@ -311,12 +311,29 @@ public U newInstanceSpecial(@NonNull Constructor constructor, @NonNull @Override public void log(@NonNull String message) { - Log.i(TAG, mPackageName + ": " + message); + log(Log.INFO, null, message, null); } @Override public void log(@NonNull String message, @NonNull Throwable throwable) { - Log.e(TAG, mPackageName + ": " + message, throwable); + log(Log.ERROR, null, message, throwable); + } + + @Override + public void log(int priority, @Nullable String tag, @NonNull String msg, @Nullable Throwable tr) { + String finalTag = (tag != null) ? tag : TAG; + + // Format the message with the package name prefix + String prefix = (mPackageName != null) ? mPackageName + ": " : ""; + StringBuilder fullMsg = new StringBuilder(prefix).append(msg); + + // Handle the Throwable if present + if (tr != null) { + fullMsg.append("\n").append(Log.getStackTraceString(tr)); + } + + // Use the low-level println to handle dynamic priorities + Log.println(priority, finalTag, fullMsg.toString()); } @Override diff --git a/services/daemon-service/src/main/java/org/lsposed/lspd/util/Utils.java b/services/daemon-service/src/main/java/org/lsposed/lspd/util/Utils.java index d978d1714..49807810f 100644 --- a/services/daemon-service/src/main/java/org/lsposed/lspd/util/Utils.java +++ b/services/daemon-service/src/main/java/org/lsposed/lspd/util/Utils.java @@ -29,13 +29,26 @@ public class Utils { - public static final String LOG_TAG = "LSPosed"; + public static final String LOG_TAG = "Vector"; public static final boolean isMIUI = !TextUtils.isEmpty(SystemProperties.get("ro.miui.ui.version.name")); public static final boolean isLENOVO = !TextUtils.isEmpty(SystemProperties.get("ro.lenovo.region")); public class Log { + public static final int VERBOSE = android.util.Log.VERBOSE; + public static final int DEBUG = android.util.Log.DEBUG; + public static final int INFO = android.util.Log.INFO; + public static final int WARN = android.util.Log.WARN; + public static final int ERROR = android.util.Log.ERROR; + public static final int ASSERT = android.util.Log.ASSERT; + public static boolean muted = false; + public static void println(int priority, String tag, String msg) { + // Respect the muted flag for everything except ERROR/ASSERT + if (muted && priority < android.util.Log.ERROR) return; + android.util.Log.println(priority, tag, msg); + } + public static String getStackTraceString(Throwable tr) { return android.util.Log.getStackTraceString(tr); } diff --git a/xposed/libxposed b/xposed/libxposed index b896dbcda..88cc0781e 160000 --- a/xposed/libxposed +++ b/xposed/libxposed @@ -1 +1 @@ -Subproject commit b896dbcda3fa1550d04d43d962923318ed5a61a8 +Subproject commit 88cc0781e1138477c6b2a6570a0a27692f91f175