Hackintosh on ESXi 6.5 with iMessage Support

This guide is primarily to allow you to create a macOS VM on ESXi 6.5 with support for iMessage. This was done using High Sierra.

Generally it involves the following couple steps

  • use unlocker to allow esxi to boot macOS
  • create a bootable macOS iso, and create the vm
  • edit a couple vmx settings manually, boot the vm and install macOS
  • shutdown the vm, edit some more settings, reboot
  • do a few post-install steps

Note: this assumes you have access to a functioning mac computer

Setup Unlocker

chmod +x esxi-install.sh
chmod +x esxi-uninstall.sh
./esxi-install.sh
  • Reboot the esxi host

Make Bootable ISO

(taken from https://gist.github.com/agentsim/00cc38c693e7d0e1b36a2080870d955b)

# Generate a BaseSystem.dmg with 10.13 Install Packages
hdiutil attach /Applications/Install\ macOS\ High\ Sierra.app/Contents/SharedSupport/InstallESD.dmg -noverify -mountpoint /Volumes/highsierra
hdiutil create -o /tmp/HighSierraBase.cdr -size 7316m -layout SPUD -fs HFS+J
hdiutil attach /tmp/HighSierraBase.cdr.dmg -noverify -mountpoint /Volumes/install_build
asr restore -source /Applications/Install\ macOS\ High\ Sierra.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
cp -R /Volumes/highsierra/Packages /Volumes/OS\ X\ Base\ System/System/Installation
hdiutil detach /Volumes/OS\ X\ Base\ System/
hdiutil detach /Volumes/highsierra/
mv /tmp/HighSierraBase.cdr.dmg /tmp/BaseSystem.dmg

#Restore the 10.13 Installer's BaseSystem.dmg into file system and place custom BaseSystem.dmg into the root
hdiutil create -o /tmp/HighSierra.cdr -size 8965m -layout SPUD -fs HFS+J
hdiutil attach /tmp/HighSierra.cdr.dmg -noverify -mountpoint /Volumes/install_build
asr restore -source /Applications/Install\ macOS\ High\ Sierra.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
cp /tmp/BaseSystem.dmg /Volumes/OS\ X\ Base\ System

hdiutil detach /Volumes/OS\ X\ Base\ System/
hdiutil convert /tmp/HighSierra.cdr.dmg -format UDTO -o /tmp/HighSierra.iso
mv /tmp/HighSierra.iso.cdr ~/Desktop/HighSierra.iso
rm /tmp/HighSierra.cdr.dmg

Create the VM

  • choose the closest matching Guest Version
  • give it at least 2 vcpu's and at least 4GB of RAM
  • set it to boot from the created bootable iso

Edit VMX File

Using Clover Configurator:

SSH into ESXi machine. Remove the following from the vmx file (if they exist):

ethernet0.addressType = "generated"
ethernet0.generatedAddress = "xx:xx:xx:xx:xx:xx"
ethernet0.generatedAddressOffset = "0"

Add the following, replacing the brackets with the generated values:

smc.present = "TRUE"
board-id.reflectHost = "FALSE"
board-id = "<Board-ID>"
hw.model.reflectHost = "FALSE"
hw.model = "MacPro6,1"
serialNumber.reflectHost = "FALSE"
serialNumber = "<Serial Number>"
smbios.reflectHost = "FALSE"
ethernet0.addressType = "static"
ethernet0.Address = "<UNIX Mac Address (zero-padded)>"
ethernet0.checkMACAddress = "false"

Install macOS

  • use the created boot iso, boot the vm
  • before installing, format the vm hard drive with the provided defaults, giving it whatever name you choose (GRUB and HFS+Journaled)
  • Let it reboot, fill in the rest of the post install steps
  • DO NOT login with apple id

Edit VMX Again

  • shutdown VM
  • open terminal and type uuidgen, go back to clover configurator
  • Copy the uuid into SmUUID
  • Go to Rt Variables, edit the last 12 digits into ROM (or press generate)
  • Copy ROM and MLB values and edit the vmx file, using those values
efi.nvram.var.ROM.reflectHost = "FALSE"
efi.nvram.var.MLB.reflectHost = "FALSE"
efi.nvram.var.ROM = "<ROM value>"
efi.nvram.var.MLB = "<MLB value>"

Back to Mac

  • reboot the vm
  • login to iMessage, should work
  • install VMWare tools by mounting the iso that unlocker provided
  • Go into System Preferences, disabled the screen saver, set Energy Saving settings to
    • never sleep
    • never turn off hard disks
    • never wake for ethernet network access

Enjoy!

This guide is a distillation of the following articles: