support oneui

This commit is contained in:
tehcneko 2024-05-28 19:13:51 +08:00
parent 34f0dd41c4
commit e11555632a

View File

@ -96,6 +96,24 @@ public class DisableFlagSecure extends XposedModule {
} }
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// OneUI
try {
hookScreenshotHardwareBuffer(classLoader);
} catch (Throwable t) {
if (!(t instanceof ClassNotFoundException)) {
log("hook ScreenshotHardwareBuffer failed", t);
}
}
try {
hookOneUI(classLoader);
} catch (Throwable t) {
if (!(t instanceof ClassNotFoundException)) {
log("hook OneUI failed", t);
}
}
}
// secureLocked flag (S-) // secureLocked flag (S-)
try { try {
// Screenshot // Screenshot
@ -281,6 +299,12 @@ public class DisableFlagSecure extends XposedModule {
hookMethods(screenshotContextClazz, ReturnNullHooker.class, "setScreenshotReject", "setLongshotReject"); hookMethods(screenshotContextClazz, ReturnNullHooker.class, "setScreenshotReject", "setLongshotReject");
} }
@TargetApi(Build.VERSION_CODES.S)
private void hookOneUI(ClassLoader classLoader) throws ClassNotFoundException {
var wmScreenshotControllerClazz = classLoader.loadClass("com.android.server.wm.WmScreenshotController");
hookMethods(wmScreenshotControllerClazz, ReturnTrueHooker.class, "canBeScreenshotTarget");
}
private void hookMethods(Class<?> clazz, Class<? extends Hooker> hooker, String... names) { private void hookMethods(Class<?> clazz, Class<? extends Hooker> hooker, String... names) {
var list = Arrays.asList(names); var list = Arrays.asList(names);
Arrays.stream(clazz.getDeclaredMethods()) Arrays.stream(clazz.getDeclaredMethods())
@ -375,6 +399,14 @@ public class DisableFlagSecure extends XposedModule {
} }
} }
@XposedHooker
private static class ReturnTrueHooker implements Hooker {
@BeforeInvocation
public static void before(@NonNull BeforeHookCallback callback) {
callback.returnAndSkip(true);
}
}
@XposedHooker @XposedHooker
private static class ReturnFalseHooker implements Hooker { private static class ReturnFalseHooker implements Hooker {
@BeforeInvocation @BeforeInvocation