11package de.binarynoise.AlwaysAllowMultiInstanceSplit
22
33import android.content.pm.ActivityInfo
4+ import android.os.Build
45import de.binarynoise.logger.Logger.log
56import de.robv.android.xposed.IXposedHookLoadPackage
67import de.robv.android.xposed.XC_MethodReplacement
@@ -17,11 +18,20 @@ class Hook : IXposedHookLoadPackage {
1718 when (lpparam.packageName) {
1819 " com.android.systemui" -> {
1920 try {
20- val cls = Class .forName(" com.android.wm.shell.common.MultiInstanceHelper" , false , lpparam.classLoader)
21- XposedBridge .hookAllMethods(cls, " supportsMultiInstanceSplit" , XC_MethodReplacement .returnConstant(true ))
22- log(" Hooked com.android.wm.shell.common.MultiInstanceHelper::supportsMultiInstanceSplit" )
21+ val method = if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .UPSIDE_DOWN_CAKE ) XposedHelpers .findMethodExact(
22+ Class .forName(" com.android.wm.shell.common.MultiInstanceHelper" , false , lpparam.classLoader),
23+ " supportsMultiInstanceSplit" ,
24+ String ::class .java
25+ )
26+ else XposedHelpers .findMethodExact(
27+ Class .forName(" com.android.wm.shell.splitscreen.SplitScreenController" , false , lpparam.classLoader),
28+ " supportMultiInstancesSplit" ,
29+ String ::class .java
30+ )
31+ XposedBridge .hookMethod(method, XC_MethodReplacement .returnConstant(true ))
32+ log(" Hooked ${method.declaringClass.name} ::${method.name} " )
2333 } catch (e: Throwable ) {
24- log(" Failed to hook com.android.wm.shell.common.MultiInstanceHelper:: supportsMultiInstanceSplit" , e)
34+ log(" Failed to hook supportsMultiInstanceSplit" , e)
2535 }
2636 }
2737 " android" -> {
0 commit comments