From f703550af952601f2e2adcaaddfd2e2c30e36a2e Mon Sep 17 00:00:00 2001 From: "chengjian.scj" Date: Wed, 17 Sep 2025 13:51:20 +0800 Subject: [PATCH] Set declaringClass after constructor parameter matched successfully --- .../java/org/lsposed/hiddenapibypass/HiddenApiBypass.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java b/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java index cc8f7ce..cc067aa 100644 --- a/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java +++ b/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java @@ -140,10 +140,11 @@ public static Object newInstance(@NonNull Class clazz, Object... initargs) th "(" + Arrays.stream(stub.getParameterTypes()).map(Type::getTypeName).collect(Collectors.joining()) + ")"); if ("".equals(stub.getName())) { unsafe.putLong(ctor, methodOffset, method); - unsafe.putObject(ctor, classOffset, clazz); Class[] params = ctor.getParameterTypes(); - if (Helper.checkArgsForInvokeMethod(params, initargs)) + if (Helper.checkArgsForInvokeMethod(params, initargs)) { + unsafe.putObject(ctor, classOffset, clazz); return ctor.newInstance(initargs); + } } } throw new NoSuchMethodException("Cannot find matching constructor");