修复部分部分应用无法强制进入小窗

This commit is contained in:
乌堆小透明
2022-03-02 22:53:07 +08:00
parent 83b3262b08
commit 3f38660950
4 changed files with 43 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@ package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.android.DeleteOnPostNotification import com.lt2333.simplicitytools.hook.app.android.DeleteOnPostNotification
import com.lt2333.simplicitytools.hook.app.android.DisableFlagSecure import com.lt2333.simplicitytools.hook.app.android.DisableFlagSecure
import com.lt2333.simplicitytools.hook.app.android.RemoveSmallWindowRestrictions2
import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatch import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatch
import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.XposedBridge
@@ -16,5 +17,7 @@ class Android : IXposedHookLoadPackage {
DisableFlagSecure().handleLoadPackage(lpparam) DisableFlagSecure().handleLoadPackage(lpparam)
//上层显示 //上层显示
DeleteOnPostNotification().handleLoadPackage(lpparam) DeleteOnPostNotification().handleLoadPackage(lpparam)
//解除小窗限制
RemoveSmallWindowRestrictions2().handleLoadPackage(lpparam)
} }
} }

View File

@@ -0,0 +1,37 @@
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
}
}
})
}
}

View File

@@ -84,11 +84,12 @@
<string name="failed_after_restart">系统重启后仍会还原</string> <string name="failed_after_restart">系统重启后仍会还原</string>
<string name="battery_optimization">电池优化</string> <string name="battery_optimization">电池优化</string>
<string name="battery_optimization_summary">快速打开被MIUI隐藏的电池优化功能</string> <string name="battery_optimization_summary">快速打开被MIUI隐藏的电池优化功能</string>
<string name="remove_small_window_restrictions">解除不支持小窗应用限制</string> <string name="remove_small_window_restrictions">强制允许APP使用小窗</string>
<string name="app_coolapk_url">来酷安给我们五星好评</string> <string name="app_coolapk_url">来酷安给我们五星好评</string>
<string name="app_coolapk_url_summary">这可以使我们被更多的人发现</string> <string name="app_coolapk_url_summary">这可以使我们被更多的人发现</string>
<string name="qq_channel">加入 官方QQ频道</string> <string name="qq_channel">加入 官方QQ频道</string>
<string name="tg_channel">加入 官方TG频道</string> <string name="tg_channel">加入 官方TG频道</string>
<string name="tg_channel_summary">可在频道资料页进入交流群</string> <string name="tg_channel_summary">可在频道资料页进入交流群</string>
<string name="discussions">讨论</string> <string name="discussions">讨论</string>
<string name="remove_small_window_restrictions_summary">部分应用可能不支持手势进入小窗\n仅支持在后台任务界面长按进入</string>
</resources> </resources>