English | 简体中文
What is this? DroidVM is an Android virtual machine manager that runs on the phone's own hardware hypervisor — Qualcomm Gunyah, MediaTek GenieZone or Linux KVM — giving you near-native performance. No cloud, no emulation on top of a full OS; the phone itself is the VM host.
Start with DroidVM — the Android app that manages everything.
┌────────────────────────────────────────────────────────────────┐
│ Your Android │
│ │
│ DroidVM (app / manager) │
│ ├─ crosvm ──────────────── the VMM (this org's fork) │
│ │ │ │
│ │ ├─ virtio devices · gfxstream / virglrenderer · … │
│ │ └─ EDK2 firmware (edk2-gunyah) / direct kernel │
│ ├─ host kernel modules (Gunyah GuestAccept, hugepages…) │
│ └─ network: bridge · vswitch · pbridge │
│ │ │
│ ┌────────────────┼──────────────────────────────────────────┐ │
│ │ Gunyah / GenieZone / KVM hardware hypervisor │ │
│ └────────────────┴──────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────┴──────────────────────────────────────────┐ │
│ │ Guest — Linux desktop, Windows on ARM, BSD … │ │
│ │ guest additions · virtio-gpu (mesa) · turnip │ │
│ └───────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
- Real hypervisor, not a container. VMs run on the SoC's hardware
virtualization layer (
/dev/gunyah,/dev/gzvmor/dev/kvm). - Two VMM backends — crosvm and QEMU — with UEFI boot for Linux and Windows on ARM.
- GPU acceleration: VirGL, GfxStream and 2D software rendering; built-in VNC client, native display, and external-screen casting (Presentation API).
- Full storage & disk story: raw / qcow2 / vhdx / vdi / vmdk, snapshots,
incremental images, LXC import,
convert/resize/clone; share folders with the host via VirtFS (9p / virtiofs). - Network: virtual bridge with NAT / DHCP / STP / VLAN / IPv4+IPv6 and port forwarding; host-side pbridge shares one upstream MAC across many VMs.
.vmpkgmigration — export a whole VM (disk + boot files + network) to a single file and import it on another device.
Device requirements: Android 13+, root (Magisk / KernelSU / APatch), ARM64 with firmware+EL2 virtualization enabled — Snapdragon 8 Gen 3 / 8 Elite (Gunyah), Dimensity 9000+ (GenieZone), or a device exposing
/dev/kvm.
Every component below is a separate repo in this organization. Unless noted, its
droidvmbranch is the stable line used by the end-to-end build.
| Repo | 是什么 |
|---|---|
| DroidVM | 主 Android 应用(虚拟机管理器;默认分支 master),入口仓库 |
| DroidVM-Prebuilt-Root | 原生 prebuilt 产物的构建流水线(daemon、运行时、打包) |
| DroidVM-Prebuilts | 发布 DroidVM 应用随附的原生二进制(由 Prebuilt-Root 构建并推送) |
| droidvm-meta-repo | 端到端构建工作区:1_~9_ 脚本把上面所有组件串起来,产出 APK 与各产物 |
| Droid-VM.github.io | 官方文档站(VitePress)→ droid-vm.github.io |
| Repo | 是什么 |
|---|---|
| crosvm | AOSP crosvm 的 DroidVM fork —— 主要的虚拟化后端 |
| Virtualization | AOSP packages/modules/Virtualization 的 fork(Android 虚拟化框架 + 微droid) |
| edk2-gunyah | 面向 Qualcomm Gunyah 的 UEFI 固件:在 Gunyah 上跑受保护虚拟机 |
| linux-boot-extractor | 纯用户态从磁盘镜像中提取 vmlinuz / initramfs / 引导配置(crosvm-on-gunyah 无 UEFI 路径时的直接内核引导) |
| win11-arm64-image-builder | 一键把 Win11 ARM64 ISO + 自签 gunyah/virtio 驱动做成可直接在 DroidVM 开机的 qcow2 |
| Repo | 是什么 |
|---|---|
| gfxstream | 用于 DroidVM 的 gfxstream:Gunyah GuestAccept blob 路径 + host-visible arena |
| virglrenderer | 用于 DroidVM 的 virglrenderer:KGSL 原生上下文后端(guest 内 turnip over vdrm) |
| mesa | guest 侧 Mesa 补丁(配合 virgl / gfxstream / venus 使用) |
| mesa-cross | DroidVM guest mesa .deb 的交叉构建配方 + GitHub Actions(gfxstream / drm2kgsl / venus) |
| turnip | mesa-tu8(gen8 / A8xx KGSL Turnip)fork,携带 DroidVM 本地 kgsl 修复(已归档,由 Banners-Turnip 取代) |
| Banners-Turnip | 自动化的最新 Mesa Turnip Vulkan 驱动构建,为 AdrenoTools 打包(host 端 KGSL turnip 的构建来源) |
| virtio-media | AOSP platform/external/virtio-media fork(virtio-media 设备 crate + guest 驱动;稳定分支 droidvm) |
| v4l2r | 用于 guest 媒体/摄像头直通探索的 V4L2 Rust 绑定 |
| Repo | 是什么 |
|---|---|
| gh-hugepage-reserve | Gunyah Hugepage Reserve 内核模块(向受保护虚拟机让出大页) |
| gunyah_host_mod | DroidVM GuestAccept 内存共享所需的 host 内核模块(按 GKI KMI 版本组织) |
| droidvm-guest-additions | Guest 内核模块:gunyah_guest + 打过补丁的 virtio_gpu |
| android-crates-io | Android Rust 生态 crate 镜像/fork |
| zstd | AOSP platform/external/zstd fork(DroidVM 的 libzstd 可见性修复) |
| Repo | 是什么 |
|---|---|
| gunyah-guest-drivers-windows | 面向 Gunyah 受保护虚拟机的 Windows paravirtualized 驱动(rdmapool、viostor/NetKVM 等的 restricted-DMA-pool 适配) |
| Repo | 是什么 |
|---|---|
| pseudo-bridge-rs | pbridge:把单一上游 MAC(如 Wi-Fi STA)在 L2 共享给多个 VM/guest(仿 macOS pseudo-bridge / MAC-NAT) |
| gvisor-vswitch | 基于 gVisor 的虚拟交换机 |
| bridgedhcp | 桥接网络的 DHCP 服务 |
| netbox | Rust netlink 网络配置工具(创建 tap / bridge / 路由规则,替代 iproute2 子集) |
| libvncserver | 面向 Android(crosvm)的 VNC server |
| Repo | 是什么 |
|---|---|
| crosvm-minimal-manifest | crosvm 最小 manifest(soong 构建用) |
| crosvm-test | crosvm 构建测试 |
| 链接 | 地址 |
|---|---|
| 📖 使用文档 | https://droid-vm.github.io/ |
| 🚀 主仓库 / Releases | https://github.com/Droid-VM/DroidVM |
| 🏷️ Wiki | https://github.com/Droid-VM/DroidVM/wiki |
| 💬 Discussions | https://github.com/Droid-VM/DroidVM/discussions |
| 🌍 主站(DroidVM 网站) | https://droidvm.org/(Droid-VM.github.io 的 301 指向) |
最省心的方式是用 droidvm-meta-repo 的流水线(1_→9_ 各阶段脚本把本组织所有组件串起来)。想单独构建,对每个组件:
git clone -b droidvm https://github.com/Droid-VM/<repo>.git # 各组件走 droidvm 稳定分支
# 应用本体(唯一例外,稳定分支叫 master):
git clone -b master https://github.com/Droid-VM/DroidVM.git详细的构建与部署步骤见各仓库 README 与 droidvm-meta-repo 的流程说明。
- App:Java / Kotlin,Gradle,Android 13+(API 33+),守护进程模型,Termux 终端库
- VMM:Rust(crosvm)、C(QEMU 路径)、C(EDK2 固件)
- 图形:C / C++(gfxstream、virglrenderer、Mesa、Turnip)
- 内核:C(Gunyah host/guest 模块)、Windows driver 工具链(rdmapool / virtio-win)
- 网络:Rust(pbridge)、Go(vswitch / DHCP)
- CI / 流水线:GitHub Actions、Python(prebuilt 自动化)、Shell、PowerShell、.NET(Windows 镜像路线)
DroidVM 站在上游社区的肩膀上:ChromiumOS 的 crosvm、virtio-media、 Google 的 gfxstream、Freedesktop 的 Mesa(含 turnip)与 virglrenderer、TianoCore 的 EDK2、Red Hat 的 virtio-win —— 以及 Qualcomm Gunyah / MediaTek GenieZone 的硬件虚拟化能力。各 fork 均保留上游 许可证与归属。
活跃工作包括:3D 加速通路(gfxstream + virglrenderer KGSL 后端 + guest mesa/turnip)、Gunyah 受保护虚拟机内存模型(GuestAccept / hugepage / rdmapool)、 Windows on ARM 支持与 网络栈(pbridge / vswitch)。最新进展见各仓库 commit、Discussions 与 DroidVM wiki。
— · — · —
DroidVM 是运行在 Android 设备上的虚拟机管理器,直接利用手机的 硬件虚拟化能力——高通 Gunyah、联发科 GenieZone 或 Linux KVM—— 在手机上创建和管理轻量级虚拟机,获得接近原生的性能。它不只是 App: Droid-VM 这个组织维护着把"在手机上跑虚拟机"这件事打通的一整条技术栈。
- 🖥️ 真正跑在 Hypervisor 上,而非容器/模拟:设备存在
/dev/gunyah、/dev/gzvm或/dev/kvm即可。 - 🚀 双后端:自维护的 crosvm fork + QEMU;UEFI 引导 Linux 与 Windows on ARM。
- 🎮 GPU 加速:VirGL / GfxStream / 2D 软渲染;内置 VNC、原生显示、外接屏投屏。
- 💾 磁盘管理:raw / qcow2 / vhdx / vdi / vmdk、快照、增量、LXC 导入、 convert / resize / clone,以及 VirtFS(9p / virtiofs)共享目录。
- 🌐 网络:虚拟桥接(NAT / DHCP / STP / VLAN / IPv4+IPv6 / 端口转发), host 侧 pbridge 可让多个 VM 共享一个上游 MAC(如手机 Wi-Fi)。
- 📦 虚拟机包:整个虚拟机(磁盘 + 引导 + 网络配置)导出为单个
.vmpkg, 迁移到别的设备。
| 分类 | 仓库 |
|---|---|
| App / 文档 / 构建 | DroidVM(主应用)· DroidVM-Prebuilt-Root(原生产物构建)· DroidVM-Prebuilts(二进制发布)· droidvm-meta-repo(1_~9_ 端到端构建)· Droid-VM.github.io(VitePress 文档站) |
| VMM 与固件 | crosvm · Virtualization(AOSP 虚拟化框架)· edk2-gunyah · linux-boot-extractor · win11-arm64-image-builder |
| 图形栈 | gfxstream · virglrenderer · mesa · mesa-cross · turnip(已归档)· Banners-Turnip · virtio-media · v4l2r |
| 内核模块 | gh-hugepage-reserve · gunyah_host_mod · droidvm-guest-additions · android-crates-io · zstd |
| Windows 支持 | gunyah-guest-drivers-windows(rdmapool / virtio-win 的 restricted-DMA-pool 适配) |
| 网络 | pseudo-bridge-rs(pbridge)· gvisor-vswitch · bridgedhcp · netbox · libvncserver |
分支约定:除应用本体 DroidVM 的稳定分支是 master(唯一例外)外,
本组织所有仓库的稳定分支统一为 droidvm。
- 系统:Android 13(API 33)及以上
- 权限:需要 root(Magisk / KernelSU / APatch)
- 设备:ARM64 且固件/内核已开启硬件虚拟化——
- 高通:骁龙 8 Gen 3(SM8650)及以上,推荐 8 Elite(SM8750),开启 Gunyah
- 联发科:天玑 9000 及以上,开启 GenieZone
- 其它:以 EL2 引导且内核开启 Linux KVM
- 应用本体已到 660+ ⭐,release 通道活跃(
devtag 持续更新)。 - 组织正全力推进 3D 加速(
droidvm-meta-repo、gfxstreamGuestAcceptblob + host-visible arena、virglrenderer KGSL 原生上下文后端、guest mesa .deb 交叉构建、Banners-Turnip 提供 host 端最新 turnip)。 - Windows on ARM 镜像构建器 + Gunyah Windows 驱动已就绪, 可直接产出能在 DroidVM 开机的 Win11 qcow2。
- 欢迎在 Discussions 交流、按各仓库 README 参与构建与贡献。
# 先跑通应用本体
git clone -b master https://github.com/Droid-VM/DroidVM.git
cd DroidVM && git submodule update --init --recursive && ./gradlew assembleRelease
# 想编译整套原生栈 → 用 meta repo
git clone https://github.com/Droid-VM/droidvm-meta-repo.git && cd droidvm-meta-repo
# 按 1_~9_ 脚本阶段执行(README 有依赖图)需要更多细节?请看: 主仓库 DroidVM · 使用文档 · Wiki · Releases
Droid-VM 组织简介 · 数据与仓库清单基于 GitHub 实际状态(2026-09-07)整理
