From 71774746cfff0b88dfb3f1467502607ff10aeeb0 Mon Sep 17 00:00:00 2001 From: swift_gan Date: Fri, 22 Mar 2019 15:36:57 +0800 Subject: [PATCH 1/4] SandHook: remove useless logic --- .../riru/edxp/sandhook/entry/Router.java | 42 ++----------------- 1 file changed, 4 insertions(+), 38 deletions(-) diff --git a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java index b2a4af39..c23bf8b9 100644 --- a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java +++ b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java @@ -30,12 +30,6 @@ public class Router { private static volatile AtomicBoolean bootstrapHooked = new AtomicBoolean(false); - static boolean useSandHook; - - static { - useSandHook = EdXpConfigGlobal.getHookProvider() instanceof SandHookProvider; - } - public static void prepare(boolean isSystem) { // this flag is needed when loadModules @@ -86,46 +80,18 @@ public class Router { Utils.logD("startBootstrapHook starts: isSystem = " + isSystem); ClassLoader classLoader = XposedBridge.BOOTCLASSLOADER; if (isSystem) { - if (useSandHook) { - XposedCompat.addHookers(classLoader, SysBootstrapHookInfo.hookItems); - } else { - HookMain.doHookDefault( - Router.class.getClassLoader(), - classLoader, - SysBootstrapHookInfo.class.getName()); - } + XposedCompat.addHookers(classLoader, SysBootstrapHookInfo.hookItems); } else { - if (useSandHook) { - XposedCompat.addHookers(classLoader, AppBootstrapHookInfo.hookItems); - } else { - HookMain.doHookDefault( - Router.class.getClassLoader(), - classLoader, - AppBootstrapHookInfo.class.getName()); - } + XposedCompat.addHookers(classLoader, AppBootstrapHookInfo.hookItems); } } public static void startSystemServerHook() { - if (useSandHook) { - XposedCompat.addHookers(SystemMainHooker.systemServerCL, SysInnerHookInfo.hookItems); - } else { - HookMain.doHookDefault( - Router.class.getClassLoader(), - SystemMainHooker.systemServerCL, - SysInnerHookInfo.class.getName()); - } + XposedCompat.addHookers(SystemMainHooker.systemServerCL, SysInnerHookInfo.hookItems); } public static void startWorkAroundHook() { - if (useSandHook) { - XposedCompat.addHookers(XposedBridge.BOOTCLASSLOADER, WorkAroundHookInfo.hookItems); - } else { - HookMain.doHookDefault( - Router.class.getClassLoader(), - XposedBridge.BOOTCLASSLOADER, - WorkAroundHookInfo.class.getName()); - } + XposedCompat.addHookers(XposedBridge.BOOTCLASSLOADER, WorkAroundHookInfo.hookItems); } public static void onEnterChildProcess() { From 4cfeaaaafe7607c9cf1dde0751126633efbc9499 Mon Sep 17 00:00:00 2001 From: swift_gan Date: Fri, 22 Mar 2019 15:46:08 +0800 Subject: [PATCH 2/4] SandHook: remove useless logic of compilable check --- .../java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java | 1 - .../sandhook/xposedcompat/methodgen/SandHookXposedBridge.java | 1 - 2 files changed, 2 deletions(-) diff --git a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java index c23bf8b9..dbf45e4c 100644 --- a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java +++ b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java @@ -114,6 +114,5 @@ public class Router { public static void injectConfig() { EdXpConfigGlobal.sConfig = new SandHookEdxpConfig(); EdXpConfigGlobal.sHookProvider = new SandHookProvider(); - SandHookConfig.compiler = !startsSystemServer; } } diff --git a/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java b/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java index 39eea87d..44a807da 100644 --- a/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java +++ b/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java @@ -128,7 +128,6 @@ public final class SandHookXposedBridge { }; SandHookConfig.DEBUG = true; //in zygote disable compile - SandHookConfig.compiler = false; } } From c97a9c8a688bafc8db0be4e1fc8d4d7aecb30d82 Mon Sep 17 00:00:00 2001 From: swift_gan Date: Fri, 22 Mar 2019 17:54:37 +0800 Subject: [PATCH 3/4] SandHook: revert compilable control flag --- .../java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java | 1 + .../sandhook/xposedcompat/methodgen/SandHookXposedBridge.java | 1 + 2 files changed, 2 insertions(+) diff --git a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java index dbf45e4c..c23bf8b9 100644 --- a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java +++ b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java @@ -114,5 +114,6 @@ public class Router { public static void injectConfig() { EdXpConfigGlobal.sConfig = new SandHookEdxpConfig(); EdXpConfigGlobal.sHookProvider = new SandHookProvider(); + SandHookConfig.compiler = !startsSystemServer; } } diff --git a/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java b/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java index 44a807da..39eea87d 100644 --- a/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java +++ b/edxp-sandhook/src/main/java/com/swift/sandhook/xposedcompat/methodgen/SandHookXposedBridge.java @@ -128,6 +128,7 @@ public final class SandHookXposedBridge { }; SandHookConfig.DEBUG = true; //in zygote disable compile + SandHookConfig.compiler = false; } } From 75f81a8177f55a9250ef4d16aac831d15ced98f5 Mon Sep 17 00:00:00 2001 From: swift_gan Date: Fri, 22 Mar 2019 18:14:53 +0800 Subject: [PATCH 4/4] SandHook: tweak compilable control flag --- .../java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java index c23bf8b9..c95016bf 100644 --- a/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java +++ b/edxp-sandhook/src/main/java/com/elderdrivers/riru/edxp/sandhook/entry/Router.java @@ -61,6 +61,7 @@ public class Router { } Router.startBootstrapHook(isSystem); XposedInit.initForZygote(isSystem); + SandHookConfig.compiler = !isSystem; } catch (Throwable t) { Utils.logE("error during Xposed initialization", t); XposedBridge.disableHooks = true; @@ -114,6 +115,5 @@ public class Router { public static void injectConfig() { EdXpConfigGlobal.sConfig = new SandHookEdxpConfig(); EdXpConfigGlobal.sHookProvider = new SandHookProvider(); - SandHookConfig.compiler = !startsSystemServer; } }