haxm: Intel Hardware Accelerated Execution Manager
Intel Hardware Accelerated Execution Manager (HAXM)
HAXM is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology to speed up IA (x86/ x86_64) emulation on a host machine running Windows or macOS. It started as an Android SDK component but has recently transformed itself into a general accelerator for QEMU.
HAXM can be built as either a kernel-mode driver for Windows or a kernel extension for macOS.
Building for Windows
- Enterprise WDK (EWDK) 10
Alternatively, install all of the following instead of EWDK 10:
- Visual Studio 2015
- Windows Driver Kit (WDK) for Windows 10
- Windows SDK for Windows 10
- cd X:\path\to\EWDK\
- Or, if Visual Studio 2015 is installed, launch Developer Command Prompt for VS2015 from Start > All apps > Visual Studio 2015 instead.
- cd X:\path\to\haxm\
- msbuild HaxmDriver.sln /p:Configuration=”Win7 Debug” /p:Platform=”x64″
- The Win7 configuration ensures the driver is compatible with Windows 7 and later.
- The Debug configuration also signs the driver with a test certificate. The Release configuration does not do that.
- Use Win32 instead of x64 to build a 32-bit driver that works on 32-bit Windows.
- Add /t:rebuild for a clean rebuild instead of an incremental build.
If successful, the driver binary (IntelHaxm.sys) will be generated in X:\path\to\haxm\obj\out\win7\x64\ (or X:\path\to\haxm\obj\out\win7\x86\ if Platform=”Win32″).
Building for macOS
- Xcode 7.2.1 or later
- OS X 10.9 SDK (archived here)
- cd /path/to/haxm/
- cd darwin/hax_driver/com_intel_hax/
- xcodebuild -config Release
- Use -sdk to override the default macOS SDK version (10.9), e.g. -sdk macosx10.12.
If successful, the kext (intelhaxm.kext/) will be generated in/path/to/haxm/darwin/hax_driver/com_intel_hax/build/Release/.