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