How ch0pin/rdx works
RDX is a desktop Android reverse-engineering tool: users open an APK or DEX, inspect reconstructed Java or DEX, and investigate relationships, manifest data, and resources. The native Rust engine parses DEX and renders mixed Java/disassembly; GUI search, navigation, and MCP expose investigation workflows. README capabilities fill in product branches not represented in the sampled excerpts, so some subsystem links are documented capabilities rather than verified call sites.
Main entry points: ui.rs Desktop UI · engine.rs Engine facade · native_engine.rs Native DEX engine · streaming.rs Streaming search
Components 22
App entry
- App and CLI
src/main.rs - Desktop UI
src/ui.rs
DEX engine
- Engine facade
src/engine.rs - Native DEX engine
src/native_engine.rs - DEX parser
src/native_dex.rs - Java reconstruction
src/native_java/mod.rs - DEX disassembly
src/native_disassembly.rs
Code investigation
- Streaming search
src/search/streaming.rs - Search index
src/search_index.rs - Code navigation
src/navigation.rs - Usages and calls
src/usages.rs - Call graph
src/call_graph.rs
APK inspection
- Manifest inspection
src/apk.rs - Resource inspection
src/native_resources.rs - File export
src/export.rs
User interfaces
- Code viewer
src/code_view.rs - MCP server
src/mcp.rs - Plugin protocol
src/plugin.rs - Workflow settings
src/settings.rs
Other components
- Engineer
- MCP assistant
- APK / DEX
Connections 23
- Engineer → Desktop UI: opens project
- Engineer → App and CLI: runs CLI
- APK / DEX → Engine facade: opens APK/DEX
- App and CLI → Desktop UI: launches GUI
- Desktop UI → Engine facade: requests decompilation
- Engine facade → Native DEX engine: delegates operations
- Native DEX engine → DEX parser: parses DEX
- Native DEX engine → Java reconstruction: reconstructs source
- Native DEX engine → DEX disassembly: renders fallback
- Desktop UI → Streaming search: starts searches
- Streaming search → Engine facade: fetches source
- Streaming search → Search index: checks cached results
- Desktop UI → Code navigation: navigates declarations
- Desktop UI → Usages and calls: finds references
- Desktop UI → Call graph: explores calls
- Desktop UI → Manifest inspection: inspects manifest
- Desktop UI → Resource inspection: inspects resources
- Desktop UI → File export: exports files
- Desktop UI → Code viewer: displays code
- Desktop UI → Workflow settings: configures workflow
- MCP assistant → MCP server: sends requests
- MCP server → Engine facade: inspects project
- Desktop UI → Plugin protocol: uses optional protocol