How bilieebiliee1-design/somcp works
SOMCP is an Android-hosted local shared-object reverse-engineering MCP server. A client sends Streamable HTTP tool requests to the foreground-hosted server; tools open SOs and perform ELF/Rizin analysis, optional dynamic or Flutter analysis, edit sessions, and build/export. The Android UI manages service and settings, while optional AI, tunnel, and APK-bridge capabilities extend the product. The graph follows documented capabilities and sampled references; some implementation wiring is unsampled, so those connections are omitted or marked unverified.
Main entry points: EngineRuntime.kt Engine runtime · ToolCatalog.kt Tool catalog · McpForegroundService.kt Foreground service · DynamicAnalysisService.kt Dynamic analysis
Components 24
Android app
- Android UI
app/src/main/java/com/soreverse/mcp/MainActivity.kt - Settings store
app/src/main/java/com/soreverse/mcp/core/SettingsStore.kt - Foreground service
app/src/main/java/com/soreverse/mcp/service/McpForegroundService.kt
MCP access
- MCP HTTP server
app/src/main/java/com/soreverse/mcp/mcp/McpHttpServer.kt - Tool catalog
app/src/main/java/com/soreverse/mcp/mcp/ToolCatalog.kt
SO analysis
- Engine provider
app/src/main/java/com/soreverse/mcp/core/EngineProvider.kt - Engine runtime
app/src/main/java/com/soreverse/mcp/engine/EngineRuntime.kt - SO analysis
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeRead.kt - Native backends
app/src/main/java/com/soreverse/mcp/nativecore/NativeEngine.kt - LIEF backend
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBackendLief.kt - Rizin backend
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBackendRizin.kt
Editing and export
- Edit sessions
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeEditSession.kt - Build and export
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBuild.kt
Optional capabilities
- Dynamic analysis
app/src/main/java/com/soreverse/mcp/core/DynamicAnalysisService.kt - Unidbg emulator
app/src/main/java/com/soreverse/mcp/engine/UnidbgEmulator.kt - Frida bridge
app/src/main/java/com/soreverse/mcp/engine/FridaBridge.kt - Flutter Blutter
app/src/main/java/com/soreverse/mcp/engine/BlutterCoordinator.kt - AI deep analysis
app/src/main/java/com/soreverse/mcp/core/DeepAnalysisService.kt - AI agent engine
app/src/main/java/com/soreverse/mcp/core/RikkaAgentEngine.kt - Cloudflare tunnel
app/src/main/java/com/soreverse/mcp/core/CloudflareTunnelManager.kt - APK MCP bridge
app/src/main/java/com/soreverse/mcp/core/ApkMcpBridge.kt
Other components
- Operator
- MCP client
- AI provider
Connections 25
- Operator → Android UI: configures
- Android UI → Foreground service: starts
app/src/main/java/com/soreverse/mcp/service/McpForegroundService.kt - Foreground service → MCP HTTP server: starts
app/src/main/java/com/soreverse/mcp/service/McpForegroundService.kt - Foreground service → Settings store: reads
app/src/main/java/com/soreverse/mcp/service/McpForegroundService.kt - MCP client → MCP HTTP server: sends HTTP
- MCP HTTP server → Tool catalog: dispatches
- Tool catalog → Engine runtime: invokes tools
- Engine provider → Engine runtime: provides engine
app/src/main/java/com/soreverse/mcp/core/EngineProvider.kt - Engine runtime → SO analysis: delegates reads
app/src/main/java/com/soreverse/mcp/engine/EngineRuntime.kt - Engine runtime → LIEF backend: delegates ELF work
app/src/main/java/com/soreverse/mcp/engine/EngineRuntime.kt - Engine runtime → Rizin backend: delegates analysis
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBackendRizin.kt - Rizin backend → Native backends: uses backend
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBackendRizin.kt - LIEF backend → Native backends: uses backend
app/src/main/java/com/soreverse/mcp/engine/EngineRuntimeBackendLief.kt - Engine runtime → Edit sessions: manages edits
app/src/main/java/com/soreverse/mcp/engine/EngineRuntime.kt - Tool catalog → Build and export: exports builds
- Tool catalog → Dynamic analysis: dispatches dynamic
app/src/main/java/com/soreverse/mcp/core/DynamicAnalysisService.kt - Dynamic analysis → AI agent engine: analyzes evidence
app/src/main/java/com/soreverse/mcp/core/DynamicAnalysisService.kt - Dynamic analysis → Unidbg emulator: uses emulator
- Dynamic analysis → Frida bridge: uses hooks
- Engine runtime → Flutter Blutter: coordinates Flutter
app/src/main/java/com/soreverse/mcp/engine/EngineRuntime.kt - Tool catalog → AI deep analysis: offers analysis
app/src/main/java/com/soreverse/mcp/core/DeepAnalysisService.kt - AI deep analysis → AI agent engine: runs agent
app/src/main/java/com/soreverse/mcp/core/DeepAnalysisService.kt - AI agent engine → AI provider: requests analysis
app/src/main/java/com/soreverse/mcp/core/RikkaAgentEngine.kt - Foreground service → Cloudflare tunnel: starts tunnel
app/src/main/java/com/soreverse/mcp/service/McpForegroundService.kt - Tool catalog → APK MCP bridge: bridges tools