Podroid: Run Linux Containers and Desktop on Android Without Root
Summary
Podroid is an innovative Android application that allows users to run Linux containers and a full Linux desktop environment directly on their phone, all without requiring root access. It leverages a custom Linux kernel, rootless Podman, and an in-app X11 viewer to provide a powerful and versatile Linux experience on Android 9+ devices. This project brings advanced containerization capabilities and a desktop interface to mobile users, opening up new possibilities for development and productivity.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Podroid is a groundbreaking Android application that brings the power of Linux containers and a full Linux desktop to your smartphone, entirely without requiring root access. Developed by ExTV, Podroid boots a standard Alpine 3.23 VM under QEMU, featuring a custom Linux 7.0.5 kernel specifically compiled with all necessary options for real containers. This means you get rootless Podman, Docker, and LXC out of the box, alongside an in-app X11 desktop for running GUI applications, all on stock Android 9+.
With Podroid, you can transform your Android device into a portable Linux workstation, capable of running complex containerized applications and even graphical interfaces, making it an invaluable tool for developers, system administrators, and anyone looking to extend the capabilities of their mobile device.
Installation
Getting started with Podroid is straightforward. Follow these simple steps to set up your Linux environment:
- Download the APK: Grab the latest APK from the Podroid Releases page.
- Start the VM: Open Podroid and tap "Start VM". The virtual machine typically boots within 6 to 30 seconds.
- Open Terminal: Once the status changes to "Ready", tap "Open Terminal" to access your Linux command line.
Examples
Once your VM is running, you can immediately start using Podman for containers or launch GUI applications:
Running Containers
# Run a simple Alpine container
podman run --rm alpine echo hello
# Run Nginx and expose it on port 8080 (reachable from Android at 127.0.0.1:8080)
podman run -d -p 8080:80 nginx
Running GUI Applications
To run GUI apps, tap the monitor icon in the terminal to open the X11 viewer.
# Install Firefox
apk add firefox
# Launch Firefox
firefox &
The default login for the VM is root / podroid.
Why Use Podroid
Podroid offers a compelling set of features that make it stand out:
- Rootless Operation: Run a full Linux environment and containers without compromising your Android device's security by requiring root access.
- Custom Linux Kernel: Features a custom-built Linux 7.0.5 kernel with extensive container support, ensuring compatibility and performance for various workloads.
- Comprehensive Container Tools: Podman, Docker, and LXC are pre-installed and configured for rootless operation.
- In-app X11 Viewer: Access a full Linux desktop with touch-to-mouse input, a soft keyboard, and PCM audio, enabling graphical applications directly on your phone.
- Highly Configurable VM: Adjust memory, CPU cores, persistent storage size, enable SSH, set up port forwards, and even fine-tune QEMU arguments directly from the app settings.
- Hardware Acceleration (pKVM): On supported Android devices (like Pixel 8/9/10), Podroid can leverage Google's pKVM via the Android Virtualization Framework (AVF) for near-native CPU performance, significantly reducing boot times and boosting container workload speeds.
- Persistent Storage: Your installations and configurations are saved across reboots thanks to a persistent ext4 overlay.
- Rich Theming and Fonts: Customize your terminal experience with 122 bundled color themes and 13 monospace fonts, with options to add your own.
Podroid provides a robust and flexible platform for anyone needing a powerful Linux environment on the go, without the complexities of traditional virtual machines or the security risks of rooting.
Links
- GitHub Repository: https://github.com/ExTV/Podroid
- Website: https://extv.github.io/Podroid/
- Releases: https://github.com/ExTV/Podroid/releases