From 12667f5bd221518a3d10b0c1da746c6a3bf9229c Mon Sep 17 00:00:00 2001 From: solohsu Date: Tue, 22 Jan 2019 17:09:12 +0800 Subject: [PATCH] Bootstrap hookings should only be done once --- Bridge/src/main/java/de/robv/android/xposed/XposedInit.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java b/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java index 8a8e44e4..6722961b 100644 --- a/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java +++ b/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java @@ -47,11 +47,15 @@ public final class XposedInit { private XposedInit() { } + private static volatile AtomicBoolean bootstrapHooked = new AtomicBoolean(false); /** * Hook some methods which we want to create an easier interface for developers. */ /*package*/ public static void initForZygote(boolean isSystem) throws Throwable { + if (!bootstrapHooked.compareAndSet(false, true)) { + return; + } startsSystemServer = isSystem; Router.startBootstrapHook(isSystem); // MIUI