Skip to content

FAQ

Installation & Environment

Can my phone run DroidVM?

Three conditions must be met: Android 13+, rooted, and an ARM64 device with hardware virtualization enabled.

All three chip platforms are supported: Qualcomm (Snapdragon 8 Gen 3 or newer, Gunyah), MediaTek (Dimensity 9000 or newer, GenieZone), and other ARM64 devices (EL2 + KVM). The most direct check is whether one of /dev/gunyah, /dev/gzvm, or /dev/kvm exists. See Requirements for details.

It says no virtualization device / /dev/gunyah is not detected

This means the device has hardware virtualization disabled or the chip does not support it. You can run ls -l /dev/gunyah /dev/kvm /dev/gzvm in a root terminal to verify. If none of them exist, you can only try the software emulation (soft) backend, but performance will be very poor.

Root authorization failed

Check whether DroidVM is in the authorization list of Magisk / KernelSU / APatch, and select "Allow permanently".


Virtual Machines

Should I use CrosVM or QEMU?

CrosVM is recommended by default for better performance and integration. Consider QEMU only when you need custom UEFI firmware or special devices that CrosVM does not support. See Backend Compatibility for details.

What do I do if the VM fails to start?

  1. Check the Runtime Logs to locate the error
  2. Confirm the boot method is correct (most distro images use UEFI)
  3. Confirm the disk is correctly mounted and that memory / CPU allocation is reasonable
  4. If you use a compressed qcow2, run "Optimize" on the disk first

How much memory / CPU should I allocate?

The minimum recommendation is 2048 MB of memory + 2 CPUs. For a graphical desktop, 4096 MB or more is recommended. Be careful not to exceed the safe range of the device's physical memory, to avoid system instability.

How do I shut down gracefully?

Prefer the Power button on the details page (triggers an ACPI shutdown) rather than "Stop" directly (which is equivalent to forcibly cutting power). See Managing and Controlling VMs for details.


Boot & Runtime Error Troubleshooting

The following troubleshooting items are compiled from the Official Wiki · FAQ. When you encounter a specific error, first search for the corresponding keyword in the Runtime Logs and Terminal Console.

Linux hangs during boot, log shows host access to lent memory region at 0xXXX

This is caused by the system lacking SWIOTLB support under Protected Mode (Protected VM). Protected Mode requires the kernel to enable Restrict DMA Pool, which some kernels are missing.

Solution:

  • Switch to a supported kernel, or recompile the kernel with the relevant config enabled
  • Alternatively, just use DroidVM's built-in kernel
  • Key kernel config option: CONFIG_DMA_RESTRICT_POOL

Reference: Issue: The VM's system does not support SWIOTLB Restrict DMA Pool

Boot exits midway, log shows page fault ... attempt: -12 / Out of memory (os error 12)

This is caused by the huge page pool being exhausted.

Solution: Install and configure the pre-allocated huge page module (gh-hugepage-reserve).

Use the huge page module with caution

  • On a few device models this may trigger a kernel crash or even brick the device, so use it with caution
  • The module reserves memory (about 2 GiB by default); when not in use, disable and stop the module to release the memory

Reference: Issue: Out-of-memory error while the VM is running

Snapdragon 8 Gen 3 (SM8650) cannot boot

Due to a problem with Gunyah memory allocation in the kernel, the 8 Gen 3 usually cannot boot normally (it succeeds only on rare occasions). The Snapdragon 8 Elite and newer chips reworked the Gunyah code and are not affected by this issue.

Possible solution: If you can compile the kernel yourself, you can try the following patches to fix it:

Reference: Issue: The Gunyah resource manager refuses to start the VM


Windows VMs

Windows can't receive input (keyboard / mouse unresponsive)

You need to use modified VirtIO drivers that support Protected VM. These drivers have not been publicly released yet; you can join the chat group to download them (QQ group: 1098335601).

Booting Windows shows Press any key to boot from CD or DVD

This prompts you to boot from the disc; press any key on the keyboard to continue booting from the installation media.


Display

VNC is too laggy / I want smoother visuals

Enable Native Display (requires GPU + Virtio-GPU + GfxStream), which performs significantly better than VNC. See Graphics Display for details.

The soft keyboard won't pop up

Tap the "Keyboard" button in the floating menu of the display screen to bring it up manually.

How do I connect to the VM's display from a computer?

In the top bar menu of the VNC display screen, select View URL, copy the vnc:// address and password, and connect with a VNC client on your computer.

I want to use it like a PC on a big screen

Use external display casting: an external monitor + a Bluetooth/USB keyboard and mouse, with the phone as a touchpad.


Disks

qcow2 or raw, which should I choose?

  • qcow2: supports snapshots, compression, and backing images; full-featured; recommended
  • raw: best performance, but occupies the full space and has no snapshots

I want to derive multiple VMs from one image

Use a backing image: create a differential disk on top of a base image, so each VM only stores its own changes. See Disk Management for details.

I forgot the VM's system password

Use Linux Agent offline password reset to reset it without booting the system.

How do I expand a disk?

In the disk operations, select Resize, then use tools like growpart / resize2fs inside the VM to extend the partition and filesystem.


Network

The VM can't access the internet

  1. Confirm that a network is selected in the VM's NIC configuration
  2. For the network mode, L3 routing with IPv4 SNAT enabled is recommended
  3. Check whether the VM correctly obtained an IP via DHCP

Port forwarding doesn't work

Confirm that SNAT is enabled on the associated network; IPv6 port forwarding additionally requires the gVisor bridge. See the format in Network Management.

The Save button is greyed out when editing a network

A running network cannot be edited; first stop the VMs using that network.


Other

How do I use shared folders?

Add a shared directory and set a tag in the VM Storage tab, then mount it inside the VM with mount -t virtiofs <tag> /mnt/share (or 9p).

How do I move a VM to another phone?

Long-press the VM and choose Export as package, copy the resulting .vmpkg to the new device, and tap Import VM on the Home tab. The package contains the disks, so the file is fairly large. See Export & Import VM Packages.

If you only want to back up settings and don't need the disks, use Export config in Settings — a much smaller file.

Disk conversion is too slow

Set CPU affinity to "big cores only" in App Settings. Conversely, restrict it to little cores if the phone gets too hot or laggy.

Where do I report bugs?

Go to GitHub Issues to submit, and attach the Runtime Logs.

Will upgrading lose my data?

No. Just install the new APK over the old one; VM configurations and disk images are all preserved.

Released under the GNU GPL v3.0 License