Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VMware Workstation on a Windows Host
I wanted to make a simple guide on how to create a vanilla OS X El Capitan virtual machine running on a Windows host. The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
There are many guides and videos on the net about running OS X on Windows machines using pre-made VMWare disk images but you can never guarantee what else is in there….
I’ve gathered info for this guide from various threads in the Multibooting and Virtualisation section of this forum eg
Workstation 11/12, Player 7/12, Fusion 7/8 and ESXi 6 Mac OS X Unlocker 2 by @Donk
How to Install OS X 10.x from Snow Leopard to El Capitan in VMware Workstation 10/12, Player 6/8 or ESXi 5/6 by @MSOK
HOW TO: Create a bootable El Capitan ISO for VMware
Credit and thanks to @Donk, @Albert Nietsnie and @MSOK for all their hard work in creating and testing the VMware Unlocker program.
Intel PC with four or more CPU cores running Windows 7 X64 or later OS (2 or more cores needed for OS X)
4GB or more RAM (2GB or more will be needed for OS X)
Hard Disk with at least 40GB free for Virtual Machine
VMware Workstation 12 or later
VMware Unlocker 2.0.7 or later
Install OS X El Capitan app and Mac or Hack to prepare installation iso <-- Now, no longer necessary to have previous access to a Mac or Hack by building the Installer.app from scratch - see post#41
16GB or larger exFAT formatted USB stick to transfer El Capitan iso from Mac/Hack to Host PC
Prepare Installation ISO on your Mac or Hack
1. On your Mac or Hack, download "Install OS X El Capitan.app" from the App Store into your Applications folder.
2. Unmount any attached install image/InstallESD.dmg (if currently mounted) by rebooting the system or running the hdiutil unmount command in terminal eg
3. Download and unzip the CECI.tool (attached to this post) into your ~/Downloads folder. The commands in this executable script are shown below for informational purposes….
4. Open OS X terminal, then run the following commands to execute the script:
chmod +x CECI.tool
5. At the end of the process, you will have an El Capitan iso on your desktop - copy this onto an exFAT formatted USB for use on the PC Host later.
Update: @shela has created an ISO generating script compatible with OS X 10.6-10.12: create_osx_iso post #362.
Install and Patch VMware Workstation 12 on your PC
1. Download and install VMWare Workstation Player 12 or later
2. Download and extract Unlocker 2.0.7 or later to your USB stick…
3. Run the win-install.cmd as administrator by right clicking the file in Windows explorer or run it from an Administrative Command Prompt.
Create an El Capitan Virtual Machine
1. Double click on the VMware Workstation 12 Player icon on your desktop and click “Create a New Virtual Machine”. Choose “I will install the operating system later” at the How will you install screen….
2. Select Apple Mac OS X as the Guest operating system and OS X 10.11 as the version. By default, an OS X 10.11 folder will be created in your Documents\Virtual Machines folder.
3. Under Specify Disk Capacity, you can leave the default 40GB or set a larger value. I personally store the virtual disk as a single file. Click Finish and you will see OS X 10.11 on the Main Screen of Workstation 12.
4. Next, we need to edit the virtual machine settings to map the virtual SATA CD/DVD drive to the El Capitan installation iso we created earlier.
5. To prevent the virtual machine from crashing in Windows, the virtualHW.version set in the vmx configuration file needs to be changed from 12 to 10 (alternatively, the line smc.version = "0" can be added to the file). The OS X 10.11.vmx file can be edited with the WordPad program (navigate to the OS X 10.11 virtual machine folder with Windows Explorer and right click on the file to open in WordPad).
6. For HW10, set USB compatibility to USB 2.0, otherwise your mouse and keyboard might not work in the virtual machine.
7. Finally click “Play virtual machine”
Installation of El Capitan
Installation should be relatively straight forward, just following the prompts of the OS X installer:
1. Select language, agree to legal terms
2. Use Disk Utility from the Utilities Menu to erase and format the virtual hard drive as a single partition GUID Mac OS X Extended. I’ve named the drive Macintosh HD but you can enter whatever you like eg El_Capitan.
3. Quit DU and choose Macintosh HD to install El Capitan on.
4. After 20-30 min (depending on how fast your system is), the installation will complete and the VM will automatically reboot…
5. At the welcome screen, choose your country and keyboard layout. You can skip transfer information, location services and logging in with your Apple ID if you wish…
6. Create a User Account and select your Time Zone. You can skip sending diagnostics and usage data to Apple….
7. Finally, you will arrive at the El Capitan Desktop. You should eject the Installation iso now by right clicking and selecting “Eject OS X Base System”. This will allow you to install VMware Tools….
8. After rebooting, the VM can now be resized or run at full screen resolution. Audio and network/internet should also work OOB.
SMBIOS Customization and iMessage Vars
To make the Virtual Machine more "Mac like", you can edit the vmx file to add unique identifiers from a real Mac's SMBIOS -
eg for an iMac 11,3 SMBIOS, you can enter the following lines....
smbios.reflectHost = "FALSE"
board-id.reflectHost = "FALSE"
board-id = "Mac-F2238BAE"
hw.model.reflectHost = "FALSE"
hw.model = "iMac11,3"
serialNumber.reflectHost = "FALSE"
serialNumber = "W80#######6"
Refer How to spoof real Mac in VMware - Multi-booting and Virtualisation.
The critical variables for iMessage/Facetime activation are MLB & ROM. By default, VMware "reflects" the host's MLB and ROM since it assumes you are running the OSX guest on a real Mac host - see post#42 by @Donk.
If the host is a Windows PC, the following lines need to be added to the vmx file (requires virtualHW.version 12 and smc.version = "0")....
efi.nvram.var.ROM.reflectHost = "FALSE"
efi.nvram.var.MLB.reflectHost = "FALSE"
system-id.enable = "TRUE"
and the MLB, ROM and optionally system-id entered manually eg
efi.nvram.var.MLB = "W80######BA1A" (MLB can be 13 or 17 characters long, alphanumeric string)
efi.nvram.var.ROM = "<=>?@A" (ROM is entered here as a 6 character ASCII string)
uuid.bios = "## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##" <---Optional (if you want to inject a given system-id hexadecimal value)
Note the output for ROM from imessage_debug is a 12 character hexadecimal that needs to be entered here as a 6 character ASCII string eg using an Hex to ASCII converter we find that "3c3d3e3f4041" hex is equivalent to "<=>?@A".
Vanilla Mavericks and Yosemite
The same VM settings for El Capitan will also boot and run vanilla installations of OS X Mavericks and Yosemite . Attached to this post are installer scripts to create bootable Mavericks (CMI.tool) and Yosemite (CYI.tool) ISOs for VirtualBox and VMware.
With the respective OS X installer apps in the Applications folder, download and run the installer tools using terminal ie
To create a Mavericks ISO on your desktop
chmod +x CMI.tool
To create a Yosemite ISO on your desktop
chmod +x CYI.tool
Here is a screenshot of the VM running Mavericks 10.9.5...
Update for macOS 10.12 Sierra
The above settings still work for macOS Sierra after upgrading to VMware Workstation 12.5 and unlocker 2.0.8 - see post #13.
Update for macOS 10.13 High Sierra and 10.14 Mojave
Post#41 describes how to build "Install macOS ******.app" on the fly from installer files downloaded beforehand in /SharedSupport folder.