We used to hook functions `OatHeader::GetKeyValueStore` and `OatHeader::GetKeyValueStoreSize` to clean the `dex2oat` trace introduced by LSPosed. However, in recent versions of Android, these two functions are no longer exported. Moreover, the `OatHeader` structure has changed, which now sets certain entries to have fixed length by padding zeros. To address these two changes, we hook `OatHeader::ComputeChecksum` as an entrypoint (fallback), and then employ the header file of `OatHeader` copied from AOSP to precisely locate its fields. Using this strategy, we modify `key_value_store` in memory, depending on whether the entry `dex2oat-cmdline` is padded. |
||
|---|---|---|
| .. | ||
| dobby@05a09ac680 | ||
| fmt@93f03953af | ||
| lsplant@a0990196c2 | ||
| lsplt@e3db000352 | ||
| xz-embedded@ae63ae3a36 | ||
| CMakeLists.txt | ||