1. Overview & Architecture

Dedroid is an open-source terminal application crafted by StrangeInfinity that installs and runs a modern Debian 13 (Trixie) rootfs on Android using rootless PRoot virtualization.

Unlike standard Android chroots or virtual machines that require root access or heavy hardware emulation (QEMU), Dedroid intercepts Linux system calls using ptrace through PRoot. This enables standard Debian ELF binaries to execute directly on the host ARM or x86 processor at native speeds while presenting an isolated Unix root filesystem.

The Android host client is engineered entirely in native Kotlin leveraging Google's modern Android Jetpack architecture, Kotlin Coroutines for non-blocking I/O with the terminal pseudo-terminal (PTY) daemon, and Android Foreground Services to keep background compilation tasks alive.

Android Device Userspace ├── Dedroid Terminal Activity (Kotlin + Jetpack) ├── TerminalView & Emulator (libvterm-compatible) ├── TerminalService (Android Foreground Service) └── Native PRoot Bridge (proot-distro runtime) └── Debian 13 (Trixie) Userspace ├── /bin, /usr, /etc, /var ├── apt package manager (dpkg) ├── /sdcard binding (internal storage) └── /etc/sudoers (passwordless bridge)

2. Installation & Getting Started

Dedroid is distributed as a standalone, self-contained signed APK. It bundles the compressed Debian 13 rootfs and PRoot binaries so you can set up offline without needing initial GitHub or Git access.

Download Link

Download the official package directly:
dedroid-signed.apk (First Release)

First-Time Setup Wizard

When you launch Dedroid for the first time, the interactive Setup Wizard prompts you for:

  • Username: Your desired Linux login name (e.g. ayush, developer).
  • Display Name: Your full user identity name for Git and system logs.
  • Timezone: Automatically detected from your phone (e.g. Asia/Kolkata, UTC, America/New_York).

The wizard automatically provisions /etc/passwd, /etc/shadow, /etc/group, and generates your home directory at /home/<username>.

3. Coding Toolbar Reference

Typing code on standard soft keyboards can be frustrating because brackets, pipes, and control modifiers are buried behind multiple submenu taps. Dedroid includes a dedicated hardware-style extra keys row:

[ESC] [TAB] [CTRL] [ALT] { } ( ) < > ; | / \ # ~ [↑] [↓] [←] [→]

Toolbar Shortcuts

  • CTRL + C: Sends SIGINT to terminate running processes.
  • CTRL + D: Sends EOF to exit interactive shells.
  • CTRL + Z: Sends SIGTSTP to background the foreground task.
  • TAB: Triggers Bash autocompletion for files, paths, and binaries.
  • <> Button (Top Bar): Toggles between Full Coding Mode (brackets + pipes) and Compact Navigation Mode (modifier + arrows).

4. Android /sdcard Storage Access

Dedroid bridges Debian directly with your Android device's primary storage:

# Access Android internal shared storage directly: cd /sdcard # Or via your home directory shortcut: cd ~/sdcard # View downloads and document files: ls -la /sdcard/Download

Permission Check: If storage is blocked, tap the folder icon on the top action bar to prompt Android's runtime storage permissions dialog.

5. Passwordless Sudo & PAM Bridge

Dedroid provides full administrative capability without requiring device root:

# Run administrative commands with sudo without typing passwords: sudo apt update sudo apt upgrade -y sudo apt install build-essential git python3

The custom PAM bridge configures /etc/sudoers.d/010_dedroid-nopasswd granting ALL=(ALL) NOPASSWD: ALL to your user account while remaining contained inside the PRoot sandbox.

6. Package Management with APT

Because Dedroid is genuine Debian 13 (Trixie), you have access to the entire Debian package ecosystem:

# Install developer compilers & languages: sudo apt install -y gcc g++ clang make cmake rustc cargo golang nodejs npm # Install text editors & productivity tools: sudo apt install -y neovim tmux htop zsh curl wget ripgrep jq # Test Python virtual environment: sudo apt install -y python3-full python3-pip python3-venv python3 -m venv test-env source test-env/bin/activate

7. Background Execution & Notification

Android aggressively terminates background tasks unless an active foreground service is bound. Dedroid maintains a persistent TerminalService notification with:

  • Active session counter (e.g. 2 sessions active)
  • Quick re-open intent on notification click
  • One-tap "Close Session" button in notification actions to cleanly terminate background jobs

8. Building Dedroid from Source

You can compile Dedroid from source using Android Studio or the command line Gradle wrapper:

# 1. Clone the repository: git clone https://github.com/dev-hints/Dedroid.git cd Dedroid # 2. Build Debug APK: ./gradlew assembleDebug # 3. Locate compiled APK: ls app/build/outputs/apk/debug/app-debug.apk

9. Troubleshooting & FAQ

Permission Denied on /sdcard

Android 11+ enforces Scoped Storage. Tap the folder icon in the top toolbar to grant "All files access" (MANAGE_EXTERNAL_STORAGE) to Dedroid.

Process terminated with Signal 9

On aggressive Android ROMs (MIUI, ColorOS, OneUI), the OEM "phantom process killer" may terminate memory-intensive builds. Disable battery optimization for Dedroid in Android System Settings > Apps > Dedroid > Battery > Unrestricted.