From 4803c730da5e829f32e7f790a3ef531fe794dea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=8C=E5=A0=86=E5=B0=8F=E9=80=8F=E6=98=8E?= Date: Fri, 4 Mar 2022 17:58:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=B0=8F=E7=AA=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simplicitytools/hook/app/Android.kt | 4 +- .../simplicitytools/hook/app/MiuiHome.kt | 3 - .../android/RemoveSmallWindowRestrictions.kt | 76 +++++++++++++++++++ .../android/RemoveSmallWindowRestrictions2.kt | 37 --------- .../miuihome/RemoveSmallWindowRestrictions.kt | 38 ---------- 5 files changed, 78 insertions(+), 80 deletions(-) create mode 100644 app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt delete mode 100644 app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions2.kt delete mode 100644 app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/RemoveSmallWindowRestrictions.kt diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt index f03ef339..804c020e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt @@ -2,7 +2,7 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.android.DeleteOnPostNotification import com.lt2333.simplicitytools.hook.app.android.DisableFlagSecure -import com.lt2333.simplicitytools.hook.app.android.RemoveSmallWindowRestrictions2 +import com.lt2333.simplicitytools.hook.app.android.RemoveSmallWindowRestrictions import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatch import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.XposedBridge @@ -18,6 +18,6 @@ class Android : IXposedHookLoadPackage { //上层显示 DeleteOnPostNotification().handleLoadPackage(lpparam) //解除小窗限制 - RemoveSmallWindowRestrictions2().handleLoadPackage(lpparam) + RemoveSmallWindowRestrictions().handleLoadPackage(lpparam) } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt index 77c5baa3..768ec23d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt @@ -1,7 +1,6 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.miuihome.AlwaysDisplayTime -import com.lt2333.simplicitytools.hook.app.miuihome.RemoveSmallWindowRestrictions import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam @@ -11,7 +10,5 @@ class MiuiHome : IXposedHookLoadPackage { XposedBridge.log("成功Hook: " + javaClass.simpleName) //时钟显示时钟 AlwaysDisplayTime().handleLoadPackage(lpparam) - //解除小窗限制 - RemoveSmallWindowRestrictions().handleLoadPackage(lpparam) } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt new file mode 100644 index 00000000..be788ad3 --- /dev/null +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt @@ -0,0 +1,76 @@ +package com.lt2333.simplicitytools.hook.app.android + +import android.content.Context +import com.lt2333.simplicitytools.util.XSPUtils +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class RemoveSmallWindowRestrictions : IXposedHookLoadPackage { + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + + // 强制所有活动设为可以调整大小 + val classIfExists = XposedHelpers.findClassIfExists( + "com.android.server.wm.Task", + lpparam.classLoader + ) + XposedHelpers.findAndHookMethod( + classIfExists, + "isResizeable", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { + param.result = true + } + } + }) + + + + val classIfExists2 = XposedHelpers.findClassIfExists( + "android.util.MiuiMultiWindowAdapter", + lpparam.classLoader + ) + XposedHelpers.findAndHookMethod( + classIfExists2, + "getFreeformBlackList", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { + val blackList = param.result as MutableList + blackList.clear() + param.result = blackList + } + } + }) + XposedHelpers.findAndHookMethod( + classIfExists2, + "getFreeformBlackListFromCloud", + Context::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { + val blackList = param.result as MutableList + blackList.clear() + param.result = blackList + } + } + }) + val classIfExists3 = XposedHelpers.findClassIfExists( + "android.util.MiuiMultiWindowUtils", + lpparam.classLoader + ) + + XposedHelpers.findAndHookMethod( + classIfExists3, + "supportFreeform", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { + param.result = true + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions2.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions2.kt deleted file mode 100644 index e5ef3cd6..00000000 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions2.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.lt2333.simplicitytools.hook.app.android - -import com.lt2333.simplicitytools.util.XSPUtils -import de.robv.android.xposed.IXposedHookLoadPackage -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers -import de.robv.android.xposed.callbacks.XC_LoadPackage - -class RemoveSmallWindowRestrictions2 : IXposedHookLoadPackage { - override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - val classIfExists = XposedHelpers.findClassIfExists( - "com.android.server.wm.Task", - lpparam.classLoader - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "isResizeable", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { - param.result = true - } - } - }) - XposedHelpers.findAndHookMethod( - classIfExists, - "supportsMultiWindowInDisplayAreaForFreeForm", - "com.android.server.wm.TaskDisplayArea", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { - param.result = true - } - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/RemoveSmallWindowRestrictions.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/RemoveSmallWindowRestrictions.kt deleted file mode 100644 index 198591b3..00000000 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/RemoveSmallWindowRestrictions.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.lt2333.simplicitytools.hook.app.miuihome - -import android.content.Context -import com.lt2333.simplicitytools.util.XSPUtils -import de.robv.android.xposed.IXposedHookLoadPackage -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers -import de.robv.android.xposed.callbacks.XC_LoadPackage - -class RemoveSmallWindowRestrictions : IXposedHookLoadPackage { - override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - val classIfExists = XposedHelpers.findClassIfExists( - "com.miui.home.launcher.RecentsAndFSGestureUtils", - lpparam.classLoader - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "isPkgSupportSmallWindow", Context::class.java, String::class.java, - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { - param.result = true - } - } - }) - XposedHelpers.findAndHookMethod( - classIfExists, - "isTaskSupportSmallWindow", Context::class.java, Int::class.java, - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("remove_small_window_restrictions", false)) { - param.result = true - } - } - }) - - } -} \ No newline at end of file