LSPosed/xposed
JingMatrix fc718e739b Implement hookClassInitializer API for static initializers (#535)
Since standard Java Reflection cannot access the `<clinit>` method (class's static initializer), we add a new native function, `HookBridge.getStaticInitializer`, which uses JNI `GetStaticMethodID` to retrieve a `Method` handle for it. The `LSPosedContext` API then passes this handle to the existing `doHook` machinery.

There are two possible exceptions thrown by the API:

- `IllegalArgumentException`: Thrown for user-level errors, such as attempting to hook a class that has no static initializer block (`static { ... }`). This is a predictable failure based on the provided class.

- `HookFailedError`: Thrown when the underlying native hooking engine (`lsplant`) fails to install the hook. This indicates a framework or environment-level issue (e.g., ART incompatibility, method inlining by the JIT/AOT compiler) and is not a fault in the module's logic.
2026-02-14 16:04:58 +01:00
..
libxposed@b896dbcda3 Implement hookClassInitializer API for static initializers (#535) 2026-02-14 16:04:58 +01:00
src/main/kotlin/org/matrix/vector Fix and refactor DexParser implementation (#509) 2026-01-21 18:12:25 +01:00
README.md Fix and refactor DexParser implementation (#509) 2026-01-21 18:12:25 +01:00
build.gradle.kts Centralize dependencies and migrate to submodules (#512) 2026-01-22 15:13:06 +01:00

README.md

Xposed API implementation of the Vector framework

LSPosed is being refactored into a new project Vector.

This sub-project xposed, written in Kotlin, will be refactored from the core sub-project written in Java.