From 46558c6bc96b2e9821026346e2edd43ca7a2aeb3 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sun, 25 Jun 2023 22:02:00 +0800 Subject: [PATCH] Try three times when setting classloader trusted It may fail because of race, so try more as a temporary workaround --- .../java/org/lsposed/lspd/hooker/OpenDexFileHooker.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/lsposed/lspd/hooker/OpenDexFileHooker.java b/core/src/main/java/org/lsposed/lspd/hooker/OpenDexFileHooker.java index 501e7063..2051bdd2 100644 --- a/core/src/main/java/org/lsposed/lspd/hooker/OpenDexFileHooker.java +++ b/core/src/main/java/org/lsposed/lspd/hooker/OpenDexFileHooker.java @@ -21,7 +21,14 @@ public class OpenDexFileHooker extends XC_MethodHook { } while (classLoader != null) { if (classLoader == XposedHelpers.class.getClassLoader()) { - HookBridge.setTrusted(param.getResult()); + // it may fail because of race, try more + for (int i = 0; i < 3; i++) { + try { + HookBridge.setTrusted(param.getResult()); + break; + } catch (SecurityException ignored) { + } + } return; } else { classLoader = classLoader.getParent();