Skip to content

arinadi/arinanoX

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

213 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± arinanoX

Your phone is a Linux workstation β€” ~30s to a working desktop, not 30 minutes of apt.


⚑ Quick Start

1. Install Termux + Extras

Install from F-Droid (NOT Play Store):

2. Install arinanoX APK

Download the latest APK from GitHub Releases and install it.

3. Open the app β†’ tap Install arinanoX

~30 seconds. The app downloads and sets up the prebuilt Debian 13 + XFCE image from GitHub Container Registry.

4. Tap Launch Desktop

Done. Full Linux desktop on your phone.

CLI fallback: You can also install via Termux terminal:

curl -sL https://raw.githubusercontent.com/arinadi/arinanoX/main/bootstrap.sh | bash
arinanox start

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  arinanoX APK (Flutter)             β”‚  ← Companion app: start/stop/terminal/snapshots
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Bash scripts (~/.arinanox/)        β”‚  ← Downloaded by bootstrap, updatable from app
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Proot container (ghcr.io)          β”‚  ← Prebuilt Debian 13 + XFCE image
β”‚  Built from image/Dockerfile        β”‚     CI-built, tagged, pushed to GHCR
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What's in the image

What Detail
OS Debian 13 (Trixie) ARM64
Desktop XFCE4 + Whisker Menu + PulseAudio tray
Browser Firefox ESR
Dev tools Git, Node.js 22 LTS, Python 3 (pip/venv/dev), GCC, Make, CMake
Theme Orchis-Dark Material Design + elementary-hidpi icons
Touch Single-click Thunar, large scrollbars, clipboard auto-sync
Terminal mousepad, ristretto, htop, tmux, OpenSSH
GPU virglrenderer auto-detect (3-tier: android β†’ angle-vulkan β†’ CPU)

GPU Acceleration (virglrenderer)

Auto-detected at launch:

1. android           β†’ virgl_test_server_android      (native GLES)
2. angle-vulkan-null β†’ virgl + ANGLE passthrough       (Vulkan GPUs)
3. CPU fallback      β†’ LIBGL_ALWAYS_SOFTWARE=1         (desktop only)

πŸ“± Companion App (Flutter)

Download APK from GitHub Releases.

Feature Description
πŸ“₯ Install Download and set up Debian 13 + XFCE (~30s, one tap)
🟒 Start/Stop One-tap launch or shutdown XFCE desktop
πŸ’» Terminal In-app proot shell with streaming output
🩺 Health Check Run doctor.sh to diagnose issues
πŸ“Έ Snapshot Instant user-home checkpoint (hardlinked)
πŸ”„ Update Scripts Download latest launchers + scripts from GitHub
πŸ“Š System Info GPU, RAM, storage, container size

The app uses Termux bash internally β€” all commands run in the correct environment with proper PATH, HOME, and library paths.

APK builds are CI-triggered manually (workflow_dispatch) β€” no spam on every commit.


πŸš€ CLI Usage

arinanox start        # Start desktop (PulseAudio β†’ X11 β†’ virgl β†’ XFCE)
arinanox stop         # Stop everything
arinanox status       # System overview + layered packages
arinanox doctor       # Full health-check
arinanox store        # APT Store GUI (install/search/upgrade)
arinanox snapshot     # Instant checkpoint (hardlinked, 3 retained)
arinanox install      # Apply packages from user-manifest.yaml
arinanox help         # All commands

πŸ“‹ Termux:API (inside proot)

Command Action
battery Battery % and health
clipget / clipset Android clipboard
vol-up / vol-down Media volume
bright 50 Brightness 0-100
toast "msg" Toast popup
notify "T" "B" Notification
speak "hello" Text-to-speech
speechlisten Speech-to-text
openurl / share Open / share in Android
whereami / wifi GPS / WiFi
photo / flash Camera / flashlight

πŸ›‘ Android 12+ Phantom Process Killer

Background processes get silently killed. Disable it:

  • Android 14+: Developer Options β†’ Disable child process restrictions
  • Android 12–13: adb shell settings put global settings_enable_monitor_phantom_procs false

⚠️ Limitations

Limitation Workaround
No root proot provides root-like environment, not real root
No systemd Start services manually
No GPU passthrough virglrenderer auto-detected (3-tier fallback)
ARM64 only QEMU user-mode for cross-arch (slow)
No native X11 Termux:X11 APK required
Docker containers Not possible (daemon needs kernel features proot lacks)

πŸ“‚ Repo Structure

arinanoX/
β”œβ”€β”€ app/                  ← πŸ“± Flutter app (APK) β€” primary entry point
β”‚   β”œβ”€β”€ lib/              ←    Dart: screens, state, services, theme
β”‚   └── android/          ←    Kotlin: shell executor, script updater
β”œβ”€β”€ bootstrap.sh          ← CLI fallback: curl | bash
β”œβ”€β”€ image/                ← 🎯 System definition (Dockerfile)
β”‚   β”œβ”€β”€ Dockerfile        ←    declarative: packages, configs, themes
β”‚   └── configs-target/   ←    XFCE, bash, GTK, autostart
β”œβ”€β”€ scripts/              ← setup, patch, status, doctor, snapshots
β”œβ”€β”€ launchers/             ← start/stop shortcuts
β”œβ”€β”€ docs/                  ← documentation
└── .github/workflows/     ← CI: build-image (manual), build-apk (manual)

πŸ“œ License

GPLv3 β€” see LICENSE.

About

πŸ“± Debian 13 desktop on Android. Termux + proot + XFCE. Declarative, atomic, touch-optimized.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages