ZF2 Running Windows 7, 8 & 10 using KVM


Senior Member
Nov 9, 2007
Let me preface that ever since I heard of an Intel based phone, the idea of running Windows at near native speeds has always intrigued me.

It's not perfect, but I think we're very close to that goal :)

Here's a video of my ZE551 running Windows 7:

Here's @knightmare running Windoze 10 on his ZF2 :D

Here's a video of my ZE551 installing Windoze 8: ( pretty boring for most people since it's just the install )

Here's a video of my ZE551 playing ( I use that term loosely here ) a D3D9 game: Runes of Magic. Even though the Windows 8 QXL driver says it's hardware enabled in DxDiag, it's painfully slow.. taking nearly 15 minutes to start up/log in.

Here's a video of Passmark 8 on Windows 8. Some people asked for benchmarks:
Here are the tools you will need to get this running yourself ( ZE551 ):
1. KVM enabled kernel - http://forum.xda-developers.com/zen...fhd-kernel-ze551-kvm-bridge-compiled-t3145055
2. Linux chroot - the one I use is called Linux Deploy ( in the Play Store )
3. Spice client - the one I use is called aSPICE ( in the Play Store )
4. Root - kinda duh :)
5. Unlocked Bootloader - without an unlocked bootloader, you can't install a new kernel
6. Terminal Emulator - the one I use is called Terminal Emulator ( in the Play Store )
7. SSH client - the one I use is called VX ConnectBot ( in the Play Store )
8. Busybox - most every root-based app uses this ( in the Play Store )
9. OS iso - any cdrom image of the OS you want to run, ie windows 7?

1. (optional) a decent sized MicroSD card, I use a 128 gb one that's partitioned 50 gigs or so as ext4 for Linux & 70'ish gigs for vFAT
2. (optional) an SD Card partitioner - the one I use is called Aparted ( in the Play Store )

After unlocking your bootloader and getting root running, this is the process you will follow:
1. Flash the 2.19 kernel img using fastboot flash boot boot_2.19_kvm_bridge.img and reboot. Pray you boot up. :)
2. Start Terminal Emulator
2a. at the $ prompt, type: su
2b. Grant Permission to Terminal Emulator for Root access ( 1 time thing )
2c. check to see if kvm.ko and kvm-intel.ko are loaded by typing: lsmod
2d. If they aren't loaded, load them using the commands: insmod /lib/modules/kvm.ko and insmod /lib/modules/kvm-intel.ko
2e. exit out of Terminal Emulator by tying the command: exit and then exit again

3. Partition your microSD card using Aparted * OPTIONAL *
4. Use Linux Deploy to install your favorite Linux distro. Unless you are hoping to compile the Android AOSP kernel ( what the FHD phone kernel is ), you can use just about any of them. ONLY use SSH, you won't need framebuffer or X access. This could take upwards of half an hour.
5. After Linux Deploy has installed your linux distro, click Start to start up the chroot.

6. Use an SSH client to connect to your linux distro. ( I prefer to ssh in via my laptop, but also use VX ConnectBot when I'm out and about )
7. Use the package manager to install qemu-kvm for your distro. Most Debian & Ubuntu distros use apt-get, Arch uses pacman, Fedora uses rpm, etc...
7a. (optional) I find it easier to grant superuser privileges to my qemu-kvm executable, so I chmod a+s /usr/bin/qemu-system-x86_64 ; if you are paranoid about security, read through the documentation to do this correctly :)
8. I recommend creating a shell script to start up qemu-kvm because it can be a pain in the butt to remember all of the switches you like. ie...

qemu-system-x86_64 -full-screen -m 1G -enable-kvm -cpu host \
-drive file=/mnt/0/machine1.img,format=raw -boot menu=on \
--usbdevice tablet -smp 4 -vga qxl -monitor stdio -balloon virtio \
-soundhw hda -net nic,model=virtio \
-net user,smb=/mnt/MicroSD \
-spice port=5900,addr=,disable-ticketing [email protected]

I have this line ( it's broken up by \'s <-- MAKE SURE THERE IS NO WHITE SPACE AFTER THE \ ) in my bash script called start_win7.sh

Here's a quick explanation of the line:
8a. qemu-system-x86_64 - This is the name of the qemu-kvm executable on my Arch x86_64 distro
8b. -full-screen - Full screen
8c. -m 1G - 1 gig of ram for our virtual machine
8d. -enable-kvm - enable KVM, the whole point of this endeavor ;)
8e. -cpu host - use the same cpu information as our ZF2
8f. -drive file=/mnt/0/machine1.img,format=raw - the location of my hard drive, this is a 10 gig file
8g. -boot menu=on - boot menu enabled ( hit F12 etc.. )
8h. -usbdevice tablet - Qemu SUCKS at tracking the mouse, this forces qemu to track where we touch the screen
8i. -smp 4 - we're using 4 threads ( cores )
8j. -vga qxl - we're using the qxl vga adapter
8l. -monitor stdio - allow us to use the console to make immediate changes to the VM
8m. -balloon virtio - use the virtio balloon feature in the KVM kernel
8n. -soundhw hda - use the Intel HD Audio driver for sound
8o. -net nic,model=virtio - create a network card using the virtual IO feature in the KVM kernel
8p. -net user,smb=/mnt/MicroSD - create a shared folder, in this case the vFAT portion of the microSD card
8q. -spice port=5900,addr=,disable-ticketing - Start up the SPICE engine for passing video & audio
8r. [email protected] - pass any further arguments to our qemu-kvm executable

