mirror of
https://github.com/LSPosed/DisableFlagSecure.git
synced 2025-05-05 02:09:43 +08:00
hook native methods instead
This commit is contained in:
parent
ad92151c28
commit
622283dd14
@ -205,7 +205,6 @@ public class DisableFlagSecure extends XposedModule {
|
|||||||
hook(isSecureLockedMethod, SecureLockedHooker.class);
|
hook(isSecureLockedMethod, SecureLockedHooker.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Class<?> captureArgsClazz;
|
|
||||||
private static Field captureSecureLayersField;
|
private static Field captureSecureLayersField;
|
||||||
private static Field allowProtectedField;
|
private static Field allowProtectedField;
|
||||||
|
|
||||||
@ -214,15 +213,15 @@ public class DisableFlagSecure extends XposedModule {
|
|||||||
var screenCaptureClazz = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ?
|
var screenCaptureClazz = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ?
|
||||||
classLoader.loadClass("android.window.ScreenCapture") :
|
classLoader.loadClass("android.window.ScreenCapture") :
|
||||||
SurfaceControl.class;
|
SurfaceControl.class;
|
||||||
captureArgsClazz = classLoader.loadClass(Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ?
|
var captureArgsClazz = classLoader.loadClass(Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ?
|
||||||
"android.window.ScreenCapture$CaptureArgs" :
|
"android.window.ScreenCapture$CaptureArgs" :
|
||||||
"android.view.SurfaceControl$CaptureArgs");
|
"android.view.SurfaceControl$CaptureArgs");
|
||||||
captureSecureLayersField = captureArgsClazz.getDeclaredField("mCaptureSecureLayers");
|
captureSecureLayersField = captureArgsClazz.getDeclaredField("mCaptureSecureLayers");
|
||||||
captureSecureLayersField.setAccessible(true);
|
captureSecureLayersField.setAccessible(true);
|
||||||
allowProtectedField = captureArgsClazz.getDeclaredField("mAllowProtected");
|
allowProtectedField = captureArgsClazz.getDeclaredField("mAllowProtected");
|
||||||
allowProtectedField.setAccessible(true);
|
allowProtectedField.setAccessible(true);
|
||||||
hookMethods(screenCaptureClazz, ScreenCaptureHooker.class, "captureDisplay");
|
hookMethods(screenCaptureClazz, ScreenCaptureHooker.class, "nativeCaptureDisplay");
|
||||||
hookMethods(screenCaptureClazz, ScreenCaptureHooker.class, "captureLayers");
|
hookMethods(screenCaptureClazz, ScreenCaptureHooker.class, "nativeCaptureLayers");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TargetApi(Build.VERSION_CODES.S)
|
@TargetApi(Build.VERSION_CODES.S)
|
||||||
@ -327,9 +326,6 @@ public class DisableFlagSecure extends XposedModule {
|
|||||||
@BeforeInvocation
|
@BeforeInvocation
|
||||||
public static void before(@NonNull BeforeHookCallback callback) {
|
public static void before(@NonNull BeforeHookCallback callback) {
|
||||||
var captureArgs = callback.getArgs()[0];
|
var captureArgs = callback.getArgs()[0];
|
||||||
if (!captureArgsClazz.isInstance(captureArgs)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
captureSecureLayersField.set(captureArgs, true);
|
captureSecureLayersField.set(captureArgs, true);
|
||||||
allowProtectedField.set(captureArgs, true);
|
allowProtectedField.set(captureArgs, true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user