diff --git a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/config/SandHookProvider.java b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/config/SandHookProvider.java index e45ce9c0b..318fac6fe 100644 --- a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/config/SandHookProvider.java +++ b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/config/SandHookProvider.java @@ -16,6 +16,8 @@ import de.robv.android.xposed.XposedBridge; +import static com.elderdrivers.riru.edxp.util.ClassUtils.shouldDelayHook; + public class SandHookProvider extends BaseHookProvider { @Override public void hookMethod(Member method, XposedBridge.AdditionalHookInfo additionalInfo) { @@ -50,7 +52,7 @@ public Object invokeOriginalMethod(Member method, long methodId, Object thisObje @Override public Member findMethodNative(Member hookMethod) { - return hookMethod; + return shouldDelayHook(hookMethod) ? null : hookMethod; } @Override diff --git a/sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java b/sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java index 231e236b4..071616f61 100644 --- a/sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java +++ b/sandhook-hooklib/src/main/java/com/swift/sandhook/SandHook.java @@ -95,8 +95,6 @@ public static synchronized void hook(HookWrapper.HookEntity entity) throws HookE if (SandHookConfig.delayHook && PendingHookHandler.canWork() && ClassStatusUtils.isStaticAndNoInited(entity.target)) { PendingHookHandler.addPendingHook(entity); return; - } else if (entity.initClass) { - resolveStaticMethod(target); } resolveStaticMethod(backup);