LSPosed / LSPatch

LSPatch: A non-root Xposed framework extending from LSPosed
GNU General Public License v3.0
6.43k stars 666 forks source link

[Bug] Original AppComponentFactory not found error #108

Closed nonnonstop closed 1 year ago

nonnonstop commented 1 year ago

Steps to reproduce/复现步骤

  1. Download this apk file. This apk file has an appfactory class com.example.testapp.MyAppComponentFactory.
  2. Run LSPatch.

    java -jar jar-v0.3.1-329-debug.jar -v -f app-release5.apk

  3. Run the patched apk on the device.

Expected behaviour/预期行为

The original AppComponentFactory MyAppComponentFactory is created.

Actual behaviour/实际行为

The original AppComponentFactory is not created and logcat outputs Original AppComponentFactory not found: com.example.testapp.MyAppComponentFactory.

Note: Commit 5a16a34cd89729c7dc6c303868a0e6a87e3794d8 added this error message and was referenced from #35.

Xposed Module List/Xposed 模块列表

N/A

LSPatch version/LSPatch 版本

v0.3.1-329

Android version/Android 版本

Android 10.0 (x86 emulator)

Shizuku version/Shizuku 版本

N/A

Version requirement/版本要求

Logs/日志

collapse sections as follows.

Logcat ``` 2022-09-05 21:43:47.484 20040-20040/? W/example.testap: Unexpected CPU variant for X86 using defaults: x86 2022-09-05 21:43:47.537 20040-20040/com.example.testapp D/LSPosed: symbol_cache.cpp:55#void lspd::InitSymbolCache(lspd::SymbolCache *): InitSymbolCache 2022-09-05 21:43:47.537 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:261#bool SandHook::ElfImg::findModuleBase(): found: f2289000-f23be000 r--p 00000000 fb:00 261 /apex/com.android.runtime/lib/libart.so 2022-09-05 21:43:47.537 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:267#bool SandHook::ElfImg::findModuleBase(): update path: /apex/com.android.runtime/lib/libart.so 2022-09-05 21:43:47.537 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:287#bool SandHook::ElfImg::findModuleBase(): get module base /apex/com.android.runtime/lib/libart.so: -0xdd77000 2022-09-05 21:43:47.537 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art9JNIEnvExt16SetTableOverrideEPK18JNINativeInterface 0x3ef3f0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.539 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:261#bool SandHook::ElfImg::findModuleBase(): found: f769b000-f76de000 r--p 00000000 fb:00 229 /apex/com.android.runtime/bin/linker 2022-09-05 21:43:47.539 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:267#bool SandHook::ElfImg::findModuleBase(): update path: /apex/com.android.runtime/bin/linker 2022-09-05 21:43:47.539 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:287#bool SandHook::ElfImg::findModuleBase(): get module base /apex/com.android.runtime/bin/linker: -0x8965000 2022-09-05 21:43:47.541 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:236#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found __dl__Z9do_dlopenPKciPK17android_dlextinfoPKv 0x47860 in /apex/com.android.runtime/bin/linker in symtab by linear lookup 2022-09-05 21:43:47.542 20040-20040/com.example.testapp D/LSPlant: art_method.hpp:186#static bool lsplant::art::ArtMethod::Init(JNIEnv *, const lsplant::HookHandler): ArtMethod size: 28 2022-09-05 21:43:47.542 20040-20040/com.example.testapp D/LSPlant: art_method.hpp:240#static bool lsplant::art::ArtMethod::Init(JNIEnv *, const lsplant::HookHandler): ArtMethod::declaring_class offset: 0 2022-09-05 21:43:47.542 20040-20040/com.example.testapp D/LSPlant: art_method.hpp:241#static bool lsplant::art::ArtMethod::Init(JNIEnv *, const lsplant::HookHandler): ArtMethod::entrypoint offset: 24 2022-09-05 21:43:47.542 20040-20040/com.example.testapp D/LSPlant: art_method.hpp:242#static bool lsplant::art::ArtMethod::Init(JNIEnv *, const lsplant::HookHandler): ArtMethod::data offset: 20 2022-09-05 21:43:47.542 20040-20040/com.example.testapp D/LSPlant: art_method.hpp:243#static bool lsplant::art::ArtMethod::Init(JNIEnv *, const lsplant::HookHandler): ArtMethod::access_flags offset: 4 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:236#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3artL15GetMethodShortyEP7_JNIEnvP10_jmethodID 0x492560 in /apex/com.android.runtime/lib/libart.so in symtab by linear lookup 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art9ArtMethod12PrettyMethodEPS0_b 0x14b690 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art6Thread14CurrentFromGdbEv 0x5bf950 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art11ClassLinker22FixupStaticTrampolinesENS_6ObjPtrINS_6mirror5ClassEEE 0x176e70 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art11ClassLinker22FixupStaticTrampolinesENS_6ObjPtrINS_6mirror5ClassEEE (0xf23ffe70) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art9ArtMethod14RegisterNativeEPKv 0x149e70 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art9ArtMethod14RegisterNativeEPKv (0xf23d2e70) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art9ArtMethod16UnregisterNativeEv 0x14a080 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art9ArtMethod16UnregisterNativeEv (0xf23d3080) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZNK3art11ClassLinker27SetEntryPointsToInterpreterEPNS_9ArtMethodE 0x1945a0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.550 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art6mirror5Class13GetDescriptorEPNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE 0x467cb0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art6mirror5Class11GetClassDefEv 0x46efe0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art16ScopedSuspendAllC2EPKcb 0x5d28a0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art16ScopedSuspendAllD2Ev 0x5d28e0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art2gc23ScopedGCCriticalSectionC2EPNS_6ThreadENS0_7GcCauseENS0_13CollectorTypeE 0x29fda0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art2gc23ScopedGCCriticalSectionD2Ev 0x29fe00 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art3jit12JitCodeCache18MoveObsoleteMethodEPNS_9ArtMethodES3_ 0x3a9420 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art3jit12JitCodeCache19GarbageCollectCacheEPNS_6ThreadE 0x3a5d20 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art3jit12JitCodeCache19GarbageCollectCacheEPNS_6ThreadE (0xf262ed20) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:236#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3artL18DexFile_setTrustedEP7_JNIEnvP7_jclassP8_jobject 0x499bf0 in /apex/com.android.runtime/lib/libart.so in symtab by linear lookup 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPlant: common.hpp:85#auto lsplant::IsJavaDebuggable(JNIEnv *)::(anonymous class)::operator()() const: java runtime debuggable false 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art7Runtime9instance_E 0x6a9578 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPlant: runtime.hpp:48#static bool lsplant::art::Runtime::Init(const lsplant::HookHandler &): runtime instance = 0xf722ca80 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art7Runtime17SetJavaDebuggableEb 0x572f60 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art12ProfileSaver20ProcessProfilingInfoEbPt 0x3b24c0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art12ProfileSaver20ProcessProfilingInfoEbPt (0xf263b4c0) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking execve (0xf5588d10) from /apex/com.android.runtime/lib/bionic/libc.so (0xf5487000) 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: elf_util.cpp:230#Elf32_Addr SandHook::ElfImg::getSymbOffset(std::string_view, uint32_t, uint32_t) const: found _ZN3art14OatFileManager25RunBackgroundVerificationERKNSt3__16vectorIPKNS_7DexFileENS1_9allocatorIS5_EEEEP8_jobjectPKc 0x4e7fc0 in /apex/com.android.runtime/lib/libart.so in dynsym by gnuhash 2022-09-05 21:43:47.551 20040-20040/com.example.testapp D/LSPosed: native_util.h:96#int lspd::HookFunction(void *, void *, void **): Hooking _ZN3art14OatFileManager25RunBackgroundVerificationERKNSt3__16vectorIPKNS_7DexFileENS1_9allocatorIS5_EEEEP8_jobjectPKc (0xf2770fc0) from /apex/com.android.runtime/lib/libart.so (0xf2289000) 2022-09-05 21:43:47.560 20040-20040/com.example.testapp D/LSPosed: oat_file_manager.h:36#static void art::(anonymous struct)::replace(void *, const std::vector &, jobject, const char *): Disabled background verification 2022-09-05 21:43:47.560 20040-20040/com.example.testapp D/LSPosed: resources_hook.cpp:56#std::string lspd::GetXResourcesClassName(): android/content/res/XResources 2022-09-05 21:43:47.591 20040-20040/com.example.testapp I/LSPatch: Use manager: false 2022-09-05 21:43:47.591 20040-20040/com.example.testapp I/LSPatch: Signature bypass level: 0 2022-09-05 21:43:47.605 20040-20040/com.example.testapp I/LSPatch: hooked app initialized: android.app.LoadedApk@c38ce87 2022-09-05 21:43:47.608 20040-20040/com.example.testapp W/LSPatch: Original AppComponentFactory not found: com.example.testapp.MyAppComponentFactory 2022-09-05 21:43:47.608 20040-20040/com.example.testapp D/LSPatch: Initialize service client 2022-09-05 21:43:47.611 20040-20040/com.example.testapp D/LSPatch: Processing /data/misc/profiles/cur/0/com.example.testapp/primary.prof 2022-09-05 21:43:47.611 20040-20040/com.example.testapp D/LSPatch: Skip profile /data/misc/profiles/cur/0/com.example.testapp/primary.prof 2022-09-05 21:43:47.619 20040-20040/com.example.testapp D/LSPosed: deoptimizing public android.app.Application android.app.Instrumentation.newApplication(java.lang.ClassLoader,java.lang.String,android.content.Context) throws java.lang.InstantiationException,java.lang.IllegalAccessException,java.lang.ClassNotFoundException: pkg=com.example.testapp, prc=com.example.testapp 2022-09-05 21:43:47.619 20040-20040/com.example.testapp I/LSPatch: Bootstrap Xposed 2022-09-05 21:43:47.619 20040-20040/com.example.testapp D/LSPosed: startBootstrapHook starts: isSystem = false 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:490#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Hooking: target = void java.lang.Thread.dispatchUncaughtException(java.lang.Throwable)(0x70b5a21c), hook = void LSPHooker_.dispatchUncaughtException(java.lang.Object, java.lang.Object)(0xe98020f0), backup = void LSPHooker_.backup(java.lang.Object, java.lang.Object)(0xe98020d4) 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:471#void *lsplant::(anonymous namespace)::GenerateTrampolineFor(art::ArtMethod *): trampoline: count = 0, address = f3beb000, target = f3beb000 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:497#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Generated trampoline 0xf3beb000 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:513#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Done hook: target(0x70b5a21c:0x2080011) -> 0xf3beb000; backup(0xe98020d4:0x2080012) -> 0x71530040; hook(0xe98020f0:0x12080009) -> 0xf23cdff0 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPosed: hook_bridge.cpp:55#lspd::Java_org_lsposed_lspd_nativebridge_HookBridge_hookMethod(JNIEnv *, jclass, jobject, jclass, jint, jobject)::finally::~finally(): New hook took 1021us 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:490#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Hooking: target = java.lang.Object dalvik.system.DexFile.openDexFile(java.lang.String, java.lang.String, int, java.lang.ClassLoader, dalvik.system.DexPathList$Element[])(0x70c4d1a4), hook = java.lang.Object LSPHooker_.openDexFile(java.lang.Object, java.lang.Object, int, java.lang.Object, java.lang.Object)(0xe97cf130), backup = java.lang.Object LSPHooker_.backup(java.lang.Object, java.lang.Object, int, java.lang.Object, java.lang.Object)(0xe97cf114) 2022-09-05 21:43:47.621 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:471#void *lsplant::(anonymous namespace)::GenerateTrampolineFor(art::ArtMethod *): trampoline: count = 1, address = f3beb000, target = f3beb00c 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:497#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Generated trampoline 0xf3beb00c 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:513#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Done hook: target(0x70c4d1a4:0x208000a) -> 0xf3beb00c; backup(0xe97cf114:0x208000a) -> 0x718a97f0; hook(0xe97cf130:0x12080009) -> 0xf23cdff0 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPosed: hook_bridge.cpp:55#lspd::Java_org_lsposed_lspd_nativebridge_HookBridge_hookMethod(JNIEnv *, jclass, jobject, jclass, jint, jobject)::finally::~finally(): New hook took 442us 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:490#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Hooking: target = java.lang.Object dalvik.system.DexFile.openInMemoryDexFiles(java.nio.ByteBuffer[], java.lang.ClassLoader, dalvik.system.DexPathList$Element[])(0x70c4d1dc), hook = java.lang.Object LSPHooker_.openInMemoryDexFiles(java.lang.Object, java.lang.Object, java.lang.Object)(0xe97620f0), backup = java.lang.Object LSPHooker_.backup(java.lang.Object, java.lang.Object, java.lang.Object)(0xe97620d4) 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:471#void *lsplant::(anonymous namespace)::GenerateTrampolineFor(art::ArtMethod *): trampoline: count = 2, address = f3beb000, target = f3beb018 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:497#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Generated trampoline 0xf3beb018 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:513#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Done hook: target(0x70c4d1dc:0x208000a) -> 0xf3beb018; backup(0xe97620d4:0x4208000a) -> 0x71530040; hook(0xe97620f0:0x12080009) -> 0xf23cdff0 2022-09-05 21:43:47.622 20040-20040/com.example.testapp V/LSPosed: hook_bridge.cpp:55#lspd::Java_org_lsposed_lspd_nativebridge_HookBridge_hookMethod(JNIEnv *, jclass, jobject, jclass, jint, jobject)::finally::~finally(): New hook took 423us 2022-09-05 21:43:47.624 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:490#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Hooking: target = void android.app.LoadedApk.(android.app.ActivityThread, android.content.pm.ApplicationInfo, android.content.res.CompatibilityInfo, java.lang.ClassLoader, boolean, boolean, boolean)(0x7122346c), hook = void LSPHooker_.constructor(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, boolean, boolean, boolean)(0xe8007130), backup = void LSPHooker_.backup(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, boolean, boolean, boolean)(0xe8007114) 2022-09-05 21:43:47.624 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:471#void *lsplant::(anonymous namespace)::GenerateTrampolineFor(art::ArtMethod *): trampoline: count = 3, address = f3beb000, target = f3beb024 2022-09-05 21:43:47.624 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:497#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Generated trampoline 0xf3beb024 2022-09-05 21:43:47.624 20040-20040/com.example.testapp V/LSPlant: lsplant.cc:513#bool lsplant::(anonymous namespace)::DoHook(lsplant::art::ArtMethod *, lsplant::art::ArtMethod *, lsplant::art::ArtMethod *): Done hook: target(0x7122346c:0x2090001) -> 0xf3beb024; backup(0xe8007114:0x2090002) -> 0x71db52d0; hook(0xe8007130:0x12080009) -> 0xf23cdff0 2022-09-05 21:43:47.624 20040-20040/com.example.testapp V/LSPosed: hook_bridge.cpp:55#lspd::Java_org_lsposed_lspd_nativebridge_HookBridge_hookMethod(JNIEnv *, jclass, jobject, jclass, jint, jobject)::finally::~finally(): New hook took 986us 2022-09-05 21:43:47.624 20040-20040/com.example.testapp I/LSPatch: Load modules 2022-09-05 21:43:47.628 20040-20040/com.example.testapp I/LSPatch: Modules initialized 2022-09-05 21:43:47.628 20040-20040/com.example.testapp I/LSPatch: LSPatch bootstrap completed 2022-09-05 21:43:47.667 20040-20040/com.example.testapp D/ExampleTestApp: MyApplication 2022-09-05 21:43:47.691 20040-20040/com.example.testapp D/ExampleTestApp: MyActivity 2022-09-05 21:43:47.697 20040-20073/com.example.testapp D/libEGL: Emulator has host GPU support, qemu.gles is set to 1. 2022-09-05 21:43:47.688 20040-20040/com.example.testapp W/RenderThread: type=1400 audit(0.0:94536): avc: denied { write } for name="property_service" dev="tmpfs" ino=7422 scontext=u:r:untrusted_app:s0:c176,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 app=com.example.testapp 2022-09-05 21:43:47.698 20040-20073/com.example.testapp W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied) 2022-09-05 21:43:47.729 20040-20073/com.example.testapp D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so 2022-09-05 21:43:47.736 20040-20073/com.example.testapp D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so 2022-09-05 21:43:47.743 20040-20073/com.example.testapp D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so 2022-09-05 21:43:47.764 20040-20071/com.example.testapp D/HostConnection: HostConnection::get() New Host Connection established 0xe047bd60, tid 20071 2022-09-05 21:43:47.765 20040-20071/com.example.testapp D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_sync_buffer_data GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_1 2022-09-05 21:43:47.767 20040-20071/com.example.testapp W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 2022-09-05 21:43:47.777 20040-20071/com.example.testapp D/EGL_emulation: eglCreateContext: 0xec7d5b80: maj 3 min 1 rcv 4 2022-09-05 21:43:47.799 20040-20071/com.example.testapp D/EGL_emulation: eglMakeCurrent: 0xec7d5b80: ver 3 1 (tinfo 0xe0504f50) 2022-09-05 21:43:47.800 20040-20071/com.example.testapp E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da 2022-09-05 21:43:47.800 20040-20071/com.example.testapp E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da 2022-09-05 21:43:47.810 20040-20071/com.example.testapp W/Gralloc3: mapper 3.x is not supported 2022-09-05 21:43:47.811 20040-20071/com.example.testapp D/HostConnection: createUnique: call 2022-09-05 21:43:47.811 20040-20071/com.example.testapp D/HostConnection: HostConnection::get() New Host Connection established 0xe047d390, tid 20071 2022-09-05 21:43:47.811 20040-20071/com.example.testapp D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_sync_buffer_data GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_1 2022-09-05 21:43:47.811 20040-20071/com.example.testapp D/eglCodecCommon: allocate: Ask for block of size 0x1000 2022-09-05 21:43:47.812 20040-20071/com.example.testapp D/eglCodecCommon: allocate: ioctl allocate returned offset 0x3ffff6000 size 0x2000 2022-09-05 21:43:47.821 20040-20071/com.example.testapp D/EGL_emulation: eglMakeCurrent: 0xec7d5b80: ver 3 1 (tinfo 0xe0504f50) ```
Command log ``` > java -jar jar-v0.3.1-329-debug.jar -v -f app-release5.apk Processing C:\Users\test\Downloads\app-release5.apk -> C:\Users\test\Downloads\.\app-release5-329-lspatched.apk apk path: C:\Users\test\Downloads\app-release5.apk Parsing original apk... Register apk signer with default keystore... Original signature 308202c9308201b1a003020102020411554fa1300d06092a864886f70d01010b0500301531133011060355040a130a6e6f6e6e6f6e73746f70301e170d3231303531303037313632385a170d3436303530343037313632385a301531133011060355040a130a6e6f6e6e6f6e73746f7030820122300d06092a864886f70d01010105000382010f003082010a02820101009933dd76ead68b45bb58a697d82b678d8c1ca12a865b0994a370d0ed1f917ae86e6deb8a49e243972eebda66a1ef7a91f0251523e3336021afac20072b86a64ed4378d13534bf79fc72ea3a2c24a2b5fd432e9c92ac6b174eb0ee59de791137441c84af5aec4330eb1ab02fcadcb187b443cae81e38419a0753540f3c654703362b86db7eb433b4715ef43d21de568d46a3e7e17a33ce5c9d41ffc4a0f2bc3ddc91373cc1fe3ef4f98a28a21761b389ccc5b49cc8170145c2848d2e64bccc76c460931f5d3a740b656a075a880011101a320e6c15dd852324dc84e092d4cf01a1c667353cfd67d9ef1b2111779223d51f4d04d78c09525701222047da80c1d7d0203010001a321301f301d0603551d0e041604149c6fda24fdf0a6a8897088713fdb03f599b03269300d06092a864886f70d01010b05000382010100103b52d51353cf4767b873d151c13d4be6f0ce5151177cbfd6c99195b8955e761c8db0ea91742b96105cfdd426dd637c9a6202d947efd17ce436a638144e0f7d30e932e42cb7db9c4022dfb68e5a9d6840f98273e4be14437ae61002ece127a294550f0bd7409cf7605e978e31044b44240dc3eef851752bcaa346cf8cdca36dc12620b0df38131986d85e3ec409091fbb0f3fef271797149427a3a896ec232a0a990d8aaf3382abb55e0bd8bca2d45458f843b943477f92583e87ecdc7775c72dd381ade946a0bc4f5987bf18449e02042a905bee0e3e4a5771eda9355f503fb7062b983a3b3c66f296fb460b6aa0e066e8cdef19ba7702b8fb8f572aa27230 original appComponentFactory class: com.example.testapp.MyAppComponentFactory Patching apk... Adding native lib.. added assets/lspatch/so/x86_64/liblspatch.so added assets/lspatch/so/arm64/liblspatch.so added assets/lspatch/so/x86/liblspatch.so added assets/lspatch/so/arm/liblspatch.so Adding dex.. Search target apk library arch... Embedding modules... Creating nested apk link... Writing apk... Done. Output APK: C:\Users\test\Downloads\.\app-release5-329-lspatched.apk ```
yujincheng08 commented 1 year ago

https://github.com/LSPosed/LSPatch/commit/c956fbea510aa599fb14e0df62ec8589fa3c5a34