目前最新版本是 v1.1.2,兼容 Android 9.0 及以上、arm64 架构的设备。
技术方案
Podroid 的实现思路并不复杂:QEMU 起一个轻量级 Alpine Linux 虚拟机,虚拟机里跑 Podman 作为容器运行时。
具体来看:
- QEMU TCG:ARM64 原生虚拟化,虚拟机直接跑在设备 CPU 上,不是纯模拟
- Alpine Linux:轻量级发行版,基础系统只有 30MB 左右,启动快、占用低
- Podman:Docker 兼容的容器运行时,支持 rootless 模式,安全性好
- overlayfs
启动流程大致是:QEMU 加载内核和 initramfs → 挂载持久化存储 → 配置网络和容器服务 → 终端连接。整个过程 20 秒左右。
能做什么
容器操作
Podman 的命令基本都能用,比如:
podman run --rm alpine echo hello podman run --rm -it alpine sh podman run -d -p 8080:80 nginx
镜像管理、卷挂载、网络配置这些标准功能都支持。
网络
虚拟机通过 QEMU SLIRP 上网,IP 是 10.0.2.15。项目还支持端口转发,可以把容器服务暴露给 Android 设备使用。运行时能动态添加或删除转发规则,不用重启虚拟机。常用服务(Pi-hole、Nginx、Gitea、Grafana)有一键配置选项。SSH 服务也内置了,端口 9922。
终端体验
集成了 Termux 的终端模拟器。颜色主题有 114 种,字体支持 JetBrains Mono、Fira Code、Cascadia Code 等 13 种编程字体。完整 PTY 支持,作业控制、信号处理都没问题。vim、btop、nano 这类工具会根据键盘状态自动调整显示区域。快捷键覆盖 ESC、TAB、CTRL、ALT(粘滞模式)、方向键、F1-F12 以及常用符号。
存储
持久化存储 2GB 到 64GB 可选。还能通过 virtio-9p 把 Android 的 Downloads 文件夹挂载进来,方便宿主机和虚拟机之间传文件。
系统要求
项目针对 Google Pixel 系列做了兼容性优化,其他主流机型一般也能正常运行。
怎么上手
如果想自己编译源码,需要 Docker 和 Android NDK 环境。官方提供了三步构建脚本:先编译虚拟机内核和 initramfs,再编译 QEMU 和终端桥接程序,最后编译 APK。有兴趣的可以看 GitHub 上的 CONTRIBUTING.md。
适合谁用
这个项目对以下场景有一定价值:
- 开发者
- 边缘部署在手机上跑 Pi-hole 拦截广告、或者 Nginx 做反向代理
- 学习用途
- 环境隔离
基本信息
总体来看,Podroid 把桌面端成熟的虚拟化和容器技术迁移到了 Android 上,对于有移动端容器需求的用户是一个可用的选择。