This guide is about installing Android-x86 9.0 QEMU virtual machine on x86_64 Linux host, so you can play Android games with 3D acceleration, keymappings on Linux PC. Google Play is also included.
Gentoo Linux (gentoo-kernel-bin 5.19.16) and
Arch Linux (linux-zen-6.0.3)
- A x86_64 Linux PC
- 4-cores CPU
- Intel or AMD GPU. Nvidia proprietary driver does not support VirGL (virtual OpenGL renderer).
- 8GB+ RAM
- 64GB+ storage
2. Install required packages
Virt Manager on your Linux host.
Enable libvirtd services:
KVM modules are loaded:
3. Install Android-x86 VM
Download Android-x86 ISO from official website. Choose Android 9.0-r2 64bit.
Launch Virt Manager. Clcik
Creat a new VM.
Select Manual Install
Select Androd-x86 9.0
Allocate 8GB RAM (minimum 4GB) and 4 cores.
Create a 64GB hard drive
Customize configuration before install
UEFI x64 OVMF_CODEfor
IDE Disk, switch Disk bus to
NIC, switch Device model to
Display Spice. Swtich
OpenGLand select Intel GPU. Apply.
Video QXL, switch to
3D acceleration. Apply.
Add Hardware, click
Manageand select Android-x86 ISO. Finish.
Boot options. Change boot order to
Begin Installation. Use keyboard arrows to move selection. First move to
Move selection to [New], enter.
Enter. Next type
ef00then name the parition
Next, move selection to the third one. Select [New], enter for 3 times.
Name the partition
Move the selection to [Write], type
yes. Then move to [Quit].
Format vda2 to EXT4
Install EFI GRUB
Format the EFI partition
Yes. Make /system mounted as Read & Write.
Boot into Android-x86.
VirtWifi. Setup the Android-x86 device.
Terminal Emualtorin Android-x86 VM. Type
su, grant root permission:
dmesg | grep virglto check if VirGL is loaded.
Click bulb icon, remove CDROM from Hardware list.
4. Install libhoudini for Android-x86
It’s recommened to install x86 APK for stability, Google Play would filter x86 apps for you. However many games only support ARM architecture. In order to run ARM apps on a x86 machine, we need a ARM translator/Native bridge.
Houdini is an ARM translator developed by Intel. Currently it only supports running ARMv7 (32bit) Android APPs on Android-x86 9.0.
Launch System settngs → Android-x86 options, select
Enable native bridge.
It should start downloaing libhoudini. However it will failed to download. So we need to manually install libhoudini.
Launch Chrome in Android-x86 VM. Download libhoudini from Android-x86 official website
Terminal Emulator, execute following commands:
- Reboot the VM. Now you should be able to download ARM apps from Google Play, such as Smash Hit.
P.S. Sometimes you still need to toggle
Enable native bridge again in System settings after reboot.
5. Tips for Android-x86 VM
5.1. QtScrcpy games keymapping
Want to play FPS games in Android-x86 VM?
Games do not response to mouse clicks but only touching events in Android-x86 VM?
QtScrcpy could solve these problems!
- Download QtScrcpy for Linux. Unzipped the archive. Run
Check IP address of Android-x86 VM from Virt Manager → NIC
In QtScrcpy, fill in the
Wirelesswith Android-x86’s IP. Click
Double click phone device at left panel
A new window will popup (yeah there are two windows right now). You can emulate touch events in QtScrcpy window.
Create a directory named
keymapsat QtScrcpy’s directory.
- Download example keymapping scripts from Github.
refresh scriptin QtScrcpy. Click
~key in Android-x86 VM to toggle the script. This script will trigger scrolling events when pressing
Up arrowkey in Android-x86 VM.
Now try to write yout own scripts. See guidelines here. Below is an exmaple for World War Heroes — WW2 PvP FPS:
5.2. Running multiple Android-x86 VMs
Shutdown the VM. Right click the Android-x86. Select
5.3. Booting Android-x86 VM with QEMU commandlines
Android-x86 9.0 currently does not support ARM64 only apps, so it is impossible to run some games in Android-x86 VM.