Protect artifact
Rewrites classes through ASM, then re-verifies every frame before writing output
Input
📦
ekyc-sdk-release.aar
4.8 MB · 812 classes
Symbol renaming
Classes, methods, fields
Recompute frames
COMPUTE_FRAMES on rewrite
Verify after write
Catch bad frames at build time
String encryption
Planned — not yet enabled
Keep rules
rules.kts
// Public SDK surface must survive renaming — // integrators compile against these names. keep "com.example.ekyc.api.**" { methods = Visibility.PUBLIC fields = Visibility.PUBLIC } // Entry points resolved reflectively at runtime. keep "com.example.ekyc.ui.*Activity" keep "**.*Serializer" // Native bridges — JNI looks these up by name. keepNames "com.example.ekyc.native.**" { annotatedWith = "@JniEntry" } // Everything else is fair game. rename "com.example.ekyc.internal.**" { dictionary = Dictionary.SHORT_ALPHA }
Frame recomputation is the part that actually decides whether the artifact runs. A renamed class
with a stale stack map passes the build and then fails verification on device — so the pass
re-verifies every rewritten class before anything is written to disk.