Commit Graph

5 Commits

Author SHA1 Message Date
JingMatrix 1436f692fb
Refactor dex2oat wrapper to solve long-standing issues (#515)
Manual library path injection via LD_LIBRARY_PATH has become unreliable due to symbol mismatches in core libraries (e.g., `libc++`) between the system and APEX partitions. Recent updates to `liblog` and `libbase` (in Android 16) have resulted in missing symbols like `__hash_memory` or `fmt` when the ART APEX binaries are forced to load system-partition shims.

This commit switches the wrapper to execute the runtime APEX linker directly (e.g., `/apex/com.android.runtime/bin/linker64`). By passing the dex2oat binary to the linker via `/proc/self/fd/`, the linker can properly initialize internal namespaces and resolve dependencies from the correct APEX and bootstrap locations.

Moreover, for the OatHeader hook, a bug introduced in 6703b45350 is now fixed, where the target functions of PLT hooks are overwritten by the our helper functions.

Details of the refactored project are explained in README.
2026-01-25 10:13:57 +01:00
LoveSy 7aa50bb4f0
Fix dex2oat build 2023-04-15 17:02:54 +00:00
LoveSy f887d0116c
Upgrade gradle (#2487) 2023-04-12 16:46:09 +00:00
LoveSy b069da0323 Refine gradle scripts 2023-02-26 16:48:49 +08:00
Nullptr 2f9e0e07b0
Resolve dex2oat parameters for Android 10+ (#1803) 2022-04-02 13:13:22 +08:00