Home > Mac administration, Mac OS X, VMware > Emulating specific Apple models in VMWare Fusion VMs

Emulating specific Apple models in VMWare Fusion VMs

Once you have a VM built, you may want to edit it to emulate a specific Mac model. One reason for doing this would be to test model-specific updates from Apple’s Software Update.

To set your VM to report itself as a specific Mac model, you would need to add the hw.model flag to your VM’s .vmx configuration settings. See below the jump for how to do this.

Note: Always test first on a copy of your VM

1. Launch VMWare Fusion

2. Verify that the virtual machine you want to edit is completely shut down. (Do not edit a suspended VM.)

3. In VMware Fusion, go to the Window menu and select Virtual Machine Library.

4. Select the VM you want.

5. Hold down the Option key on your keyboard and right-click the virtual machine.

6. Select Open Config File in Editor. This will open up the VM’s .vmx configuration file for editing.
Figure_16-Selecting_the_vmx_configuration_editor_in_VMWare_Fusion

Figure_17-Opening_the_vmx_configuration

7. Locate the model identifier of the Mac you want to emulate.

Note: You can find this by opening System Profiler on the model you want to emulate, selecting Hardware and looking for Model Identifier on the right side of the window.

8. In the .vmx editing window, add the following line:

hw.model = "model_here"

9. Once your edits are finished, go up to the File menu and select Save to save your changes.

Here’s an example of how to set a VM to identify itself as a 2011 MacBook Pro.

1. Launch System Profiler on a 2011 MacBook Pro and check the model identifier. In this case, the model identifier is MacBookPro8,1

Figure_18-Finding_the_Model_Identifier_in_System_Profiler

2. Launch VMWare Fusion

3. In VMware Fusion, go to the Window menu and select Virtual Machine Library.

4. Select the VM you want.

5. Hold the Option key on your keyboard and right-click the VM.

6. Select Open Config File in Editor. This will open up the VM’s .vmx configuration file for editing.

7. In the .vmx editing window, add the following line:

hw.model = "MacBookPro8,1"
Figure_19-Adding_the_Model_Identifier_to_the_VM_configuration

8. Save changes.

When you launch the VM, it should now identify itself as a MacBook Pro in System Profiler.
Figure_20-VM_identifying_itself_as_a_MacBook_Pro

Hat tip: Pepijn Bruienne and Tim Sutton for their assistance with this.

  1. February 19, 2013 at 1:47 pm

    What effect does this have on the VM in a practical sense?

    • February 19, 2013 at 1:56 pm

      Jurgen,

      The VM will now report that it is that specific Mac model when queried for model-specific information. For example, it would now receive any model-specific updates via Software Update and would be able to pull down that model’s InstallESD from Apple’s servers when reinstalling the OS from Recovery HD.

  2. February 19, 2013 at 2:00 pm

    Ah, handy! Is it possible to change serial and hardware uuid in a similar fashion? I’m still seeing that a service such as Caching with OS X Server won’t properly register for push, suspect its related to huuid or serial, as it still doesn’t register even if you change the model identifier. Not fooling Apple enough 😉

  3. February 19, 2013 at 3:01 pm

    I think that hardware UUID is different from the one thats reported in System Information not?

  4. February 27, 2013 at 1:29 pm

    Is there a way to change a VMs hardware serial number in Fusion as well? Fusion generates these very long serial numbers that aren’t recognized e.g. by OS X Servers Profile Manager.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: