Skip to content

Commit 87750ff

Browse files
programminghoch10binarynoise
authored andcommitted
backport AlwaysAllowMultiInstanceSplit to sdk 33
1 parent 514dc85 commit 87750ff

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

AlwaysAllowMultiInstanceSplit/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ android {
77
namespace = "de.binarynoise.AlwaysAllowMultiInstanceSplit"
88

99
defaultConfig {
10-
minSdk = 35
10+
minSdk = 33
1111
targetSdk = 35
1212
}
1313
}

AlwaysAllowMultiInstanceSplit/src/main/java/de/binarynoise/AlwaysAllowMultiInstanceSplit/Hook.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.binarynoise.AlwaysAllowMultiInstanceSplit
22

33
import android.content.pm.ActivityInfo
4+
import android.os.Build
45
import de.binarynoise.logger.Logger.log
56
import de.robv.android.xposed.IXposedHookLoadPackage
67
import 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

Comments
 (0)