Smali Debugger
Smali Debugger in jadx-gui
Prerequisites
adbinstalled and available onANDROID_HOMEorPATH- A debuggable app or a rooted device/emulator that can force-enable debugging on any app
Warning: Android Studio interferes with the jadx debugger. Close Android Studio before attaching to a process in jadx.
Features
- Single-step execution (step into / step over / step out)
- Set and remove breakpoints
- Modify register values at runtime
- Modify fields of live objects at runtime
Keyboard Shortcuts
| Key | Action |
|---|---|
F2 | Set / remove breakpoint |
F7 | Step into |
F8 | Step over |
Shift + F8 | Step out |
F9 | Run (continue) |
Usage
1. Make the App Debuggable
Launch the target app with the wait-for-debugger flag set, or use a rooted device to inject the debuggable flag at runtime. jadx will detect the waiting process via adb.
2. Connect via adb
Use the adb panel inside jadx-gui to select the device and target process. jadx searches ANDROID_HOME and PATH for the adb binary automatically.
3. Debug in Smali View
Note: Breakpoints and the current debug-position highlight only work inside the smali viewer when
Show dalvik bytecodemode is active.
This mode is activated automatically on attach; if not, enable it from the right-click popup menu in the smali view.
Once attached:
- Click the gutter or press
F2to place a breakpoint on a smali instruction. - Use
F7/F8/Shift+F8to step through instructions. - Inspect and edit registers and object fields in the debugger panel.