How xodiosx/xodos-ark works
XoDos-Ark is an Android environment for installing and using Linux distributions and launching graphical guest applications through X11 or Wayland. The main user path is distro installation, shell access, desktop setup, then display-backend selection and launch. The graph also preserves terminal interaction, controller support, HUD and graphics options, and native runtime components. Source coverage is uneven: edges are limited to README statements and relationships visible in the supplied excerpts or SOURCE INDEX; unsampled subsystems are represented without guessed wiring.
Main entry points: DisplayOrchestrator.kt Display orchestrator · NativeBridge.kt Native runtime bridge · mod.rs Native Android runtime · ShellSessionClient.kt Shell session client
Components 23
Install and setup
- Install and setup UI
xodosark-app/app/src/main/java/app/xodos2/ui/setup/InstallScreen.kt - Native install coordinator
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/NativeInstallCoordinator.kt
Guest runtime
- Native runtime bridge
xodosark-app/app/src/main/java/app/xodos2/NativeBridge.kt - Guest rootfs and proot
xodosark-native/src/android/proot.rs - Rootfs fetching
xodosark-native/src/android/rootfs_fetch.rs - Native Android runtime
xodosark-native/src/android/mod.rs - Shell screen
xodosark-app/app/src/main/java/app/xodos2/ui/shell/ShellScreen.kt - Shell session client
xodosark-app/app/src/main/java/app/xodos2/shell/ShellSessionClient.kt - Terminal view
xodosark-app/app/src/main/java/com/termux/view/TerminalView.java - Android audio sinks
xodosark-audio/pulse-android/modules/module-sles-sink.c
Display and input
- Display orchestrator
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/DisplayOrchestrator.kt - X11 runtime
xodosark-app/app/src/main/java/app/xodos2/X11Runtime.kt - X11 server service
xodosark-app/app/src/main/java/com/termux/x11/X11ServerService.java - Wayland bridge
xodosark-app/app/src/main/java/app/xodos2/WaylandBridge.kt - Wayland surface and input
xodosark-app/app/src/main/java/app/xodos2/wayland/WaylandSurfaceView.kt - Embedded X11 surface
xodosark-app/app/src/main/java/app/xodos2/ui/x11/EmbeddedX11Surface.kt - Wayland compositor runtime
xodosark-wayland/src/compositor.c
App controls
- Environment options drawer
xodosark-app/app/src/main/java/app/xodos2/ui/drawer/pages/DrawerPages.kt - Graphics mode controls
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/GraphicsModeController.kt - Graphics driver manager
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/AdrenotoolsDriverManager.kt - Performance HUD
xodosark-app/app/src/main/java/com/termux/x11/HudService.java - Controller input profiles
xodosark-app/app/src/main/java/com/termux/x11/controller/inputcontrols/InputControlsManager.java
Other components
- Android user
Connections 23
- Android user → Install and setup UI: selects distro
README.md - Install and setup UI → Native install coordinator: starts install
- Native install coordinator → Native runtime bridge: invokes native
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/DisplayOrchestrator.kt - Native runtime bridge → Native Android runtime: calls runtime
- Native Android runtime → Guest rootfs and proot: delegates
xodosark-native/src/android/mod.rs - Native Android runtime → Rootfs fetching: fetches rootfs
xodosark-native/src/android/mod.rs - Android user → Shell screen: opens shell
README.md - Shell screen → Shell session client: uses session
- Shell session client → Native runtime bridge: calls bridge
xodosark-app/app/src/main/java/app/xodos2/shell/ShellSessionClient.kt - Shell session client → Terminal view: provides session
xodosark-app/app/src/main/java/app/xodos2/shell/ShellSessionClient.kt - Android user → Environment options drawer: chooses desktop
README.md - Environment options drawer → Display orchestrator: selects backend
- Display orchestrator → Native runtime bridge: calls bridge
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/DisplayOrchestrator.kt - Display orchestrator → Wayland bridge: calls bridge
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/DisplayOrchestrator.kt - Display orchestrator → X11 runtime: configures X11
- X11 runtime → X11 server service: starts service
xodosark-app/app/src/main/java/app/xodos2/X11Runtime.kt - Wayland bridge → Wayland surface and input: handles surface
- Wayland compositor runtime → Wayland surface and input: serves display
- Android user → Controller input profiles: configures controls
- Android user → Graphics mode controls: chooses graphics
- Graphics mode controls → Graphics driver manager: uses drivers
xodosark-app/app/src/main/java/app/xodos2/ui/runtime/AdrenotoolsDriverManager.kt - Android user → Performance HUD: views HUD
- Android user → Android audio sinks: plays guest audio