Haxoris Wiki

Debuggable Release Build

How Debuggable Release Build works

Shipping with android:debuggable="true" or similar debug flags allows runtime inspection, file access via run-as, and easier hooking, making reverse engineering and tampering trivial.

Debuggable Release Build in practice

Check Debuggable Flag

aapt dump badging app-release.apk | rg -i debuggable
# Or
apkanalyzer manifest print app-release.apk | rg -i debuggable

If debuggable is true in release, the app is exposed.

How to fix and prevent Debuggable Release Build

  1. Build types and CI gates
    • Ensure release builds set debuggable=false; add CI checks to fail on debug artifacts.
  2. Remove debug helpers
    • Strip logging, WebView debugging, and developer menus from production.
  3. Defense in depth
    • Combine with obfuscation and integrity checks to slow reverse engineering.

Last updated

References