Podroid запускает Linux-контейнеры на Android без root
Podroid запускает полноценный Podman на Android-телефоне без root — через QEMU и Alpine Linux. Работает на любом ARM64-устройстве, 686 звёзд на GitHub.
Новости TprogerAndroid умеет запускать Linux-терминал с виртуализацией — но только на Pixel и части устройств с Exynos. Для остальных телефонов альтернатив не было. Podroid решает эту проблему: приложение запускает полноценный контейнерный рантайм Podman на любом ARM64-устройстве с Android 8.0+, без root и без Termux.
Проект набрал 686 звёзд на GitHub и попал на главную Hacker News.
Ключевые выводы
- Podroid запускает Linux-контейнеры на Android без root — через QEMU TCG и Alpine Linux VM
- Встроенный Podman: docker-совместимый рантайм с персистентным хранилищем
- Работает на любом ARM64-устройстве с Android 8.0+ — не требует Pixel или KVM
- Порт-форвардинг, SSH, пресеты для Pi-hole, Nginx, Gitea, Grafana
- Open source под GPL v2, один APK без внешних зависимостей
Зачем это нужно
Встроенный Linux-терминал Android (из Developer Settings) использует аппаратную виртуализацию KVM — и поэтому работает только на Pixel. Формально его поддерживают и некоторые устройства с Exynos, но Samsung часто блокирует функцию через Knox. На Snapdragon-чипах (а это большинство Android-телефонов) терминал недоступен из-за отсутствия поддержки non-protected VM.
Podroid обходит это ограничение за счёт программной эмуляции через QEMU TCG. Это медленнее, чем KVM, но работает везде. Для задач вроде запуска скриптов, Pi-hole, лёгкого веб-сервера или SSH-туннеля производительности достаточно.
Как это работает
Podroid поднимает лёгкую виртуальную машину Alpine Linux через QEMU TCG (без аппаратной виртуализации KVM). Внутри VM работает Podman — docker-совместимый контейнерный рантайм с rootless-архитектурой по умолчанию.
При загрузке QEMU монтирует Linux-ядро и initramfs. Двухфазный init поднимает персистентный ext4-диск как overlayfs — всё, что вы установите или скачаете, сохраняется между перезапусками.
Что внутри
Контейнерный рантайм. Podman с crun, netavark и slirp4netns. Rootless по умолчанию — без демона с root-привилегиями. Контейнеры запускаются одной командой:
Терминал. Полная VT100/xterm-эмуляция на базе Termux. Настоящий PTY с поддержкой job control, сигналов и escape-последовательностей. 114 цветовых тем (Dracula, Nord, Solarized, Tokyo Night, Catppuccin, Gruvbox), 13 шрифтов (JetBrains Mono, Fira Code, Cascadia Code), поддержка мыши для TUI-приложений — btop, htop, mc, vim.
Сеть. Интернет из коробки через QEMU SLIRP. Порт-форвардинг с горячим добавлением через QMP — можно пробросить порты VM на Android-устройство прямо во время работы. Готовые пресеты для Pi-hole, Nginx, Gitea и Grafana. Встроенный SSH на порту 9922.
Хранилище. Размер диска на выбор: 2, 4, 8, 16, 32 или 64 ГБ. Папка Downloads с Android монтируется в VM через virtio-9p.
Требования и установка
- ARM64-устройство (большинство телефонов с 2018 года)
- Android 8.0+ (API 26)
- ~150 МБ для приложения + выбранный размер диска VM
Установка — один APK из GitHub Releases. Никаких внешних зависимостей, Termux не нужен. Открыть приложение → нажать Start VM → подождать ~20 секунд → Open Terminal.
Часто задаваемые вопросы
Что такое Podroid?
Podroid — open-source Android-приложение, которое запускает Linux-контейнеры через Podman внутри лёгкой Alpine Linux VM. Работает без root, без Termux и без аппаратной виртуализации — использует QEMU TCG.
Чем Podroid отличается от встроенного Linux-терминала Android?
Встроенный терминал использует KVM и работает только на Pixel (на Samsung Exynos часто заблокирован Knox). Podroid использует программную эмуляцию QEMU TCG и работает на любом ARM64-устройстве с Android 8.0+.
Можно ли запускать Docker-образы?
Podroid использует Podman, который совместим с Docker-образами (OCI-стандарт). Команда podman run работает аналогично docker run.
Данные сохраняются после перезагрузки?
Да. Podroid использует персистентный ext4-диск с overlayfs — установленные пакеты, конфигурации и контейнерные образы сохраняются между перезапусками.
Podroid — не замена полноценному серверу, но для локальной разработки, self-hosted сервисов и экспериментов на ходу — рабочий вариант. Исходный код — на GitHub под лицензией GPL v2.