diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/MainHook.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/MainHook.kt index 2bbaeeaa..60d5c698 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/MainHook.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/MainHook.kt @@ -35,6 +35,10 @@ class MainHook : IXposedHookLoadPackage { "com.miui.securitycenter"->{ SecurityCenter().handleLoadPackage(lpparam) } + //相册编辑 + "com.miui.mediaeditor"->{ + MediaEditor().handleLoadPackage(lpparam) + } } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt new file mode 100644 index 00000000..a8e914f6 --- /dev/null +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt @@ -0,0 +1,54 @@ +package com.lt2333.simplicitytools.hook.app + +import com.lt2333.simplicitytools.BuildConfig +import de.robv.android.xposed.* +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam + +class MediaEditor : IXposedHookLoadPackage { + + var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config") + + override fun handleLoadPackage(lpparam: LoadPackageParam) { + + XposedBridge.log("成功Hook: "+javaClass.simpleName) + + //解锁图库裁切最小值 + val classIfExists = XposedHelpers.findClassIfExists( + "com.miui.gallery.editor.photo.core.imports.obsoletes.Crop\$ResizeDetector", + lpparam.classLoader + ) + XposedHelpers.findAndHookMethod( + classIfExists, + "calculateMinSize", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (prefs.hasFileChanged()) { + prefs.reload() + } + if (prefs.getBoolean("unlock_unlimited_cropping", false)) { + param.result = 0 + } + } + }) + //截图无限裁切 + val classIfExists2 = XposedHelpers.findClassIfExists( + "com.miui.gallery.editor.photo.screen.crop.ScreenCropView\$ResizeDetector", + lpparam.classLoader + ) + + XposedHelpers.findAndHookMethod( + classIfExists2, + "calculateMinSize", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (prefs.hasFileChanged()) { + prefs.reload() + } + if (prefs.getBoolean("unlock_unlimited_cropping", false)) { + param.result = 0 + } + } + }) + + } +} \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 8b66b9f4..85334e92 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -6,5 +6,6 @@ com.android.systemui com.miui.powerkeeper com.miui.home + com.miui.mediaeditor \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a3f8174e..fd88bb24 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -52,5 +52,6 @@ 菜单 提示 跳过 5/10 秒警告时间 + 解锁无限裁切图片/截图 \ No newline at end of file