JetCracker

Life-time learner's blog

Tag Archives: kext

HAXM not working on Mac OS X 10.10 Yosemite

By default Android emulator is extremely slow. It takes 5 minutes to start the emulator!

To make it faster there are two approaches:

  1. If your machine supports Intel VT-x technology, you can install special HAXM extension, so that the emulator will make use of all the power your computer has.
  2. If your computer doesn’t support virtualisation, you can still significantly improve the boot time of the emulator by configuring it to save its state. This will make the emulator start faster, but the UI will still be slow, and it will take a bit longer for the emulator to close.

There is a pretty detailed Stackoverflow answer regarding HAXM and Android emulator performance.

Unfortunately, my old laptop didn’t support Intel virtualisation technology, so I didn’t even consider working with emulator. Instead, I always used a physical android device to test my apps.

When I started the emulator on Mac, I hoped it would run much faster (with SSD and Intel Core i7 on board). But no – the emulator was still very slow. This brought me to Stackoverflow, where they discussed how to enhance the speed of Android emulator by installing HAXM.

So, I tried to make the emulator on freshly installed Mac OS X 10.0 Yosemite run faster. I followed the instructions provided in the article, but at the end of installation, I got error message, saying that my laptop supports virtualisation, but VT-x is disabled.

According to Apple official specs, all latest macs that are running on Intel CPUs, have VT-x feature enabled by default. It might seen as disabled by the HAXM Installation Manager for two reasons:

As I didn’t have any other emulators or virtual machines running, I decided to find a way to make it work. And after some googling, I finally found a solution. According to the blog post I found, there was an issue with an incorrectly signed kernel extension on Intel’s part. I believe Intel will fix it soon, but for now as a workaround, we can use the following command:

sudo nvram boot-args="kext-dev-mode=1"

This makes kexts to run in dev mode and disables all signing checks. Changes will take affect after system restart.