Jump to content
Donk

How to spoof real Mac in VMware

91 posts in this topic

Recommended Posts

It would work, as I tried it on a nested ESXi instance. However you would need to make your ESXi server a Hackintosh and override the SMBIOS to specify Apple hardware and the presence of the SMC chip. I have not found a way to do that as ESXi uses its own bootloader.

Donk,

 

I am assuming your nested ESXi instance is running on a Mac under Fusion, so ESXi is running on Apple hardware?

Share this post


Link to post
Share on other sites
Advertisement

Donk,

 

I am assuming your nested ESXi instance is running on a Mac under Fusion, so ESXi is running on Apple hardware?

 

Actually did it on Fusion and Workstation, and it worked.

Share this post


Link to post
Share on other sites

Apparently a known issue that VMware is aware of and is looking into a fix.

 

Is there now way currently to run imessage in vmware than?

Share this post


Link to post
Share on other sites

iMessage didn't work also for me with this method on Windows laptop.

 

Also, I want to activate my Facetime but Facetime can't detect my built-in camera. I check in System Information & no driver installed for Camera.

 

Any way I can use my Facetime? Other methods or links perhaps for the driver? Really need help for this.

 

I have Sony VAIO VPCCW16FA on Windows 7 x 64 laptop, running OS X 10.9 Mavericks on VMWare Worstation 10. I got my OS X 10.9 WMWare Image from Soul Dev Team.

Share this post


Link to post
Share on other sites

I haven't tried this or care much about iMessenger. In my journey in bios hacking with ozmosis on other UEFI boards you can set nvram in the terminal and change some things this may help with getting this to work as it is a question a lot of people have on ozmisis thread too.

 

 

sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:BiosVersion=MM61.88Z.0106.B00.1208091121
sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ProductName=Macmini6,2
sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:SystemSerial=xxxxxxxxxxxx
sudo nvram
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ProductFamily=Macmini
sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ProductId=Mac-F65AE981FFA204ED

xxxxxxxxxxxx=serial that need to be generated using clover configuration or chameleon wizard. 
 

 

here is the thread and more info might be in there to help with other problems I just copied and pasted from the first post. but if you look up the nvram stuff you might find what your looking for to fix this

http://www.insanelymac.com/forum/topic/291655-ozmosis/

 

Another idea running off Donks post

 

 

It would work, as I tried it on a nested ESXi instance. However you would need to make your ESXi server a Hackintosh and override the SMBIOS to specify Apple hardware and the presence of the SMC chip. I have not found a way to do that as ESXi uses its own bootloader.

If your running a UEFI bios you could hack it using that thread and get oz to work and running ESX(i) might see it as mac hardware since a lot of the stuff is taken care of in the bios. I have a Quo with OZ but currently have a K (not so great with VM) processor in it. If I happen to switch it out for a regular one (non K) I'll test this out and report back.

Share this post


Link to post
Share on other sites

