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 dd0a092c..698e4ff7 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LogcatService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LogcatService.java @@ -2,8 +2,11 @@ package org.lsposed.lspd.service; import android.annotation.SuppressLint; import android.os.ParcelFileDescriptor; +import android.os.SystemProperties; import android.util.Log; +import org.lsposed.lspd.BuildConfig; + import java.io.File; import java.io.IOException; @@ -29,6 +32,10 @@ public class LogcatService implements Runnable { @Override public void run() { Log.i(TAG, "start running"); + // Meizu devices set this prop and prevent debug logs from being recorded + if (BuildConfig.DEBUG && SystemProperties.getInt("persist.sys.log_reject_level", 0) > 0) { + SystemProperties.set("persist.sys.log_reject_level", "0"); + } runLogcat(); Log.i(TAG, "stopped"); } diff --git a/core/src/main/java/org/lsposed/lspd/util/ParasiticManagerHooker.java b/core/src/main/java/org/lsposed/lspd/util/ParasiticManagerHooker.java index 4ea964eb..65d90950 100644 --- a/core/src/main/java/org/lsposed/lspd/util/ParasiticManagerHooker.java +++ b/core/src/main/java/org/lsposed/lspd/util/ParasiticManagerHooker.java @@ -158,13 +158,14 @@ public class ParasiticManagerHooker { } else if (arg instanceof ProviderInfo) info = (ProviderInfo) arg; } if (ctx != null && info != null) { + var packageName = getManagerPkgInfo(null).applicationInfo.packageName; + if (!info.applicationInfo.packageName.equals(packageName)) return; if (originalContext == null) { - var isDefaultManager = info.applicationInfo.packageName.equals(BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME); - info.applicationInfo.packageName = isDefaultManager ? BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME + ".origin" : BuildConfig.MANAGER_INJECTED_PKG_NAME + ".origin"; + info.applicationInfo.packageName = packageName + ".origin"; var originalPkgInfo = ActivityThread.currentActivityThread().getPackageInfoNoCheck(info.applicationInfo, HiddenApiBridge.Resources_getCompatibilityInfo(ctx.getResources())); - XposedHelpers.setObjectField(originalPkgInfo, "mPackageName", isDefaultManager ? BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME : BuildConfig.MANAGER_INJECTED_PKG_NAME); + XposedHelpers.setObjectField(originalPkgInfo, "mPackageName", packageName); originalContext = (Context) XposedHelpers.callStaticMethod(XposedHelpers.findClass("android.app.ContextImpl", null), "createAppContext", ActivityThread.currentActivityThread(), originalPkgInfo); - info.applicationInfo.packageName = isDefaultManager ? BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME : BuildConfig.MANAGER_INJECTED_PKG_NAME; + info.applicationInfo.packageName = packageName; } param.args[ctxIdx] = originalContext; } else { diff --git a/hiddenapi-stubs/src/main/java/android/os/SystemProperties.java b/hiddenapi-stubs/src/main/java/android/os/SystemProperties.java index 223c1690..240fa36c 100644 --- a/hiddenapi-stubs/src/main/java/android/os/SystemProperties.java +++ b/hiddenapi-stubs/src/main/java/android/os/SystemProperties.java @@ -19,4 +19,8 @@ public class SystemProperties { public static boolean getBoolean(@NonNull String key, boolean def) { throw new UnsupportedOperationException("Stub"); } + + public static int getInt(@NonNull String key, int def) { + throw new UnsupportedOperationException("Stub"); + } }