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
Debug
orRelease
configuration.- 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="Debug" /p:Platform="x64"
- Use
Release
instead ofDebug
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"
), and will be able to run on Windows 7 and later.
- 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 secure@intel.com, and use the PGP key located at https://www.intel.com/security to encrypt any sensitive information.