Skip to content

Introduction

DroidVM is a virtual machine manager that runs on Android devices, with support for multiple hypervisors. It lets you create and manage lightweight virtual machines directly on your phone and enjoy near-native performance.

Supported hypervisors:

  • Qualcomm Gunyah (/dev/gunyah)
  • MediaTek GenieZone (/dev/gzvm)
  • Linux KVM (/dev/kvm)

DroidVM main interface

📷 Screenshot placeholder: App main interface (virtual machine list)

What It Can Do

With DroidVM, you can do the following on your phone:

  • Boot a full Linux desktop (such as Ubuntu, Debian, Arch, and other distributions)
  • Run Windows on ARM (with modified VirtIO drivers)
  • Set up a development / testing environment with a graphical interface
  • Use your phone as a portable host with an external screen + Bluetooth keyboard and mouse

Core Features

FeatureDescription
Multiple VM Backendscrosvm and QEMU
UEFI BootBoot Linux or Windows
GPU AccelerationVirGL, GfxStream, and 2D software rendering
Multiple Display MethodsBuilt-in VNC client, native display (Surface passthrough), external screen casting
Terminal ConsoleFull ANSI/xterm emulation (based on the Termux terminal library)
Disk Managementraw, qcow2, vhdx, vdi, vmdk; resize / convert / clone / optimize / snapshot
Image AcquisitionURL download, distribution image download, LXC image import
Virtual Bridge NetworkNAT, DHCP, STP, VLAN, IPv4/IPv6, port forwarding
Shared DirectoryVirtFS (9p / virtiofs)
Windows SupportWith modified VirtIO drivers
Linux AgentOffline modification of VM passwords and more
VM PackagesExport / import .vmpkg to migrate a VM together with its disks

Interface Layout

The app has five bottom tabs:

TabContents
HomeDaemon status, VM / disk / network overview, VM import, help and feedback, new-version notice, kernel and SoC info
VMsVM list; long-press to edit / export as package / delete
DisksDisk image management
NetworksVirtual bridge network management
SettingsApp settings, backup & restore, about and updates

Home tab

📷 Screenshot placeholder: Home tab (daemon status card + overview cards)

The daemon card on the Home tab is tappable: a popup menu lets you start / stop / restart the daemon, and the card colour reflects its running state.

How It Works

DroidVM leverages whichever hypervisor is available on the device (Qualcomm Gunyah, MediaTek GenieZone, or Linux KVM) to provide hardware virtualization. The app uses Root access to start a background daemon (process name droidvmd), which invokes crosvm / QEMU to create and run virtual machines; the front-end app handles configuration management, display, and interaction.

┌────────────────────────────────────────────┐
│            DroidVM App (Front-end UI)        │
│  Config · Display(VNC/Native) · Console · Disk/Net │
└───────────────────┬────────────────────────┘
                    │ IPC
┌───────────────────▼────────────────────────┐
│               daemon (root)                  │
│      crosvm / QEMU  ·  Virtual Bridge  ·  Disk │
└───────────────────┬────────────────────────┘

┌───────────────────▼────────────────────────┐
│   Gunyah / KVM / GenieZone  Hypervisor       │
└─────────────────────────────────────────────┘

Next Steps

Released under the GNU GPL v3.0 License