From 340539dadc6b95bd0d6186add8248b5a4f458492 Mon Sep 17 00:00:00 2001 From: chengjiansu Date: Thu, 18 Sep 2025 17:10:22 +0800 Subject: [PATCH] =?UTF-8?q?Check=20if=20thiz=20is=20an=20instance=20object?= =?UTF-8?q?=20of=20clazz=EF=BC=8Csimilar=20to=20HiddenApiBypass.invoke?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/src/main/java/org/lsposed/hiddenapibypass/LSPass.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/src/main/java/org/lsposed/hiddenapibypass/LSPass.java b/library/src/main/java/org/lsposed/hiddenapibypass/LSPass.java index 383dd8d..a86e357 100644 --- a/library/src/main/java/org/lsposed/hiddenapibypass/LSPass.java +++ b/library/src/main/java/org/lsposed/hiddenapibypass/LSPass.java @@ -175,6 +175,9 @@ public static Object newInstance(@NonNull Class clazz, Object... initargs) th * @see Method#invoke(Object, Object...) */ public static Object invoke(@NonNull Class clazz, @Nullable Object thiz, @NonNull String methodName, Object... args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + if (thiz != null && !clazz.isInstance(thiz)) { + throw new IllegalArgumentException("this object is not an instance of the given class"); + } var methods = getDeclaredMethods(clazz); for (var method : methods) { if (!method.getName().equals(methodName)) continue;