I have looked into ozmosis(haven't tried it), but I believe those values are only static for firmware that support nvram saving, I believe vmware efi and exe reset the nvram upon reboot.

 

We could write a launch daemon to reset these setting upon reboot but it must execute on kernel boot up (not the case with vmware efi, it executes towards end of kernel). This is all based on elnono_ research of imessage:

 

'KLDBootstrap::~KLDBootstrap' calculates these five 17 bytes values based on hashes of:

- IOPlatformUUID

- IOPlatformSerialNumber

- IODeviceTree:/chosen/boot-uuid

- IODeviceTree:/options/4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM

- IODeviceTree:/options/4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB

 

each value is appended, in that order, on the gIOPlatformExternalData OSData object.....Those five values must be set when the kernel is started and MUST NOT change afterwards.

 

http://www.insanelymac.com/forum/topic/294633-imessage-partially-broke-icloud-app-store-fully/?p=1981588

 

Hacking the vmware exe or efi would be great because we can set these values at the source, but I don't think it would be feasible. Donk tried to decode the efi64.rom but seems vmware has encoded it in a way that is not standard.

Share this post


Link to post
Share on other sites

Donk tried to decode the efi64.rom but seems vmware has encoded it in a way that is not standard.

 

I have now found the tools to extract the modules from the VMware EFI ROMs. However haven't yet tried modifying anything.

 

As for Messages and iCloud there does seem to be a big issue with VMware, and acknowledged by VMware engineers. Burnt 2 iCloud ids trying to make it work, but to be honest not something I am that interested in as have real Mac hardware available. I have other projects I am working on, and so others will have to pick up the work for this. Sorry about that, but busy at work and home.

 

One last piece of help I can give you; it is possible to change the MAC address of any virtual NICs to match Apple's available address ranges. 

 

 

Remove or comment out these lines in the VMX file (make sure guest is powered off):

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

Add the lines with a static Apple MAC Address:

ethernet0.Address = "xx:xx:xx:xx:xx:xx"
ethernet0.addressType = "static"
ethernet0.checkMACAddress = "false"

replace the ethernetX.Address line with something from this list http://hwaddress.com/?q=Apple

Share this post


Link to post
Share on other sites

And why UUID 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 always generated?

 

That is the UUID of Apple specific EFI variables in nvram and cannot be changed.

Share this post


Link to post
Share on other sites

Has there been any updates to this? 

 

I installed Mavericks on VMWS 10, did all the serial/board.id/ethernet stuff from the first post. I'm able to log into icloud and even get photo stream to work.  iMessage still fails activation :(

Share this post


Link to post
Share on other sites

Anyone got this working on ESXi or Workstation 10 ? I`m trying out 10.10 and none of the tricks in this thread worked for iCloud or iMessages. I was able to use EFI64.rom from the fusion, but still it does not work. 

Share this post


Link to post
Share on other sites

Same here. Would love to get imessage working! I heard to use a machine id and identifiers from an actual working Mac but don't know. Also I have a strange feeling Apple has blocked my VMware from activating. Is that posible?

Share this post


Link to post
Share on other sites

Known issue at VMware that the VMware virtual machine is not recognized by Apple. There is no workaround using the information I posted here.

Share this post


Link to post
Share on other sites

Donk,

 

Are you aware of ANY workaround that will get this to work?  If so I would really appreciate if you can point me in the right direction (I see people claim to have it working, but I don't know if that is just noise since I cannot duplicate).  There are many claims VMWARE FUSION 7 on mac does correct this as well.  Now granted that is running on a MAC, but it is still in a VM environment, what is it doing different as the VM is contained and should be identical no?

 

Here it is in a nutshell... I can care less about imessage and facetime on my pc vm of Yosemitee...  I however am a perfectionist and this is the only thing that does not work perfect...  What is very weird is why apple allows the icloud and other things to work without issue, but this does not.

 

Again, Donk, I appreciate your assistance, it's tough to find anyone knowledgeable on this topic.

Share this post


Link to post
Share on other sites

Donk,

 

Are you aware of ANY workaround that will get this to work?  If so I would really appreciate if you can point me in the right direction (I see people claim to have it working, but I don't know if that is just noise since I cannot duplicate).  There are many claims VMWARE FUSION 7 on mac does correct this as well.  Now granted that is running on a MAC, but it is still in a VM environment, what is it doing different as the VM is contained and should be identical no?

 

Here it is in a nutshell... I can care less about imessage and facetime on my pc vm of Yosemitee...  I however am a perfectionist and this is the only thing that does not work perfect...  What is very weird is why apple allows the icloud and other things to work without issue, but this does not.

 

Again, Donk, I appreciate your assistance, it's tough to find anyone knowledgeable on this topic.

 

 

Well I have zero interest in running iMessage within a VM, as I use real Macs for work and play, but do undertsand your interest in getting things just right. There is a very good post on another web site but unfortunately I cannot link to it due to forum rules. Google "How to Fix iMessage"

 

As for the future I have seen what has changed in Fusion 7 and hopefully it will make it into Workstation 11 and ESXi 6. This thread has some of the basics:

 

https://communities.vmware.com/thread/483521

 

What VMware needed to do was pass through two additonal uniqiue identifiers from the NVRAM variables called "MLB" and "ROM". Fusion 7 has some new settings which manage the visibility of those NVRAM variables:

efi.nvram.var.ROM.reflectHost
efi.nvram.var.MLB.reflectHost

would pass through the genuine variables from a real Mac host machine. I also think it is possible to set a value in the VMX file with these 2 settings:

efi.nvram.var.MLB
efi.nvram.var.ROM

Whilst I am not going to try iMessage out, I can test those settings in Fusion and get back with a definitve answer on whether those variables can be manually set.

 

UPDATE:

 

Tried the settings with these tests:

 

1. Reflect the host settings works as expected:

efi.nvram.var.ROM.reflectHost = TRUE or FALSE
efi.nvram.var.MLB.reflectHost = TRUE or FALSE

2. Set values manually works and use 6 digits for ROM and 16 for MLB:

efi.nvram.var.ROM.reflectHost = "FALSE"
efi.nvram.var.MLB.reflectHost = "FALSE"
efi.nvram.var.ROM = "123456"
efi.nvram.var.MLB = "DONKDONKDONKDONKA"

Share this post


Link to post
Share on other sites

Hi Donk,

 

Thanks for the insight, I have been following the topic you mention, as well as a similar one on InsanelyMac, link below:

 

http://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/?p=2060421

 

Both reference the need to have a matching ROM and MLB from a "Real" Mac which can be injected in to a Hackintosh via the Clover config.plist. It is very interesting that the same parameters can now be passed to a virtual OS X machine under Fusion 7. Are these new parameters added in Fusion 7 and hardware version 11?

 

If you have access to a real Mac use the iMessageDebug v2 script to extract the ROM and MLB as well as note the serial number which is also required.

 

http://www.insanelymac.com/forum/files/file/278-imessage-debug/

Share this post


Link to post
Share on other sites

Hi Donk,

 

Thanks for the insight, I have been following the topic you mention, as well as a similar one on InsanelyMac, link below:

 

http://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/?p=2060421

 

Both reference the need to have a matching ROM and MLB from a "Real" Mac which can be injected in to a Hackintosh via the Clover config.plist. It is very interesting that the same parameters can now be passed to a virtual OS X machine under Fusion 7. Are these new parameters added in Fusion 7 and hardware version 11?

 

If you have access to a real Mac use the iMessageDebug v2 script to extract the ROM and MLB as well as note the serial number which is also required.

 

http://www.insanelymac.com/forum/files/file/278-imessage-debug/

 

Hi

 

These are new parameters for Fusion 7, not sure that you need HW11. ESXi 6 has the parameters but the Tech Preview of Workstation 11 is too old to have them but hopefully released version will incorporate them.

 

I am keeping updates to the work on my blog http://daveparsons.net/blog/2014/11/14/pass-real-mac-details-to-vm-part-2/

Share this post


Link to post
Share on other sites

Would we need to wait for the WS11 unlocker to test?

Bs,

 

In a word yes, also we need to confirm the new parameters have made it into the released version of Workstation 11, they were not present in the Technical Preview.

Share this post


Link to post
Share on other sites

Bs,

 

In a word yes, also we need to confirm the new parameters have made it into the released version of Workstation 11, they were not present in the Technical Preview.

I see.

 

Looking forward to updates regarding this. Still hoping to ditch my 10.8.3 VM for Yosemite, mainly for SMS support in Messages. That, or I could just install the recent jailbreak tweak that's similar to AirDroid, in that it has a browser-based interface for handling iMessages and SMS/MMS.

Share this post


Link to post
Share on other sites

New parameters are in Workstation 11 and Player 7.  Also found another one:

system-id.enable = TRUE or FALSE.

The iMessage dump tools seem to want this as well.

Share this post


Link to post
Share on other sites

I need some help.  When I change parameters in Vmx file it doesn't change in osx Leopard when I look in hardware system id. Any suggestions? 

Share this post


Link to post
Share on other sites

 

Well I have zero interest in running iMessage within a VM, as I use real Macs for work and play, but do undertsand your interest in getting things just right. There is a very good post on another web site but unfortunately I cannot link to it due to forum rules. Google "How to Fix iMessage"

 

As for the future I have seen what has changed in Fusion 7 and hopefully it will make it into Workstation 11 and ESXi 6. This thread has some of the basics:

 

https://communities.vmware.com/thread/483521

 

What VMware needed to do was pass through two additonal uniqiue identifiers from the NVRAM variables called "MLB" and "ROM". Fusion 7 has some new settings which manage the visibility of those NVRAM variables:

efi.nvram.var.ROM.reflectHost
efi.nvram.var.MLB.reflectHost

would pass through the genuine variables from a real Mac host machine. I also think it is possible to set a value in the VMX file with these 2 settings:

efi.nvram.var.MLB
efi.nvram.var.ROM

Whilst I am not going to try iMessage out, I can test those settings in Fusion and get back with a definitve answer on whether those variables can be manually set.

 

UPDATE:

 

Tried the settings with these tests:

 

1. Reflect the host settings works as expected:

efi.nvram.var.ROM.reflectHost = TRUE or FALSE
efi.nvram.var.MLB.reflectHost = TRUE or FALSE

2. Set values manually works and use 6 digits for ROM and 16 for MLB:

efi.nvram.var.ROM.reflectHost = "FALSE"
efi.nvram.var.MLB.reflectHost = "FALSE"
efi.nvram.var.ROM = "123456"
efi.nvram.var.MLB = "DONKDONKDONKDONKA"

Made an account to let you know that this fixed the activation issues I had with iMessage and FaceTime.

 

Now I have to figure out why I can't get the text forwarding code to show up on my vm mac.

 

 

Thanks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Donk
      Here is a new utility to patch the EFI firmware in VMware Workstation and Fusion to allow the non-server versions of Mac OS X 10.5 (Leopard) and 10.6 (Snow Leopard) to run. Yoiu will need macOS unlocker 3 if you are using Workstation on non-Apple hardware. I still have to find a way to do this on ESXi as the UEFIPatch utility will not run in the ESXi console.
      This currently supports:
       
      Workstation 11/12/14/15 on Windows and Linux Workstation Player 7/12/14/15 on Windows and Linux Fusion 10/11 on macOS  
      https://github.com/DrDonk/efi-unlocker/releases/download/1.0.0/efi-unlocker100.zip
      https://github.com/DrDonk/efi-unlocker
       
      Please read the readme.txt file for details.
      readme.txt
    • By Donk
      Verision 3 of the macOS Unlocker for VMware Workstation and Player. Supports versions:
       
      Workstation 11/12/14/15 on Windows and Linux Workstation Player 7/12/14/15 on Windows and Linux  
      https://www.insanelymac.com/forum/files/file/963-macos-unlocker-v30-for-vmware-workstation/
      https://github.com/DrDonk/unlocker/releases/download/3.0.2/unlocker302.zip
      https://github.com/DrDonk/unlocker/
      readme.txt
    • By Donk
      macOS Unlocker V3.0 for VMware Workstation ========================================== +-----------------------------------------------------------------------------+ | IMPORTANT: | | ========== | | | | Always uninstall the previous version of the Unlocker before using a new | | version. Failure to do this could render VMware unusable. | | | +-----------------------------------------------------------------------------+ 1. Introduction --------------- Unlocker 3 is designed for VMware Workstation 11-15 and Player 7-15. If you are using an earlier product please continue using Unlocker 1. Version 3 has been tested against: * Workstation 11/12/14/15 on Windows and Linux * Workstation Player 7/12/14/15 on Windows and Linux The patch code carries out the following modifications dependent on the product being patched: * Fix vmware-vmx and derivatives to allow macOS to boot * Fix vmwarebase .dll or .so to allow Apple to be selected during VM creation * Download a copy of the latest VMware Tools for macOS Note that not all products recognise the darwin.iso via install tools menu item. You will have to manually mount the darwin.iso for example on Workstation 11 and Player 7. In all cases make sure VMware is not running, and any background guests have been shutdown. The code is written in Python. 2. Prerequisites ---------------- The code requires Python 2.7 to work. Most Linux distros ship with a compatible Python interpreter and should work without requiring any additional software. Windows Unlocker has a packaged version of the Python script using PyInstaller, and so does not require Python to be installed. 3. Limitations -------------- If you are using VMware Player or Workstation on Windows you may get a core dump. Latest Linux products are OK and do not show this problem. +-----------------------------------------------------------------------------+ | IMPORTANT: | | ========== | | | | If you create a new VM VMware may stop and create a core dump. | | There are two options to work around this issue: | | | | 1. Change the VM to be HW 10 - this does not affect performance. | | 2. Edit the VMX file and add: | | smc.version = "0" | | | +-----------------------------------------------------------------------------+ 4. Windows ---------- On Windows you will need to either run cmd.exe as Administrator or using Explorer right click on the command file and select "Run as administrator". win-install.cmd - patches VMware win-uninstall.cmd - restores VMware win-update-tools.cmd - retrieves latest macOS guest tools 5. Linux --------- On Linux you will need to be either root or use sudo to run the scripts. You may need to ensure the Linux scripts have execute permissions by running chmod +x against the 2 files. lnx-install.sh - patches VMware lnx-uninstall.sh - restores VMware lnx-update-tools.cmd - retrieves latest macOS guest tools 6. Thanks --------- Thanks to Zenith432 for originally building the C++ unlocker and Mac Son of Knife (MSoK) for all the testing and support. Thanks also to Sam B for finding the solution for ESXi 6 and helping me with debugging expertise. Sam also wrote the code for patching ESXi ELF files and modified the unlocker code to run on Python 3 in the ESXi 6.5 environment. History ------- 27/09/18 3.0.0 - First release 02/10/18 3.0.1 - Fixed gettools.py to work with Python 3 and correctly download darwinPre15.iso 10/10/18 3.0.2 - Fixed false positives from anti-virus software with Windows executables - Allow Python 2 and 3 to run the Python code from Bash scripts (c) 2011-2018 Dave Parsons  
    • By Donk
      macOS Unlocker V3.0 for VMware ESXi =================================== 1. Introduction --------------- Unlocker 3 for ESXi is designed for VMware ESXi 6.5 and 6.7. The patch code carries out the following modifications dependent on the product being patched: * Fix vmware-vmx to allow macOS to boot * Fix libvmkctl to allow vSphere to control the guest The code is written in Python as it makes the Unlocker easier to run and maintain on ESXi. +-----------------------------------------------------------------------------+ | IMPORTANT: | | ========== | | | | Always uninstall the previous version of the Unlocker before using a new | | version. Failure to do this could render VMware unusable. | | | +-----------------------------------------------------------------------------+ 2. Installation --------------- Copy the distribution file to the ESXi host datastore using scp or some other data transfer system. Decompress the file from the ESXi console or via SSH: tar xzvf esxi-unlocker-xxx.tgz (xxx - will be the version number, for example, 300) Run the command from the terminal: ./esxi-install.sh Finally reboot the server. 3. Uninstallation ----------------- Open the ESXi console or login via SSH and chnage to the folder where the files were extracted. Run the command from the terminal: ./esxi-uninstall.sh Finally reboot the server. 4. Notes -------- A. There is a command added called esxi-smctest.sh which can show if the patch is successful. It must be run from a terminal or SSH session. The output should be: /bin/vmx smcPresent = true custom.vgz false 38725560 B B. The unlocker can be temporarily disabled during boot by editing the boot options and adding "nounlocker". 5. Thanks --------- Thanks to Zenith432 for originally building the C++ unlocker and Mac Son of Knife (MSoK) for all the testing and support. Thanks also to Sam B for finding the solution for ESXi 6 and helping me with debugging expertise. Sam also wrote the code for patching ESXi ELF files and modified the unlocker code to run on Python 3 in the ESXi 6.5 environment. The code is available at https://github.com/DrDonk/esxi-unlocker History ------- 26/09/18 3.0.0 - First release (c) 2011-2018 Dave Parsons  
    • By jdl6884
      I have been working for days trying to get VM Workstation 14 on windows 10 to run my hackintosh ssd drive... No matter what I try I get a VMWare error when trying to run the VM.... "Error while powering on: Insufficient permissions." I have tried adjusting permissions, changing VM location, mounting/unmounting, tweaking settings, and running as administrator.... all without any luck.
       
      I have a running macOS 14.0 Mojave on a Samsung 970EVO NVMe SSD along with a separate 970EVO running Windows 10.
       
      I am using unlocker 2.1.1, VMWare workstation 14, APFS for windows, and Paragon HFS+ for windows. The macOS partition is on a separate NVME ssd than the windows one. 
       
       
      I was curious to see if anyone had any ideas. I was following this guide primarily but it is a little out dated. 
       
       
       
×