From 891890c9cee3a23428a2cf45dbc97999343078c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=93=83=E6=9F=92=E6=9F=92?= Date: Fri, 10 Jan 2025 15:47:51 +0800 Subject: [PATCH] opt: Tools --- app/proguard-rules.pro | 4 +- .../com/sevtinge/hyperceiler/XposedInit.java | 12 +- .../hyperceiler/module/base/BaseModule.java | 6 +- .../module/base/dexkit/DexKit.java | 4 +- .../base/tool/AppsTool.java} | 191 ++++++++---------- .../module/base/tool/OtherTool.java | 40 +--- .../module/hook/browser/DebugMode.java | 2 +- .../hook/browser/EnableDebugEnvironment.java | 2 +- .../module/hook/getapps/BypassRiskCheck.java | 2 +- .../module/hook/home/HomeBaseHook.kt | 2 +- .../drawer/AllAppsContainerViewSuperBlur.java | 4 +- .../hook/securitycenter/app/AppDisable.java | 5 +- .../sidebar/AddSideBarExpandReceiver.java | 2 +- .../securitycenter/sidebar/BlurSecurity.kt | 3 +- .../hook/systemframework/CleanOpenMenu.java | 24 +-- .../controlcenter/NotificationRowMenu.java | 4 +- .../hook/various/clipboard/ClipboardList.java | 2 +- .../provider/SharedPrefsProvider.java | 4 +- .../ui/activity/HyperCeilerTabActivity.java | 10 +- .../ui/activity/base/BaseActivity.java | 6 +- .../ui/activity/base/NaviBaseActivity.java | 9 +- .../DevelopmentDebugInfoFragment.java | 2 +- .../hyperceiler/utils/DialogHelper.java | 3 +- .../hyperceiler/utils/prefs/PrefsUtils.java | 6 +- gradle/libs.versions.toml | 4 +- 25 files changed, 142 insertions(+), 211 deletions(-) rename app/src/main/java/com/sevtinge/hyperceiler/{utils/Helpers.java => module/base/tool/AppsTool.java} (63%) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 459574d03..d277d9095 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -2,8 +2,8 @@ -keep class com.sevtinge.hyperceiler.module.skip.SystemFrameworkForCorePatch -keep class com.sevtinge.hyperceiler.ui.activity.LauncherActivity -keep class com.sevtinge.hyperceiler.utils.blur.* --keep class com.sevtinge.hyperceiler.utils.Helpers { boolean isModuleActive; } --keep class com.sevtinge.hyperceiler.utils.Helpers { int XposedVersion; } +-keep class com.sevtinge.hyperceiler.module.base.tool.AppsTool { boolean isModuleActive; } +-keep class com.sevtinge.hyperceiler.module.base.tool.AppsTool { int XposedVersion; } -keep class fan.**{ *; } -keep class androidx.preference.**{ *; } -keep class org.luckypray.dexkit.**{ *; } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/XposedInit.java b/app/src/main/java/com/sevtinge/hyperceiler/XposedInit.java index 916292cf8..ce68f60b3 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/XposedInit.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/XposedInit.java @@ -18,8 +18,8 @@ */ package com.sevtinge.hyperceiler; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionCode; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionName; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionName; import static com.sevtinge.hyperceiler.utils.devicesdk.MiDeviceAppUtilsKt.isPad; import static com.sevtinge.hyperceiler.utils.devicesdk.SystemSDKKt.getAndroidVersion; import static com.sevtinge.hyperceiler.utils.devicesdk.SystemSDKKt.getHyperOSVersion; @@ -188,7 +188,7 @@ private void invokeInit(XC_LoadPackage.LoadPackageParam lpparam) { return; } - dataMap.forEach(new BiConsumer() { + dataMap.forEach(new BiConsumer<>() { @Override public void accept(String s, DataBase dataBase) { if (!mPkgName.equals(dataBase.mTargetPackage)) @@ -251,10 +251,10 @@ private boolean isOtherRestrictions(String pkg) { } public void moduleActiveHook(XC_LoadPackage.LoadPackageParam lpparam) { - Class mHelpers = XposedHelpers.findClassIfExists(ProjectApi.mAppModulePkg + ".utils.Helpers", lpparam.classLoader); + Class AppsTool = XposedHelpers.findClassIfExists(ProjectApi.mAppModulePkg + ".module.base.tool.AppsTool", lpparam.classLoader); - XposedHelpers.setStaticBooleanField(mHelpers, "isModuleActive", true); - XposedHelpers.setStaticIntField(mHelpers, "XposedVersion", XposedBridge.getXposedVersion()); + XposedHelpers.setStaticBooleanField(AppsTool, "isModuleActive", true); + XposedHelpers.setStaticIntField(AppsTool, "XposedVersion", XposedBridge.getXposedVersion()); XposedBridge.log("[HyperCeiler][I]: Log level is " + logLevelDesc()); } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/base/BaseModule.java b/app/src/main/java/com/sevtinge/hyperceiler/module/base/BaseModule.java index 62d7b631f..592405f53 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/base/BaseModule.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/base/BaseModule.java @@ -24,7 +24,7 @@ import com.sevtinge.hyperceiler.module.base.dexkit.DexKit; import com.sevtinge.hyperceiler.safe.CrashData; import com.sevtinge.hyperceiler.utils.ContextUtils; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.api.ProjectApi; import com.sevtinge.hyperceiler.utils.log.XposedLogUtils; import com.sevtinge.hyperceiler.utils.prefs.PrefsMap; @@ -116,8 +116,8 @@ public void initHook(Object hook, boolean isInit, String versionName, int versio onCreate(hook); return; } - int code = Helpers.getPackageVersionCode(mLoadPackageParam); - String name = Helpers.getPackageVersionName(mLoadPackageParam); + int code = AppsTool.getPackageVersionCode(mLoadPackageParam); + String name = AppsTool.getPackageVersionName(mLoadPackageParam); if (code == versionCode) onCreate(hook); if (name.equals(versionName)) diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/base/dexkit/DexKit.java b/app/src/main/java/com/sevtinge/hyperceiler/module/base/dexkit/DexKit.java index 11d9d8bb6..259583690 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/base/dexkit/DexKit.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/base/dexkit/DexKit.java @@ -18,8 +18,8 @@ */ package com.sevtinge.hyperceiler.module.base.dexkit; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionCode; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionName; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionName; import static com.sevtinge.hyperceiler.utils.shell.ShellUtils.rootExecCmd; import android.content.Context; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/utils/Helpers.java b/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/AppsTool.java similarity index 63% rename from app/src/main/java/com/sevtinge/hyperceiler/utils/Helpers.java rename to app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/AppsTool.java index 90eb4aa0d..4eeab8a07 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/utils/Helpers.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/AppsTool.java @@ -16,13 +16,12 @@ * Copyright (C) 2023-2025 HyperCeiler Contributions */ -package com.sevtinge.hyperceiler.utils; +package com.sevtinge.hyperceiler.module.base.tool; import static com.sevtinge.hyperceiler.utils.log.XposedLogUtils.logE; import android.annotation.SuppressLint; import android.app.Activity; -import android.app.ActivityOptions; import android.app.backup.BackupManager; import android.content.Context; import android.content.Intent; @@ -42,6 +41,7 @@ import android.widget.TextView; import com.sevtinge.hyperceiler.R; +import com.sevtinge.hyperceiler.utils.DialogHelper; import com.sevtinge.hyperceiler.utils.api.ProjectApi; import com.sevtinge.hyperceiler.utils.log.AndroidLogUtils; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; @@ -56,17 +56,13 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage; import fan.appcompat.app.AlertDialog; -public class Helpers { +public class AppsTool { - private static final String TAG = "Helpers"; + private static final String TAG = "AppsTool"; public static boolean isModuleActive = false; public static int XposedVersion = 0; - public static final int REQUEST_PERMISSIONS_BACKUP = 1; - public static final int REQUEST_PERMISSIONS_RESTORE = 2; - - public static LruCache memoryCache = new LruCache<>((int) (Runtime.getRuntime().maxMemory() / 1024) / 2) { @Override protected int sizeOf(String key, Bitmap icon) { @@ -98,16 +94,6 @@ public static synchronized Resources getModuleRes(Context context) throws Throwa return (config == null ? moduleContext.getResources() : moduleContext.createConfigurationContext(config).getResources()); } - public static boolean checkStorageReadable(Activity activity) { - String state = Environment.getExternalStorageState(); - if (state.equals(Environment.MEDIA_MOUNTED_READ_ONLY) || state.equals(Environment.MEDIA_MOUNTED)) { - return true; - } else { - DialogHelper.showDialog(activity, "警告!", "无法访问任何合适的存储空间"); - return false; - } - } - public static class MimeType { public static int IMAGE = 1; public static int AUDIO = 2; @@ -180,7 +166,7 @@ public static void registerFileObserver(Context context) { FileObserver mFileObserver = new FileObserver(new File(PrefsUtils.getSharedPrefsPath()), FileObserver.CLOSE_WRITE) { @Override public void onEvent(int event, String path) { - Helpers.fixPermissionsAsync(context); + AppsTool.fixPermissionsAsync(context); } }; mFileObserver.startWatching(); @@ -201,29 +187,6 @@ private static String getCallerMethod() { return stackTrace[4].getMethodName(); } - public static ActivityOptions makeFreeformActivityOptions(Context context, String str) { - - /*ActivityOptions activityOptions; - try { - activityOptions = ReflectUtils.callStaticObjectMethod(Class.forName("android.util.MiuiMultiWindowUtils"), ActivityOptions.class, "getActivityOptions", new Class[]{Context.class, String.class, Boolean.TYPE, Boolean.TYPE}, context, str, true, false); - } catch (Exception e) { - logD(TAG, "MiuiMultiWindowUtils getActivityOptions error", e); - activityOptions = null; - } - - if (activityOptions != null) { - return activityOptions; - } - - - ActivityOptions makeBasic = ActivityOptions.makeBasic(); - ReflectUtils.callObjectMethod("android.app.ActivityOptions", "setLaunchWindowingMode", new Class[]{int.class}, 5); - Rect rect = (Rect) ReflectUtils.callObjectMethod("android.util.MiuiMultiWindowUtils", "getFreeformRect", new Class[]{Context.class}, new Object[]{context}); - makeBasic.setLaunchBounds(rect); - return makeBasic;*/ - return null; - } - public static void openAppInfo(Context context, String pkg, int user) { try { Intent intent = new Intent("miui.intent.action.APP_MANAGER_APPLICATION_DETAIL"); @@ -249,13 +212,12 @@ public static void openAppInfo(Context context, String pkg, int user) { public static String getPackageVersionName(XC_LoadPackage.LoadPackageParam lpparam) { try { Class parserCls = XposedHelpers.findClass("android.content.pm.PackageParser", lpparam.classLoader); - Object parser = parserCls.newInstance(); + Object parser = parserCls.getDeclaredConstructor().newInstance(); File apkPath = new File(lpparam.appInfo.sourceDir); Object pkg = XposedHelpers.callMethod(parser, "parsePackage", apkPath, 0); - // XposedLogUtils.logI("getPackageVersionName", lpparam.packageName + " versionName is " + versionName); return (String) XposedHelpers.getObjectField(pkg, "mVersionName"); } catch (Throwable e) { - // XposedLogUtils.logW("getPackageVersionName", e); + logE("getPackageVersionCode", e); return "null"; } } @@ -263,13 +225,12 @@ public static String getPackageVersionName(XC_LoadPackage.LoadPackageParam lppar public static int getPackageVersionCode(XC_LoadPackage.LoadPackageParam lpparam) { try { Class parserCls = XposedHelpers.findClass("android.content.pm.PackageParser", lpparam.classLoader); - Object parser = parserCls.newInstance(); + Object parser = parserCls.getDeclaredConstructor().newInstance(); File apkPath = new File(lpparam.appInfo.sourceDir); Object pkg = XposedHelpers.callMethod(parser, "parsePackage", apkPath, 0); - // XposedLogUtils.logI("getPackageVersionCode", lpparam.packageName + " versionCode is " + versionCode); return XposedHelpers.getIntField(pkg, "mVersionCode"); } catch (Throwable e) { - // XposedLogUtils.logW("getPackageVersionCode", e); + logE("getPackageVersionCode", e); return -1; } } @@ -279,76 +240,88 @@ public static void checkXposedActivateState(Context context) { } public static void doRestart(Context context, String[] packageName, boolean isRestartSystem) { - boolean result = false; + boolean result; boolean pid = true; + if (isRestartSystem) { result = ShellInit.getShell().run("reboot").sync().isResult(); } else { - if (packageName != null) { - for (String packageGet : packageName) { - if (packageGet == null) { - continue; - } - // String test = "XX"; - // ShellUtils.CommandResult commandResult = ShellUtils.execCommand("{ [[ $(pgrep -f '" + packageGet + - // "' | grep -v $$) != \"\" ]] && { pkill -l 9 -f \"" + packageGet + - // "\"; }; } || { echo \"kill error\"; }", true, true); - - boolean getResult = - ShellInit.getShell().add("pid=$(pgrep -f \"" + packageGet + "\" | grep -v $$)") - .add("if [[ $pid == \"\" ]]; then") - .add(" pids=\"\"") - .add(" pid=$(ps -A -o PID,ARGS=CMD | grep \"" + packageGet + "\" | grep -v \"grep\")") - .add(" for i in $pid; do") - .add(" if [[ $(echo $i | grep '[0-9]' 2>/dev/null) != \"\" ]]; then") - .add(" if [[ $pids == \"\" ]]; then") - .add(" pids=$i") - .add(" else") - .add(" pids=\"$pids $i\"") - .add(" fi") - .add(" fi") - .add(" done") - .add("fi") - .add("if [[ $pids != \"\" ]]; then") - .add(" pid=$pids") - .add("fi") - .add("if [[ $pid != \"\" ]]; then") - .add(" for i in $pid; do") - .add(" kill -s 15 $i &>/dev/null") - .add(" done") - .add("else") - .add(" echo \"No Find Pid!\"") - .add("fi").over().sync().isResult(); - ArrayList outPut = ShellInit.getShell().getOutPut(); - ArrayList error = ShellInit.getShell().getError(); - - if (getResult) { - if (!outPut.isEmpty()) { - if (outPut.get(0).equals("No Find Pid!")) { - pid = false; - } else { - result = true; - } - } else result = true; - } else - AndroidLogUtils.logE("doRestart: ", "result: " + ShellInit.getShell().getResult() + - " errorMsg: " + error + " package: " + packageGet); + result = handlePackages(packageName); + pid = result; + } + + if (!result) { + showAlertDialog(context, isRestartSystem, pid); + } + } + + private static boolean handlePackages(String[] packageName) { + if (packageName == null) { + AndroidLogUtils.logE("doRestart: ", "packageName is null"); + return false; + } + boolean result = false; + for (String packageGet : packageName) { + if (packageGet == null) continue; + + boolean getResult = + ShellInit.getShell().add("pid=$(pgrep -f \"" + packageGet + "\" | grep -v $$)") + .add("if [[ $pid == \"\" ]]; then") + .add(" pids=\"\"") + .add(" pid=$(ps -A -o PID,ARGS=CMD | grep \"" + packageGet + "\" | grep -v \"grep\")") + .add(" for i in $pid; do") + .add(" if [[ $(echo $i | grep '[0-9]' 2>/dev/null) != \"\" ]]; then") + .add(" if [[ $pids == \"\" ]]; then") + .add(" pids=$i") + .add(" else") + .add(" pids=\"$pids $i\"") + .add(" fi") + .add(" fi") + .add(" done") + .add("fi") + .add("if [[ $pids != \"\" ]]; then") + .add(" pid=$pids") + .add("fi") + .add("if [[ $pid != \"\" ]]; then") + .add(" for i in $pid; do") + .add(" kill -s 15 $i &>/dev/null") + .add(" done") + .add("else") + .add(" echo \"No Find Pid!\"") + .add("fi").over().sync().isResult(); + + ArrayList outPut = ShellInit.getShell().getOutPut(); + ArrayList error = ShellInit.getShell().getError(); + + if (getResult) { + if (!outPut.isEmpty() && outPut.get(0).equals("No Find Pid!")) { + return false; + } else { + result = true; } } else { - AndroidLogUtils.logE("doRestart: ", "packageName is null"); + AndroidLogUtils.logE("doRestart: ", "result: " + ShellInit.getShell().getResult() + " errorMsg: " + error + " package: " + packageGet); } - // result = ShellUtils.getResultBoolean("pkill -l 9 -f " + packageName, true); } - if (!result) { - new AlertDialog.Builder(context) - .setCancelable(false) - .setTitle(R.string.tip) - .setMessage(isRestartSystem ? R.string.reboot_failed : - pid ? R.string.kill_failed : R.string.pid_failed) - .setHapticFeedbackEnabled(true) - .setPositiveButton(android.R.string.ok, null) - .show(); + return result; + } + + private static void showAlertDialog(Context context, boolean isRestartSystem, boolean pid) { + new AlertDialog.Builder(context) + .setCancelable(false) + .setTitle(R.string.tip) + .setMessage(getErrorMessage(isRestartSystem, pid)) + .setHapticFeedbackEnabled(true) + .setPositiveButton(android.R.string.ok, null) + .show(); + } + + private static int getErrorMessage(boolean isRestartSystem, boolean pid) { + if (isRestartSystem) { + return R.string.reboot_failed; + } else { + return pid ? R.string.kill_failed : R.string.pid_failed; } } } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/OtherTool.java b/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/OtherTool.java index e7f9ae816..546065efe 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/OtherTool.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/base/tool/OtherTool.java @@ -39,13 +39,8 @@ import com.sevtinge.hyperceiler.R; import com.sevtinge.hyperceiler.utils.ContextUtils; import com.sevtinge.hyperceiler.utils.blur.MiBlurUtils; -import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt; - -import java.io.File; -import java.lang.ref.WeakReference; import de.robv.android.xposed.XposedHelpers; -import de.robv.android.xposed.callbacks.XC_LoadPackage; public class OtherTool { // 尝试全部 @@ -58,8 +53,6 @@ public class OtherTool { @SuppressLint("StaticFieldLeak") public static TextView mPct = null; - // public Context mModuleContext = null; - public static Resources getModuleRes(Context context) throws PackageManager.NameNotFoundException { return ResourcesTool.loadModuleRes(context); @@ -69,14 +62,9 @@ public static Context findContext(@ContextUtils.Duration int flag) { Context context = null; try { switch (flag) { - case FLAG_ALL -> { - if ((context = currentApplication()) == null) - context = getSystemContext(); - } + case FLAG_ALL -> context = currentApplication() != null ? currentApplication() : getSystemContext(); case FLAG_CURRENT_APP -> context = currentApplication(); case FlAG_ONLY_ANDROID -> context = getSystemContext(); - default -> { - } } return context; } catch (Throwable ignore) { @@ -125,32 +113,6 @@ public static void setProp(String key, String val) { } } - public static String getPackageVersionName(XC_LoadPackage.LoadPackageParam lpparam) { - try { - Class parserCls = XposedHelpers.findClass("android.content.pm.PackageParser", lpparam.classLoader); - Object parser = parserCls.getDeclaredConstructor().newInstance(); - File apkPath = new File(lpparam.appInfo.sourceDir); - Object pkg = XposedHelpers.callMethod(parser, "parsePackage", apkPath, 0); - return (String) XposedHelpers.getObjectField(pkg, "mVersionName"); - } catch (Throwable e) { - logE("getPackageVersionCode", e); - return ""; - } - } - - public static int getPackageVersionCode(XC_LoadPackage.LoadPackageParam lpparam) { - try { - Class parserCls = XposedHelpers.findClass("android.content.pm.PackageParser", lpparam.classLoader); - Object parser = parserCls.getDeclaredConstructor().newInstance(); - File apkPath = new File(lpparam.appInfo.sourceDir); - Object pkg = XposedHelpers.callMethod(parser, "parsePackage", apkPath, 0); - return XposedHelpers.getIntField(pkg, "mVersionCode"); - } catch (Throwable e) { - logE("getPackageVersionCode", e); - return -1; - } - } - public static void initPct(ViewGroup container, int source) { Resources res = container.getContext().getResources(); if (mPct == null) { diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/DebugMode.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/DebugMode.java index a5d8e41be..0d54d75ea 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/DebugMode.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/DebugMode.java @@ -18,7 +18,7 @@ */ package com.sevtinge.hyperceiler.module.hook.browser; -import static com.sevtinge.hyperceiler.module.base.tool.OtherTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; import com.sevtinge.hyperceiler.module.base.BaseHook; import com.sevtinge.hyperceiler.module.base.dexkit.DexKit; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/EnableDebugEnvironment.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/EnableDebugEnvironment.java index dddff8fc9..8b6f4aaf5 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/EnableDebugEnvironment.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/browser/EnableDebugEnvironment.java @@ -18,7 +18,7 @@ */ package com.sevtinge.hyperceiler.module.hook.browser; -import static com.sevtinge.hyperceiler.module.base.tool.OtherTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; import com.sevtinge.hyperceiler.module.base.BaseHook; import com.sevtinge.hyperceiler.module.base.dexkit.DexKit; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/getapps/BypassRiskCheck.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/getapps/BypassRiskCheck.java index efc3679b6..307cdb8a9 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/getapps/BypassRiskCheck.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/getapps/BypassRiskCheck.java @@ -19,7 +19,7 @@ package com.sevtinge.hyperceiler.module.hook.getapps; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; import static de.robv.android.xposed.XposedHelpers.getStaticObjectField; import static de.robv.android.xposed.XposedHelpers.setObjectField; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/HomeBaseHook.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/HomeBaseHook.kt index 9de4260c3..a1ef808d3 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/HomeBaseHook.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/HomeBaseHook.kt @@ -19,7 +19,7 @@ package com.sevtinge.hyperceiler.module.hook.home import com.sevtinge.hyperceiler.module.base.BaseHook -import com.sevtinge.hyperceiler.module.base.tool.OtherTool.* +import com.sevtinge.hyperceiler.module.base.tool.AppsTool.* import com.sevtinge.hyperceiler.utils.devicesdk.* abstract class HomeBaseHook : BaseHook() { diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/drawer/AllAppsContainerViewSuperBlur.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/drawer/AllAppsContainerViewSuperBlur.java index 2d268ea6a..fb05ff283 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/drawer/AllAppsContainerViewSuperBlur.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/home/drawer/AllAppsContainerViewSuperBlur.java @@ -29,7 +29,7 @@ import android.widget.ViewSwitcher; import com.sevtinge.hyperceiler.module.base.BaseHook; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.blur.MiBlurUtils; import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt; @@ -57,7 +57,7 @@ protected void after(MethodHookParam param) throws Throwable { 200)); MiBlurUtils.clearMiBackgroundBlendColor(view); int a; - if (Helpers.isDarkMode(view.getContext())) a = 100; + if (AppsTool.isDarkMode(view.getContext())) a = 100; else a = 140; MiBlurUtils.addMiBackgroundBlendColor(view, Color.argb(a, 0, 0, 0), 103); MiBlurUtils.setMiViewBlurMode(view, 1); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/app/AppDisable.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/app/AppDisable.java index 38ecac01c..6f5d61b91 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/app/AppDisable.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/app/AppDisable.java @@ -19,6 +19,8 @@ package com.sevtinge.hyperceiler.module.hook.securitycenter.app; import static com.sevtinge.hyperceiler.module.base.tool.OtherTool.getModuleRes; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.utils.devicesdk.MiDeviceAppUtilsKt.isPad; import android.annotation.SuppressLint; import android.app.Activity; @@ -36,7 +38,6 @@ import com.sevtinge.hyperceiler.module.base.BaseHook; import com.sevtinge.hyperceiler.module.base.dexkit.DexKit; import com.sevtinge.hyperceiler.module.base.dexkit.IDexKit; -import com.sevtinge.hyperceiler.utils.Helpers; import com.sevtinge.hyperceiler.utils.MiuiDialog; import org.luckypray.dexkit.DexKitBridge; @@ -60,7 +61,7 @@ public class AppDisable extends BaseHook { @Override public void init() { - boolean isNewSecurityCenter = Helpers.getPackageVersionCode(lpparam) >= 40001000; + boolean isNewSecurityCenter = (getPackageVersionCode(lpparam) >= 40001000 && !isPad()) || (getPackageVersionCode(lpparam) >= 40011000 && isPad()); String clazzName = !isNewSecurityCenter ? "com.miui.appmanager.ApplicationsDetailsActivity" : "com.miui.appmanager.fragment.ApplicationsDetailsFragment"; findAndHookMethod("com.miui.appmanager.ApplicationsDetailsActivity", "onCreateOptionsMenu", Menu.class, new MethodHook() { diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/AddSideBarExpandReceiver.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/AddSideBarExpandReceiver.java index 11c7c7680..ecd4e9970 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/AddSideBarExpandReceiver.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/AddSideBarExpandReceiver.java @@ -18,7 +18,7 @@ */ package com.sevtinge.hyperceiler.module.hook.securitycenter.sidebar; -import static com.sevtinge.hyperceiler.module.base.tool.OtherTool.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; import static com.sevtinge.hyperceiler.utils.devicesdk.MiDeviceAppUtilsKt.isPad; import android.content.BroadcastReceiver; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/BlurSecurity.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/BlurSecurity.kt index 2ef2140da..76c63a09a 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/BlurSecurity.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/securitycenter/sidebar/BlurSecurity.kt @@ -28,6 +28,7 @@ import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createAfterHook import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook import com.sevtinge.hyperceiler.module.base.* import com.sevtinge.hyperceiler.module.base.dexkit.* +import com.sevtinge.hyperceiler.module.base.tool.AppsTool.* import com.sevtinge.hyperceiler.utils.* import com.sevtinge.hyperceiler.utils.blur.BlurUtils.* import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt.addMiBackgroundBlendColor @@ -53,7 +54,7 @@ object BlurSecurity : BaseHook() { } private val shouldInvertColor = !ColorUtils.isDarkColor(backgroundColor) - private var appVersionCode = 40000727 + private val appVersionCode = getPackageVersionCode(lpparam) // 反色 同时保持红蓝色变化不大 private val invertColorRenderEffect = RenderEffect.createColorFilterEffect( diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemframework/CleanOpenMenu.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemframework/CleanOpenMenu.java index a0b312e17..35d23936f 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemframework/CleanOpenMenu.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemframework/CleanOpenMenu.java @@ -31,7 +31,7 @@ import android.view.View; import com.sevtinge.hyperceiler.module.base.BaseHook; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.prefs.PrefType; import com.sevtinge.hyperceiler.utils.prefs.PrefsChangeObserver; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; @@ -142,11 +142,11 @@ private static Pair isRemoveApp(boolean dynamic, Context conte int mimeFlags0; int mimeFlags999; if (dynamic) { - mimeFlags0 = PrefsUtils.getSharedIntPrefs(context, "pref_key_" + key + "_" + pkgName + "|0", Helpers.MimeType.ALL); - mimeFlags999 = PrefsUtils.getSharedIntPrefs(context, "pref_key_" + key + "_" + pkgName + "|999", Helpers.MimeType.ALL); + mimeFlags0 = PrefsUtils.getSharedIntPrefs(context, "pref_key_" + key + "_" + pkgName + "|0", AppsTool.MimeType.ALL); + mimeFlags999 = PrefsUtils.getSharedIntPrefs(context, "pref_key_" + key + "_" + pkgName + "|999", AppsTool.MimeType.ALL); } else { - mimeFlags0 = mPrefsMap.getInt(key + "_" + pkgName + "|0", Helpers.MimeType.ALL); - mimeFlags999 = mPrefsMap.getInt(key + "_" + pkgName + "|999", Helpers.MimeType.ALL); + mimeFlags0 = mPrefsMap.getInt(key + "_" + pkgName + "|0", AppsTool.MimeType.ALL); + mimeFlags999 = mPrefsMap.getInt(key + "_" + pkgName + "|999", AppsTool.MimeType.ALL); } boolean removeOriginal = (selectedApps.contains(pkgName) || selectedApps.contains(pkgName + "|0")) && hideMimeType(mimeFlags0, mimeType); boolean removeDual = selectedApps.contains(pkgName + "|999") && hideMimeType(mimeFlags999, mimeType); @@ -166,17 +166,17 @@ private static String getContentType(Context context, Intent intent) { } private static boolean hideMimeType(int mimeFlags, String mimeType) { - int dataType = Helpers.MimeType.OTHERS; + int dataType = AppsTool.MimeType.OTHERS; if (mimeType != null) - if (mimeType.startsWith("image/")) dataType = Helpers.MimeType.IMAGE; - else if (mimeType.startsWith("audio/")) dataType = Helpers.MimeType.AUDIO; - else if (mimeType.startsWith("video/")) dataType = Helpers.MimeType.VIDEO; + if (mimeType.startsWith("image/")) dataType = AppsTool.MimeType.IMAGE; + else if (mimeType.startsWith("audio/")) dataType = AppsTool.MimeType.AUDIO; + else if (mimeType.startsWith("video/")) dataType = AppsTool.MimeType.VIDEO; else if (mimeType.startsWith("text/") || mimeType.startsWith("application/pdf") || mimeType.startsWith("application/msword") || mimeType.startsWith("application/vnd.ms-") || mimeType.startsWith("application/vnd.openxmlformats-")) - dataType = Helpers.MimeType.DOCUMENT; + dataType = AppsTool.MimeType.DOCUMENT; else if (mimeType.startsWith("application/vnd.android.package-archive") || mimeType.startsWith("application/zip") || mimeType.startsWith("application/x-zip") || @@ -190,8 +190,8 @@ else if (mimeType.startsWith("application/vnd.android.package-archive") || mimeType.startsWith("application/x-compress") || mimeType.startsWith("application/x-7z") || mimeType.startsWith("application/java-archive")) - dataType = Helpers.MimeType.ARCHIVE; - else if (mimeType.startsWith("link/")) dataType = Helpers.MimeType.LINK; + dataType = AppsTool.MimeType.ARCHIVE; + else if (mimeType.startsWith("link/")) dataType = AppsTool.MimeType.LINK; return (mimeFlags & dataType) == dataType; } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/controlcenter/NotificationRowMenu.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/controlcenter/NotificationRowMenu.java index 997f09b32..8f6d2c245 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/controlcenter/NotificationRowMenu.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/controlcenter/NotificationRowMenu.java @@ -31,7 +31,7 @@ import com.sevtinge.hyperceiler.R; import com.sevtinge.hyperceiler.module.base.BaseHook; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -97,7 +97,7 @@ protected void after(final MethodHookParam param) { } if (view == mInfoBtn) { - Helpers.openAppInfo(mContext, pkgName, user); + AppsTool.openAppInfo(mContext, pkgName, user); mContext.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } else if (view == mForceCloseBtn) { ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/various/clipboard/ClipboardList.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/various/clipboard/ClipboardList.java index 8c87179e5..1054939aa 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/various/clipboard/ClipboardList.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/various/clipboard/ClipboardList.java @@ -19,7 +19,7 @@ package com.sevtinge.hyperceiler.module.hook.various.clipboard; import static com.hchen.hooktool.tool.CoreTool.getStaticField; -import static com.sevtinge.hyperceiler.utils.Helpers.getPackageVersionCode; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.getPackageVersionCode; import android.annotation.SuppressLint; import android.content.ClipData; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/provider/SharedPrefsProvider.java b/app/src/main/java/com/sevtinge/hyperceiler/provider/SharedPrefsProvider.java index fcdaff557..9b9e1788c 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/provider/SharedPrefsProvider.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/provider/SharedPrefsProvider.java @@ -32,7 +32,7 @@ import androidx.annotation.NonNull; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; import java.io.File; @@ -121,7 +121,7 @@ public AssetFileDescriptor openAssetFile(@NonNull Uri uri, @NonNull String mode) } return afd; } else if (uriMatcher.match(uri) == 6) { - Context context = Helpers.getProtectedContext(getContext()); + Context context = AppsTool.getProtectedContext(getContext()); File file = new File(context.getFilesDir() + "/shortcuts/" + parts.get(1) + "_shortcut.png"); if (!file.exists()) return null; return new AssetFileDescriptor(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY), 0, AssetFileDescriptor.UNKNOWN_LENGTH); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/HyperCeilerTabActivity.java b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/HyperCeilerTabActivity.java index 383cc67d7..614b99181 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/HyperCeilerTabActivity.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/HyperCeilerTabActivity.java @@ -2,7 +2,7 @@ import static com.sevtinge.hyperceiler.utils.PersistConfig.isLunarNewYearThemeView; import static com.sevtinge.hyperceiler.utils.PersistConfig.isNeedGrayView; -import static com.sevtinge.hyperceiler.utils.Helpers.isModuleActive; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.isModuleActive; import static com.sevtinge.hyperceiler.utils.devicesdk.MiDeviceAppUtilsKt.isPad; import static com.sevtinge.hyperceiler.utils.devicesdk.SystemSDKKt.isMoreHyperOSVersion; import static com.sevtinge.hyperceiler.utils.log.LogManager.IS_LOGGER_ALIVE; @@ -37,20 +37,16 @@ import com.sevtinge.hyperceiler.ui.fragment.main.DetailFragment; import com.sevtinge.hyperceiler.utils.BackupUtils; import com.sevtinge.hyperceiler.utils.DialogHelper; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.LanguageHelper; import com.sevtinge.hyperceiler.utils.PermissionUtils; import com.sevtinge.hyperceiler.utils.PropUtils; import com.sevtinge.hyperceiler.utils.ThreadPoolManager; import com.sevtinge.hyperceiler.utils.api.ProjectApi; -import com.sevtinge.hyperceiler.utils.log.AndroidLogUtils; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; import com.sevtinge.hyperceiler.utils.search.SearchHelper; import com.sevtinge.hyperceiler.utils.shell.ShellInit; -import com.xhinliang.lunarcalendar.Lunar; -import com.xhinliang.lunarcalendar.LunarCalendar; -import java.time.LocalDate; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -101,7 +97,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); new Thread(() -> SearchHelper.getAllMods(context, savedInstanceState != null)).start(); - Helpers.checkXposedActivateState(this); + AppsTool.checkXposedActivateState(this); if (!IS_LOGGER_ALIVE && isModuleActive && BuildConfig.BUILD_TYPE != "release" && !mPrefs.getBoolean("prefs_key_development_close_log_alert_dialog", false)) { handler.post(() -> DialogHelper.showLogServiceWarnDialog(context)); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/BaseActivity.java b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/BaseActivity.java index d1d40b5f2..6c28df369 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/BaseActivity.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/BaseActivity.java @@ -28,7 +28,7 @@ import androidx.annotation.Nullable; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; import fan.appcompat.app.AppCompatActivity; @@ -54,7 +54,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) { private void registerObserver() { PrefsUtils.registerOnSharedPreferenceChangeListener(getApplicationContext()); - Helpers.fixPermissionsAsync(getApplicationContext()); - Helpers.registerFileObserver(getApplicationContext()); + AppsTool.fixPermissionsAsync(getApplicationContext()); + AppsTool.registerFileObserver(getApplicationContext()); } } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/NaviBaseActivity.java b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/NaviBaseActivity.java index d43599d7a..22874d038 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/NaviBaseActivity.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/NaviBaseActivity.java @@ -2,15 +2,12 @@ import android.os.Bundle; import android.util.Log; -import android.view.View; -import android.widget.ImageView; -import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import com.sevtinge.hyperceiler.R; import com.sevtinge.hyperceiler.ui.fragment.main.ContentFragment; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; import fan.appcompat.app.Fragment; @@ -42,8 +39,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { private void registerObserver() { PrefsUtils.registerOnSharedPreferenceChangeListener(getApplicationContext()); - Helpers.fixPermissionsAsync(getApplicationContext()); - Helpers.registerFileObserver(getApplicationContext()); + AppsTool.fixPermissionsAsync(getApplicationContext()); + AppsTool.registerFileObserver(getApplicationContext()); } @Override diff --git a/app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/settings/development/DevelopmentDebugInfoFragment.java b/app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/settings/development/DevelopmentDebugInfoFragment.java index 3bd8c28fd..41db38093 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/settings/development/DevelopmentDebugInfoFragment.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/settings/development/DevelopmentDebugInfoFragment.java @@ -20,7 +20,7 @@ import com.sevtinge.hyperceiler.expansion.utils.SignUtils; -import static com.sevtinge.hyperceiler.utils.Helpers.isModuleActive; +import static com.sevtinge.hyperceiler.module.base.tool.AppsTool.isModuleActive; import static com.sevtinge.hyperceiler.utils.devicesdk.DeviceSDKKt.getBoard; import static com.sevtinge.hyperceiler.utils.devicesdk.DeviceSDKKt.getBrand; import static com.sevtinge.hyperceiler.utils.devicesdk.DeviceSDKKt.getCharacteristics; diff --git a/app/src/main/java/com/sevtinge/hyperceiler/utils/DialogHelper.java b/app/src/main/java/com/sevtinge/hyperceiler/utils/DialogHelper.java index 8d1d28a30..74b78cf2a 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/utils/DialogHelper.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/utils/DialogHelper.java @@ -26,6 +26,7 @@ import android.view.View; import com.sevtinge.hyperceiler.R; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.log.AndroidLogUtils; import com.sevtinge.hyperceiler.utils.prefs.PrefsUtils; import com.sevtinge.hyperceiler.utils.shell.ShellExec; @@ -193,7 +194,7 @@ public static void showRestartDialog(Context context, boolean isRestartSystem, S .setMessage(isRestartSystem ? isSystem : isOther) .setHapticFeedbackEnabled(true) .setPositiveButton(android.R.string.ok, (dialog, which) -> - Helpers.doRestart(context, packageName, isRestartSystem) + AppsTool.doRestart(context, packageName, isRestartSystem) ) .setNegativeButton(android.R.string.cancel, null) .show(); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/utils/prefs/PrefsUtils.java b/app/src/main/java/com/sevtinge/hyperceiler/utils/prefs/PrefsUtils.java index e6a9578b7..c57c93bd1 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/utils/prefs/PrefsUtils.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/utils/prefs/PrefsUtils.java @@ -26,7 +26,7 @@ import android.util.Log; import com.sevtinge.hyperceiler.provider.SharedPrefsProvider; -import com.sevtinge.hyperceiler.utils.Helpers; +import com.sevtinge.hyperceiler.module.base.tool.AppsTool; import com.sevtinge.hyperceiler.utils.api.ProjectApi; import com.sevtinge.hyperceiler.utils.log.XposedLogUtils; import com.sevtinge.hyperceiler.utils.prefs.PrefsChangeObserver.PrefToUri; @@ -49,7 +49,7 @@ public class PrefsUtils { public static String mPrefsFile = mPrefsPath + "/" + mPrefsName + ".xml"; public static SharedPreferences getSharedPrefs(Context context, boolean multiProcess) { - context = Helpers.getProtectedContext(context); + context = AppsTool.getProtectedContext(context); try { return context.getSharedPreferences(mPrefsName, multiProcess ? Context.MODE_MULTI_PROCESS | Context.MODE_WORLD_READABLE : Context.MODE_WORLD_READABLE); } catch (Throwable t) { @@ -190,7 +190,7 @@ public static boolean getSharedBoolPrefs(Context context, String name, boolean d public static void registerOnSharedPreferenceChangeListener(Context context) { mSharedPreferences.registerOnSharedPreferenceChangeListener((sharedPreferences, key) -> { Log.i("prefs", "Changed: " + key); - Helpers.requestBackup(context); + AppsTool.requestBackup(context); Object val = sharedPreferences.getAll().get(key); String path = ""; if (val instanceof String) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ab3c9ad6f..70952d65a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,9 +20,9 @@ gson = "2.11.0" dexkit = "2.0.3" ezxhelper = "2.2.0" hiddenapibypass = "4.3" -hooktool = "v.1.1.4" +hooktool = "v.1.1.6.2" lyricGetterApi = "6.0.0" -mmkv = "2.0.1" +mmkv = "2.0.2" [libraries] annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }