From bf63d97fb6eac635b2debcb89384a6333e5a8c3d Mon Sep 17 00:00:00 2001 From: Wang Han Date: Sun, 23 May 2021 17:05:24 +0800 Subject: [PATCH] [core] Consolidate MIUI check (#663) --- .../lspd/deopt/PrebuiltMethodsDeopter.java | 5 +---- .../lspd/service/LSPApplicationService.java | 7 +++---- .../main/java/org/lsposed/lspd/util/Utils.java | 18 +++--------------- 3 files changed, 7 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/org/lsposed/lspd/deopt/PrebuiltMethodsDeopter.java b/core/src/main/java/org/lsposed/lspd/deopt/PrebuiltMethodsDeopter.java index 2856a2f3..dffb0282 100644 --- a/core/src/main/java/org/lsposed/lspd/deopt/PrebuiltMethodsDeopter.java +++ b/core/src/main/java/org/lsposed/lspd/deopt/PrebuiltMethodsDeopter.java @@ -25,8 +25,6 @@ import static org.lsposed.lspd.deopt.InlinedMethodCallers.KEY_BOOT_IMAGE; import static org.lsposed.lspd.deopt.InlinedMethodCallers.KEY_BOOT_IMAGE_MIUI_RES; import static org.lsposed.lspd.deopt.InlinedMethodCallers.KEY_SYSTEM_SERVER; -import android.text.TextUtils; - import org.lsposed.lspd.nativebridge.Yahfa; import org.lsposed.lspd.util.Utils; import org.lsposed.lspd.yahfa.hooker.YahfaHooker; @@ -62,8 +60,7 @@ public class PrebuiltMethodsDeopter { public static void deoptBootMethods() { // todo check if has been done before deoptMethods(KEY_BOOT_IMAGE, null); - if (!TextUtils.isEmpty(Utils.getSysProp("ro.miui.ui.version.code")) - && serviceClient.isResourcesHookEnabled()) { + if (Utils.isMIUI && serviceClient.isResourcesHookEnabled()) { //deopt these only for MIUI with resources hook enabled deoptMethods(KEY_BOOT_IMAGE_MIUI_RES, null); } diff --git a/core/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java b/core/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java index 663f09f0..c069f89e 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java @@ -24,11 +24,11 @@ import static org.lsposed.lspd.service.ServiceManager.TAG; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; -import android.os.SystemProperties; -import android.text.TextUtils; import android.util.Log; import android.util.Pair; +import org.lsposed.lspd.util.Utils; + import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -38,7 +38,6 @@ public class LSPApplicationService extends ILSPApplicationService.Stub { private final static Set> cache = ConcurrentHashMap.newKeySet(); private final static Map handles = new ConcurrentHashMap<>(); private final static Set recipients = ConcurrentHashMap.newKeySet(); - private final static boolean isMIUI = !TextUtils.isEmpty(SystemProperties.get("ro.miui.ui.version.name")); public boolean registerHeartBeat(int uid, int pid, IBinder handle) { try { @@ -106,7 +105,7 @@ public class LSPApplicationService extends ILSPApplicationService.Stub { ensureRegistered(); if (ConfigManager.getInstance().isManager(getCallingUid())) { var service = ServiceManager.getManagerService(); - if (isMIUI) { + if (Utils.isMIUI) { service.new ManagerGuard(handles.get(getCallingPid())); } return service; diff --git a/core/src/main/java/org/lsposed/lspd/util/Utils.java b/core/src/main/java/org/lsposed/lspd/util/Utils.java index 1d4f1d48..ec22466d 100644 --- a/core/src/main/java/org/lsposed/lspd/util/Utils.java +++ b/core/src/main/java/org/lsposed/lspd/util/Utils.java @@ -20,16 +20,16 @@ package org.lsposed.lspd.util; +import android.os.SystemProperties; +import android.text.TextUtils; import android.util.Log; import org.lsposed.lspd.BuildConfig; -import de.robv.android.xposed.XposedHelpers; - - public class Utils { public static final String LOG_TAG = "LSPosed"; + public static final boolean isMIUI = !TextUtils.isEmpty(SystemProperties.get("ro.miui.ui.version.name")); public static void logD(Object msg) { if (BuildConfig.DEBUG) @@ -64,16 +64,4 @@ public class Utils { public static void logE(String msg, Throwable throwable) { Log.e(LOG_TAG, msg, throwable); } - - public static String getSysProp(String key) { - try { - Class sysProps = XposedHelpers.findClassIfExists("android.os.SystemProperties", null); - if (sysProps != null) { - return (String) XposedHelpers.callStaticMethod(sysProps, "get", key); - } - } catch (Throwable throwable) { - Utils.logE("error when get sys prop", throwable); - } - return ""; - } }