From 2bf1acf60192b5e6f483218778525fee9af5af35 Mon Sep 17 00:00:00 2001 From: solohsu Date: Wed, 24 Apr 2019 10:24:28 +0800 Subject: [PATCH] Fix deopter not working --- .../riru/edxp/sandhook/config/SandHookProvider.java | 11 ++++++++--- .../riru/edxp/whale/config/WhaleHookProvider.java | 11 +++++++++++ .../riru/edxp/yahfa/config/YahfaHookProvider.java | 11 +++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) 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 df543516..7db9e367 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 @@ -2,8 +2,8 @@ package com.elderdrivers.riru.edxp.sandhook.config; import android.util.Log; +import com.elderdrivers.riru.edxp.Main; import com.elderdrivers.riru.edxp.config.BaseHookProvider; -import com.elderdrivers.riru.edxp.deopt.PrebuiltMethodsDeopter; import com.elderdrivers.riru.edxp.sandhook.dexmaker.DynamicBridge; import com.swift.sandhook.xposedcompat.XposedCompat; import com.swift.sandhook.xposedcompat.methodgen.SandHookXposedBridge; @@ -45,8 +45,13 @@ public class SandHookProvider extends BaseHookProvider { } @Override - public void deoptMethods(String packageName, ClassLoader classLoader) { - PrebuiltMethodsDeopter.deoptMethods(packageName, classLoader); + public Object findMethodNative(Class clazz, String methodName, String methodSig) { + return Main.findMethodNative(clazz, methodName, methodSig); + } + + @Override + public void deoptMethodNative(Object method) { + Main.deoptMethodNative(method); } @Override diff --git a/edxp-whale/src/main/java/com/elderdrivers/riru/edxp/whale/config/WhaleHookProvider.java b/edxp-whale/src/main/java/com/elderdrivers/riru/edxp/whale/config/WhaleHookProvider.java index 571b5cb8..7919e38f 100644 --- a/edxp-whale/src/main/java/com/elderdrivers/riru/edxp/whale/config/WhaleHookProvider.java +++ b/edxp-whale/src/main/java/com/elderdrivers/riru/edxp/whale/config/WhaleHookProvider.java @@ -1,5 +1,6 @@ package com.elderdrivers.riru.edxp.whale.config; +import com.elderdrivers.riru.edxp.Main; import com.elderdrivers.riru.edxp.config.BaseHookProvider; import com.lody.whale.WhaleRuntime; @@ -39,6 +40,16 @@ public class WhaleHookProvider extends BaseHookProvider { return hookMethod; } + @Override + public Object findMethodNative(Class clazz, String methodName, String methodSig) { + return Main.findMethodNative(clazz, methodName, methodSig); + } + + @Override + public void deoptMethodNative(Object method) { + Main.deoptMethodNative(method); + } + @Override public long getMethodId(Member member) { return WhaleRuntime.getMethodSlot(member); diff --git a/edxp-yahfa/src/main/java/com/elderdrivers/riru/edxp/yahfa/config/YahfaHookProvider.java b/edxp-yahfa/src/main/java/com/elderdrivers/riru/edxp/yahfa/config/YahfaHookProvider.java index 39e8a516..c6d76e3e 100644 --- a/edxp-yahfa/src/main/java/com/elderdrivers/riru/edxp/yahfa/config/YahfaHookProvider.java +++ b/edxp-yahfa/src/main/java/com/elderdrivers/riru/edxp/yahfa/config/YahfaHookProvider.java @@ -1,5 +1,6 @@ package com.elderdrivers.riru.edxp.yahfa.config; +import com.elderdrivers.riru.edxp.Main; import com.elderdrivers.riru.edxp.config.BaseHookProvider; import com.elderdrivers.riru.edxp.yahfa.dexmaker.DexMakerUtils; import com.elderdrivers.riru.edxp.yahfa.dexmaker.DynamicBridge; @@ -24,4 +25,14 @@ public class YahfaHookProvider extends BaseHookProvider { public Member findMethodNative(Member hookMethod) { return DexMakerUtils.findMethodNative(hookMethod); } + + @Override + public Object findMethodNative(Class clazz, String methodName, String methodSig) { + return Main.findMethodNative(clazz, methodName, methodSig); + } + + @Override + public void deoptMethodNative(Object method) { + Main.deoptMethodNative(method); + } }