support new oplus methods

This commit is contained in:
tehcneko 2024-05-27 17:07:38 +08:00
parent c0f48f54ba
commit ee0bfdf9b6

View File

@ -76,6 +76,13 @@ public class DisableFlagSecure extends XposedModule {
} catch (Throwable t) {
log("hook OPlus failed", t);
}
try {
hookOplusNew(classLoader);
} catch (Throwable t) {
if (!(t instanceof ClassNotFoundException)) {
log("hook OPlus failed", t);
}
}
break;
default:
try {
@ -151,11 +158,16 @@ public class DisableFlagSecure extends XposedModule {
hook(method, ReturnFalseHooker.class);
}
private void hookOplus(ClassLoader classLoader) throws ClassNotFoundException, NoSuchMethodException {
private void hookOplus(ClassLoader classLoader) throws ClassNotFoundException {
var screenshotContextClazz = classLoader.loadClass("com.oplus.screenshot.screenshot.core.ScreenshotContext");
hookMethods(screenshotContextClazz, ReturnNullHooker.class, "setScreenshotReject", "setLongshotReject");
}
private void hookOplusNew(ClassLoader classLoader) throws ClassNotFoundException {
var screenshotContextClazz = classLoader.loadClass("com.oplus.screenshot.screenshot.core.ScreenshotContentContext");
hookMethods(screenshotContextClazz, ReturnNullHooker.class, "setScreenshotReject", "setLongshotReject");
}
private void hookMethods(Class<?> clazz, Class<? extends Hooker> hooker, String... names) {
var list = Arrays.asList(names);
Arrays.stream(clazz.getDeclaredMethods())