How bin220797/dsha works
DSHA is an Android launcher that packages and manages a Linux/DSH environment, then exposes it through a mobile web UI, terminal, and optional LAN access. The primary workflow is configure, install or verify the environment, start DSH, and use its web interface. Separate branches cover device-control bridges, plugins and updates, backup/restore, and emergency recovery. The README documents these capabilities; sampled source confirms the install pipeline, storage maintenance, update state handling, LAN proxy, and recovery service, but not every connection between them.
Main entry points: MainActivity.java Launcher UI · HarnessController.java Harness controller · InstallFragment.java Install screen · InstallPipeline.java Install pipeline
Components 26
User workflow
- Launcher UI
app/src/main/java/com/deepseekharness/app/ui/MainActivity.java - Configuration
app/src/main/java/com/deepseekharness/app/ui/ConfigFragment.java - Install screen
app/src/main/java/com/deepseekharness/app/ui/InstallFragment.java
Environment runtime
- Install pipeline
app/src/main/java/com/deepseekharness/app/runtime/InstallPipeline.java - Harness controller
app/src/main/java/com/deepseekharness/app/core/HarnessController.java - Container runtime
app/src/main/java/com/deepseekharness/app/runtime/ContainerRuntime.java - Runtime tasks
app/src/main/java/com/deepseekharness/app/core/RuntimeTasks.java - Terminal session
app/src/main/java/com/deepseekharness/app/core/TerminalSessionOwner.java - Plugin repository
app/src/main/java/com/deepseekharness/app/core/PluginRepository.java - Update engine
app/src/main/java/com/deepseekharness/app/core/UpdateEngine.java
Web and device access
- Web process manager
app/src/main/java/com/deepseekharness/app/runtime/WebProcessManager.java - Web preview
app/src/main/java/com/deepseekharness/app/ui/WebPreviewActivity.java - LAN proxy
app/src/main/java/com/deepseekharness/app/LanProxyService.java - Device bridge
app/src/main/java/com/deepseekharness/app/DeviceBridgeService.java - ADB bridge
app/src/main/java/com/deepseekharness/app/bridge/AdbBridge.java
Data and recovery
- Backup manager
app/src/main/java/com/deepseekharness/app/BackupManager.java - Backup jobs
app/src/main/java/com/deepseekharness/app/backup/NativeBackupJobs.java - User data
app/src/main/java/com/deepseekharness/app/backup/UserDataLayout.java - Storage maintenance
app/src/main/java/com/deepseekharness/app/ui/StorageActivity.java - Storage service
app/src/main/java/com/deepseekharness/app/backup/StorageMaintenance.java - Recovery screen
app/src/main/java/com/deepseekharness/app/ui/RecoveryActivity.java - Recovery controller
app/src/main/java/com/deepseekharness/app/recovery/RecoveryController.java - Recovery service
app/src/main/java/com/deepseekharness/app/recovery/RecoveryService.java
Other components
- User
- Release services
- LAN browser
Connections 26
- User → Launcher UI: opens
- Launcher UI → Configuration: configures
- Launcher UI → Install screen: starts install
- Install screen → Install pipeline: runs checks
- Install pipeline → Container runtime: probes runtime
- Launcher UI → Harness controller: starts DSH
- Harness controller → Runtime tasks: dispatches tasks
- Runtime tasks → Container runtime: runs commands
- User → Terminal session: opens terminal
- Harness controller → Web process manager: manages web
- User → Web preview: opens web UI
- LAN browser → LAN proxy: sends requests
- LAN proxy → Web process manager: forwards requests
- Harness controller → Device bridge: enables bridge
- Device bridge → ADB bridge: uses ADB
- User → Plugin repository: manages plugins
- User → Update engine: checks updates
- Update engine → Release services: downloads releases
- User → Backup manager: requests backup
- Backup manager → Backup jobs: runs jobs
- Backup jobs → User data: reads and writes
- User → Storage maintenance: reviews storage
- Storage maintenance → Storage service: inspects or cleans
- User → Recovery screen: opens recovery
- Recovery screen → Recovery controller: controls recovery
- Recovery service → Recovery controller: checks state