// the find
tiann/epic
Dynamic java method AOP hook for Android(continution of Dexposed on ART), Supporting 5.0~11
Epic is a runtime method hooking library for Android ART (Android 5.0–11), letting you intercept any Java method before or after it executes without modifying APKs or requiring root. It's a continuation of Alibaba's Dexposed, using the same Xposed-style API — before/after/replace hooks via `DexposedBridge.findAndHookMethod`. The target audience is Android developers who need runtime instrumentation: performance monitoring, security auditing, or building tools that modify app behavior in-process.
The approach is genuinely clever — it patches the ArtMethod entry point at the native level using a trampoline, which means hooks survive JIT compilation and don't require bytecode manipulation. The Xposed API compatibility is a real asset; any developer familiar with Xposed or Dexposed can drop this in without relearning a new callback model. The test suite covers an unusual level of detail for a library like this — there are dedicated test cases for calling conventions across every combination of 4-byte and 8-byte argument types, which matters a lot when you're rewriting stack frames at the ART level. Works without root and without modifying the APK, which makes it viable for production instrumentation.
Android 12 and above are not supported, and the last commit was July 2023 with no indication of future maintenance — this is effectively an archived project at this point. The arm32/x86/x86_64 exclusion is painful: you can't use it on any emulator, which makes CI integration impossible and debugging awkward. Short methods under 8 bytes (thumb2) or 16 bytes (arm64) silently fail to hook, and fully inlined methods are unsupported with no fallback or warning — you'll get no error, your hook just won't fire. The JitPack distribution via Bintray is dead (Bintray shut down in 2021), so the README's installation instructions are broken out of the box.