From a4f6979c28de2ad68f536f20cbda9dd765b13c1d Mon Sep 17 00:00:00 2001 From: LoveSy Date: Tue, 10 Oct 2023 11:22:24 +0800 Subject: [PATCH] Fix AdjustThreadVisibilityCounter inline --- lsplant/src/main/jni/art/runtime/class_linker.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lsplant/src/main/jni/art/runtime/class_linker.hpp b/lsplant/src/main/jni/art/runtime/class_linker.hpp index 9e36f9c..7ddc8f8 100644 --- a/lsplant/src/main/jni/art/runtime/class_linker.hpp +++ b/lsplant/src/main/jni/art/runtime/class_linker.hpp @@ -127,6 +127,12 @@ private: RestoreBackup(nullptr, self); }); + CREATE_MEM_HOOK_STUB_ENTRY( + "_ZN3art11ClassLinker26VisiblyInitializedCallback22MarkVisiblyInitializedEPNS_6ThreadE", + void, MarkVisiblyInitialized, (void *thiz, Thread* self), { + backup(thiz, self); + RestoreBackup(nullptr, self); + }); public: static bool Init(const HookHandler &handler) { int sdk_int = GetAndroidApiLevel(); @@ -150,7 +156,7 @@ public: if (sdk_int >= __ANDROID_API_R__) { if constexpr (GetArch() != Arch::kX86 && GetArch() != Arch::kX86_64) { // fixup static trampoline may have been inlined - HookSyms(handler, AdjustThreadVisibilityCounter); + HookSyms(handler, AdjustThreadVisibilityCounter, MarkVisiblyInitialized); } }