so my file: start_win7.sh looks like this:


qemu-system-x86_64 -full-screen -m 1G -enable-kvm -cpu host \
-drive file=/mnt/0/machine1.img,format=raw -boot menu=on \
--usbdevice tablet -smp 4 -vga qxl -monitor stdio -balloon virtio \
-soundhw hda -net nic,model=virtio \
-net user,smb=/mnt/MicroSD \
-spice port=5900,addr=,disable-ticketing [email protected]

8s. chmod +x start_win7.sh to make it executable
9. Start up the qemu-kvm virtual machine referencing the location of your windows 7 install cd. ie...
./start_win7.sh -cdrom /mnt/MicroSD/Vcd/en_windows7.iso
9a. Qemu will start up and then show you this:
QEMU 2.3.0 monitor - type 'help' for more information

9b. you can then issue QEMU commands from the (qemu) prompt

10. Start up aSPICE
11. Click the OFF button to the left of Show Advanced Settings
12. Make sure Enable Sound is checked, if it isn't, do so. :)
13. The default connection is, so click Connect

At this point, you should see your Windows install starting.

After this you will need the virtio drivers for your Windows box. I'll try to get those urls, but you should be able to Google them. Redhat has VirtIO & Spice guest driver cd's for Windows.

Redhat Windows Virtio Drivers CD: https://fedoraproject.org/wiki/Windows_Virtio_Drivers
SPICE Guest Drivers: http://www.spice-space.org/download.html ( download the QXL Driver and Spice Agent, the executable does not work )
Windows 8 QXL Drivers from Red Hat People: http://people.redhat.com/~vrozenfe/qxlwddm/

How to connect to Windows via RDP: http://forum.xda-developers.com/showpost.php?p=62096457&postcount=165


Verified that Windows 8.1 pro can be upgraded to Windows 10. Redhat's qxl windows 8 driver works with Windows 10.


Last edited:


Apr 28, 2006
Great job bro. This is iam waiting for using zenfone 2.Is there any sound for windows 7?
if like can i change into windows 8 or 10??.



Senior Member
Nov 9, 2007
Yes, there is sound using aspice if you use the Intel hd audio driver. Unfortunately, the pc link video grabber doesn't record sound. ( why there isn't audio in my video )

Since this virtual machine is simply a pc, you should be able to install Windows 8 or 10.

Please let us know how that turns out!

Sent from my ASUS_Z00AD using XDA Free mobile app


Senior Member
Apr 25, 2011
this is amazing...this means there is a chance in the future, to run windows 10 or windows phone 10 (whenever that comes out) ? what about connecting mouse/keyboards via bluetooth? i cant wait for this to grow more! amazing work...!!!


Senior Member
Jul 4, 2015
Amazing! Care to try with Windows 10 to see how it behaves?

Seems already fast in your video, you already have ideas to make closer to native speed or it's already the best?


Senior Member
Sep 5, 2006
The very important question: What about video driver? Is it just dummy SVGA or full featured 3D graphics card?
Without Direct3D, windows for me will be nearly useless.


Senior Member
Nov 9, 2007
At the moment there is no direct 3d. The problem there is that my chroot doesn't seem to have proper access to all the hardware.

I've heard that the vmware driver is supposed to support d3d9 natively via gallium.

So... The next step would be to look at getting qemu-kvm compile for Android.

If any awesome Android developers out there are willing to do that, we might have a chance at full speed Windows with direct 3d. :)

I will say this... Epsxe was able to start up ps1 games with Pete's opengl driver via spice.

Sent from my ASUS_Z00AD using XDA Free mobile app
Last edited:


Senior Member
Mar 10, 2007
Puyallup, WA
This type of stuff is why I love supporting the XDA Community. Very cool. I'll give it a shot today - if USB OTG works, I'll have to see if I can get my Tactrix OpenPort cable to work with it and MazdaEdit.


Jun 27, 2015
awesome work Bro..
btw will it increases battery life of zenfone 2? or making it worse?
as we all know that android 5.0 is very buggy, the memory leak problem cause battery draining, so I wonder about your trick by installing windows 7 on asus zenfone 2 will it fix the battery draining problem?

Stephen 26

Jun 12, 2015
Wow excellent job.:thumbup:..didn't except such a beautiful stuff....lol touch screen Windows 7:D

Sent from my ASUS_Z00AD using XDA Free mobile app


Senior Member
Dec 19, 2012
As per the fact that the windows 7 runs on VM inside the Android, it should ideally worsen the battery life. Windows 7 doesn't replace the android os. If someone is worried about battery should not try this. Nevertheless, it truly would be a great thing to witness.