How xodiosx/xodos works
XoDos is an Android terminal and desktop-emulation app combining Termux, an X server, and floating touch controls. The documented user flow is to install the XoDos system from Settings, then launch it and use Linux or Windows applications and games. The repository tree supports mapping the Android terminal/shell runtime, native X server, controller UI, and shortcut integrations. README-described guest operating systems, graphics drivers, and compatibility layers are grouped as a guest stack; their implementation is not shown in the sampled files.
Main entry points: TermuxActivity.java Termux activity · FloatBallMenuClient.java Floating menu client · TermuxService.java Termux service · RunCommandService.java Command service
Components 19
Android app
- Termux activity
app/src/main/java/com/termux/app/TermuxActivity.java - Settings UI
app/src/main/java/com/termux/app/activities/SettingsActivity.java - System installer
app/src/main/java/com/termux/app/TermuxInstaller.java - File manager
app/src/main/java/com/termux/app/XoDosFileManager.java
Terminal runtime
- Bootstrap support
termux-shared/src/main/java/com/termux/shared/termux/TermuxBootstrap.java - Termux service
app/src/main/java/com/termux/app/TermuxService.java - Shell manager
termux-shared/src/main/java/com/termux/shared/termux/shell/TermuxShellManager.java - Terminal session
termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java - Terminal emulator
terminal-emulator/src/main/java/com/termux/terminal/TerminalEmulator.java - Terminal view
terminal-view/src/main/java/com/termux/view/TerminalView.java
Desktop and controls
- Native X server
termux-x11/src/main/cpp/xserver - Input controller UI
termux-x11/src/main/java/com/termux/x11/controller/InputControllerActivity.java - Controller bindings
termux-x11/src/main/java/com/termux/x11/controller - Floating menu client
app/src/main/java/com/termux/app/terminal/FloatBallMenuClient.java - Floating menu manager
float-ball/src/main/java/com/termux/floatball/FloatBallManager.java
App integrations
- Command service
app/src/main/java/com/termux/app/RunCommandService.java - Shortcut controls
wid/src/main/java/com/termux/widget/TermuxWidgetControlsProviderService.java
Other components
- User
- Linux and Wine guest
Connections 20
- User → Settings UI: opens install
- Settings UI → System installer: starts install
- System installer → Bootstrap support: uses bootstrap
- User → Termux activity: launches app
- Termux activity → Termux service: starts sessions
- Termux service → Shell manager: manages shells
- Shell manager → Terminal session: tracks sessions
- Terminal session → Terminal emulator: runs terminal
- Termux activity → Terminal view: displays terminal
- Terminal view → Terminal emulator: renders state
- Linux and Wine guest → Native X server: displays desktop
- User → Input controller UI: configures controls
- Input controller UI → Controller bindings: loads and saves
- Termux activity → Floating menu client: sets up controls
- Floating menu client → Floating menu manager: configures menu
- Floating menu client → File manager: opens files
- User → Command service: requests command
- Command service → Termux service: dispatches execution
- User → Shortcut controls: uses shortcuts
- Shortcut controls → Command service: runs shortcut