How dedy45/gososmed-mobile-agent works
GoSosmed Mobile Agent connects a physical Android device to an automation server and executes remote commands through accessibility and integrated local ADB. The main workflow is WebSocket command dispatch → command interpretation → UI observation/action and verification → response; other documented capabilities include batch flows, media handling, device diagnostics, pairing, and local live video/control. Edges are limited to relationships supported by the README or shown source references and excerpts; unsampled subsystem links are omitted where their caller is not evidenced.
Main entry points: AgentCommand.kt Command Dispatcher · BatchFlowExecutor.kt Batch Flows · AgentWsClient.kt WebSocket Client · LocalWebServer.kt LAN Web Server
Components 21
Connection & Lifecycle
- Foreground Service
app/src/main/java/com/gososmed/agent/AgentForegroundService.kt - WebSocket Client
app/src/main/java/com/gososmed/agent/AgentWsClient.kt
UI Automation
- Command Dispatcher
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Accessibility Engine
app/src/main/java/com/gososmed/agent/AgentAccessibilityService.kt - UI Snapshots
app/src/main/java/com/gososmed/agent/SnapshotCollector.kt - Deterministic Resolver
app/src/main/java/com/gososmed/agent/DeterministicResolver.kt - Action Executor
app/src/main/java/com/gososmed/agent/NodeActionExecutor.kt - Transition Verification
app/src/main/java/com/gososmed/agent/ScreenTransitionVerifier.kt - Batch Flows
app/src/main/java/com/gososmed/agent/batch/BatchFlowExecutor.kt - Protocol v2
app/src/main/java/com/gososmed/agent/ProtocolV2.kt
Device Services
- ADB Pairing
app/src/main/java/com/gososmed/agent/privileged/AdbPairingController.kt - Privileged Shell
app/src/main/java/com/gososmed/agent/privileged/PrivilegedShell.kt - Media Staging
app/src/main/java/com/gososmed/agent/MediaStager.kt - Device Diagnostics
app/src/main/java/com/gososmed/agent/HealthReport.kt - Device Telemetry
app/src/main/java/com/gososmed/agent/DeviceTelemetryHelper.kt
Live Capture & Control
- Screen Capture
app/src/main/java/com/gososmed/agent/capture/CaptureService.kt - LAN Web Server
app/src/main/java/com/gososmed/agent/capture/LocalWebServer.kt - Remote Control
app/src/main/java/com/gososmed/agent/control/RemoteControlManager.kt - LAN Browser Viewer
tools/browser-viewer/js/app.js
Other components
- Automation Client
- Local Browser User
Connections 21
- Automation Client → WebSocket Client: sends commands
README.md - WebSocket Client → Command Dispatcher: dispatches
app/src/main/java/com/gososmed/agent/AgentWsClient.kt - Command Dispatcher → Accessibility Engine: uses
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → UI Snapshots: collects
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → Deterministic Resolver: resolves
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → Action Executor: executes
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → Transition Verification: verifies
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → Protocol v2: formats
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Batch Flows → Action Executor: executes
app/src/main/java/com/gososmed/agent/batch/BatchFlowExecutor.kt - Batch Flows → Deterministic Resolver: resolves
app/src/main/java/com/gososmed/agent/batch/BatchFlowExecutor.kt - Batch Flows → Transition Verification: verifies
app/src/main/java/com/gososmed/agent/batch/BatchFlowExecutor.kt - Foreground Service → WebSocket Client: starts
app/src/main/java/com/gososmed/agent/AgentForegroundService.kt - Foreground Service → ADB Pairing: bootstraps
app/src/main/java/com/gososmed/agent/AgentForegroundService.kt - ADB Pairing → Privileged Shell: configures
app/src/main/java/com/gososmed/agent/privileged/AdbPairingController.kt - Command Dispatcher → Media Staging: stages media
app/src/main/java/com/gososmed/agent/AgentCommand.kt - Command Dispatcher → Device Diagnostics: reports health
- Device Diagnostics → Device Telemetry: includes
- Screen Capture → LAN Web Server: broadcasts frames
app/src/main/java/com/gososmed/agent/capture/CaptureService.kt - LAN Web Server → Remote Control: routes input
app/src/main/java/com/gososmed/agent/capture/LocalWebServer.kt - Local Browser User → LAN Browser Viewer: views stream
README.md - LAN Browser Viewer → LAN Web Server: connects locally