Skip to content

handleLoadPackage() not called for app using appComponentFactory #489

@agnostic-apollo

Description

@agnostic-apollo

Steps to reproduce/复现步骤

  1. Create a xposed module for an app that uses AndroidManifestApplication_appComponentFactory, like for androidx.core.app.CoreComponentFactory.
  2. Launch app.

Expected behaviour/预期行为

handleLoadPackage() gets called.

Actual behaviour/实际行为

handleLoadPackage() not called before appComponentFactory class of the app is loaded, so methods cannot be hooked. Is hooking methods supported so early on?

Xposed Module List/Xposed 模块列表

Custom xposed module `dev.agnosticapollo.foo` for `com.foo` app.

Root implementation/Root 方案

Magisk 29

System Module List/系统模块列表

Zygisk-LSPosed

LSPosed version/LSPosed 版本

v1.10.2 (7199) 0e457e3

Android version/Android 版本

.

Version requirement/版本要求

Logs/日志

Stacktrace without xposed module.

at androidx.core.app.CoreComponentFactory.<clinit>
at java.lang.Class.newInstance(Native Method)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:260)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:902)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:982)
at android.app.LoadedApk.getResources(LoadedApk.java:1214)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2663)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2655)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6602)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Stacktrace with xposed module.

at androidx.core.app.CoreComponentFactory.<clinit>
at java.lang.Class.newInstance(Native Method)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:260)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:902)
at java.lang.reflect.Method.invoke(Native Method)
at q.ChkgI.s.cAxrIL.ZL.p.aVdg.dG.HookBridge.invokeOriginalMethod(Native Method)
at org.lsposed.lspd.impl.LSPosedBridge$NativeHooker.callback(r8-map-id-262c2e0ff89d3cc5bb25cad9c304996a61abc774558320706d02f16a4c7c9177:190)
at LSPHooker_.createOrUpdateClassLoaderLocked(Unknown Source:11)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:982)
at android.app.LoadedApk.getResources(LoadedApk.java:1214)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2663)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2655)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6602)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Logcat logs. Note sure which elf is triggering Compressed data is corrupt error or why.

LSPosed                 I Loading xposed for com.foo/xxxxx
LSPosed-Bridge          I Loading legacy module dev.agnosticapollo.foo from ...
com.foo                 W  Unsupported class loader
com.foo                 W  Could not establish class loader context
LSPosed-Bridge I        Loading class dev.agnosticapollo.foo.xposed.XposedModule
dev.agnosticapollo.foo  I  initZygote
LSPosed                 E  Compressed data is corrupt
<CoreComponentFactory is called here>

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions