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.
Option A (Visual Studio)
- Visual Studio 2017
- Install at least the following components: Universal Windows Platform development, Desktop development with C++.
- Windows SDK for Windows 10
- Windows Driver Kit (WDK) for Windows 10
Note that the version/build number of Windows SDK must match that of WDK. In particular, the Windows 10 SDK installed by Visual Studio 2017 (version 1709, build 10.0.16299 as of this writing) may not be the latest version. If you want to use the latest WDK (version 1803 as of this writing), you may need to download and install the latest Windows 10 SDK (version 1803, build 10.0.17134 as of this writing).
Option B (EWDK)
- Enterprise WDK (EWDK) 10 with Visual Studio Build Tools 15.6
- Install the downloaded ISO image by mounting it or extracting it to an empty folder.
- NuGet CLI tool (
nuget.exe
) version 4.x or later
Option A (Visual Studio)
- Open
HaxmDriver.sln
in Visual Studio 2017. - Select either
Win7 Debug
orWin7 Release
configuration.- The
Win7
configuration ensures the driver is compatible with Windows 7 and later. - The
Debug
configuration also signs the driver with a test certificate. TheRelease
configuration does not do that.
- The
- Select either
x64
orWin32
platform. - Build solution.
Option B (EWDK)
cd X:\path\to\EWDK\
LaunchBuildEnv.cmd
cd X:\path\to\haxm\
X:\path\to\nuget.exe restore
msbuild HaxmDriver.sln /p:Configuration="Win7 Debug" /p:Platform="x64"
- Use
Win7 Release
instead ofWin7 Debug
to build a faster driver without a digital signature. - Use
Win32
instead ofx64
to build a 32-bit driver that works on 32-bit Windows. - Add
/t:rebuild
for a clean rebuild instead of an incremental build.
- Use
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"
).
- Xcode 7.2.1 or later
- OS X 10.10 SDK (archived here)
- NASM 2.11 or later
- Install to
/usr/local/bin/
using Homebrew:brew install nasm
- Note that Apple NASM (
/usr/bin/nasm
) cannot be used.
- Install to
cd /path/to/haxm/
cd darwin/hax_driver/com_intel_hax/
xcodebuild -config Release
- Use
-sdk
to override the default macOS SDK version (10.10), e.g.-sdk macosx10.12
.
- Use
If successful, the kext (intelhaxm.kext/
) will be generated in
/path/to/haxm/darwin/hax_driver/com_intel_hax/build/Release/
.
You are welcome to file a GitHub issue if you discover a general HAXM bug or have a feature request.
However, please do not use the GitHub issue tracker to report security vulnerabilities. If you have information about a security issue or vulnerability with HAXM, please send an email to [email protected], and use the PGP key located at https://www.intel.com/security to encrypt any sensitive information.