diff --git a/app/hook/src/main/java/com/hchen/processor/HookEntrance.java b/app/hook/src/main/java/com/hchen/processor/HookEntrance.java index b7def97..7331eb5 100644 --- a/app/hook/src/main/java/com/hchen/processor/HookEntrance.java +++ b/app/hook/src/main/java/com/hchen/processor/HookEntrance.java @@ -51,6 +51,11 @@ */ float targetOS() default -1f; + /** + * 是否是 HyperOS 系统 + */ + boolean isHyperOS() default false; + /** * 是否向下兼容 * */ diff --git a/app/hook/src/main/java/com/hchen/processor/HookProcessor.java b/app/hook/src/main/java/com/hchen/processor/HookProcessor.java index 03f464e..2664c5c 100644 --- a/app/hook/src/main/java/com/hchen/processor/HookProcessor.java +++ b/app/hook/src/main/java/com/hchen/processor/HookProcessor.java @@ -89,12 +89,14 @@ public class EntranceMap { public float mTargetOS; public boolean mDownward; public boolean mUpward; + public boolean isHyperOS; - public EntranceMap(String targetBrand, String targetPackage, int targetSdk, float targetOS, boolean downward, boolean upward){ + public EntranceMap(String targetBrand, String targetPackage, int targetSdk, float targetOS, boolean isHyperOS, boolean downward, boolean upward){ this.mTargetBrand = targetBrand; this.mTargetPackage = targetPackage; this.mTargetSdk = targetSdk; this.mTargetOS = targetOS; + this.isHyperOS = isHyperOS; this.mDownward = downward; this.mUpward = upward; } @@ -118,12 +120,13 @@ public void accept(Element element) { String targetPackage = hookEntrance.targetPackage(); int targetSdk = hookEntrance.targetSdk(); float targetOS = hookEntrance.targetOS(); + boolean isHyperOS = hookEntrance.isHyperOS(); boolean downward = hookEntrance.downward(); boolean upward = hookEntrance.upward(); try { writer.write(" "); writer.write("dataMap.put(\"" + fullClassName + "\", new EntranceMap(\"" + targetBrand + "\", " - + "\"" + targetPackage + "\"" + ", " + targetSdk + ", " + targetOS + "f, " + downward + ", " + upward + "));\n"); + + "\"" + targetPackage + "\"" + ", " + targetSdk + ", " + targetOS + "f, " + isHyperOS + ", " + downward + ", " + upward + "));\n"); } catch (IOException e) { e.printStackTrace(); } diff --git a/app/src/main/java/com/hchen/appretention/HookInit.java b/app/src/main/java/com/hchen/appretention/HookInit.java index 4ff65a3..4ecd07a 100644 --- a/app/src/main/java/com/hchen/appretention/HookInit.java +++ b/app/src/main/java/com/hchen/appretention/HookInit.java @@ -74,7 +74,7 @@ public void accept(String s, EntranceMap entranceMap) { return; if ("Xiaomi".equals(entranceMap.mTargetBrand)) { if (entranceMap.mTargetOS != -1) { - if (DeviceTool.getHyperOSVersion() != 0f) { + if (entranceMap.isHyperOS) { if (!DeviceTool.isHyperOSVersion(entranceMap.mTargetOS) && !entranceMap.mUpward && !entranceMap.mDownward) return; if (entranceMap.mUpward && !(DeviceTool.getHyperOSVersion() >= entranceMap.mTargetOS)) @@ -88,7 +88,7 @@ public void accept(String s, EntranceMap entranceMap) { return; if (entranceMap.mDownward && !(DeviceTool.getMiuiVersion() <= entranceMap.mTargetOS)) return; - } + } else return; } } diff --git a/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV1.java b/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV1.java index ffdb465..be5d35b 100644 --- a/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV1.java +++ b/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV1.java @@ -82,7 +82,7 @@ * * @author 焕晨HChen */ -@HookEntrance(targetBrand = "Xiaomi", targetPackage = "android", targetOS = 1.0f) +@HookEntrance(targetBrand = "Xiaomi", targetPackage = "android", targetOS = 1.0f, isHyperOS = true) public class HyperV1 extends BaseHC { @Override diff --git a/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV2.java b/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV2.java index 5684ae9..db12952 100644 --- a/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV2.java +++ b/app/src/main/java/com/hchen/appretention/hook/hyper/HyperV2.java @@ -86,7 +86,7 @@ * * @author 焕晨HChen */ -@HookEntrance(targetBrand = "Xiaomi", targetPackage = "android", targetOS = 2.0f) +@HookEntrance(targetBrand = "Xiaomi", targetPackage = "android", targetOS = 2.0f, isHyperOS = true) public class HyperV2 extends BaseHC { @Override public void init() { diff --git a/app/src/main/java/com/hchen/appretention/hook/system/LogServices.java b/app/src/main/java/com/hchen/appretention/hook/system/LogServices.java index d4f2be2..65284b3 100644 --- a/app/src/main/java/com/hchen/appretention/hook/system/LogServices.java +++ b/app/src/main/java/com/hchen/appretention/hook/system/LogServices.java @@ -159,7 +159,7 @@ static class KillEventLogRecord { private static Process mLogcat; private static void init(Context context) { - if (BuildConfig.DEBUG || Settings.System.getString(context.getContentResolver(), SETTINGS_KILL_EVENT_LOG_RECORD_ENABLE).equals(TRUE)) { + if (BuildConfig.DEBUG || TRUE.equals(Settings.System.getString(context.getContentResolver(), SETTINGS_KILL_EVENT_LOG_RECORD_ENABLE))) { if (!isKillEventRecording) startRecord(); else