Jump to content
InsanelyMac Forum
Donk

How to spoof real Mac in VMware

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.

  • Posts

    • I did try that just now but it seems like the card is still active as it still shows up in system report! I have managed to get the battery meter working but as i said it works only when i unplug/plug the ac adapter. I have to do this once then the meter functions properly.
    • My BIOS has an option of enabling/disabling CSM! I think enabling CSM made my boot menu go non native resolution too!
    • I have a gigabyte Aorus ultra. I don't think so, everything should be uefi. Anything I should look at in particular? 
    • All right now : I have taked delivery of my new TBEX3  this afternoon : plugged and all is fine at startup, screen plugged on USB_C   My Settings recap :   1/ Bios recommended parameters for Thunderbolt + Pci devices set as Legacy 2/ I added arbitrary lines on my config.plist ( Thanks @Matthew82.) <dict> <key>Comment</key> <string>THUNDERBOLT 1577</string> <key>CustomProperties</key> <array> <dict> <key>Disabled</key> <false/> <key>Key</key> <string>model</string> <key>Value</key> <string>Thunderbolt EX3</string> </dict> <dict> <key>Disabled</key> <false/> <key>Key</key> <string>AAPL,slot-name</string> <key>Value</key> <string>Slot-4</string> </dict> <dict> <key>Disabled</key> <false/> <key>Key</key> <string>name</string> <key>Value</key> <string>Thunderbolt 3 Controller</string> </dict> <dict> <key>Disabled</key> <false/> <key>Key</key> <string>device_type</string> <key>Value</key> <string>Thunderbolt 3</string> </dict> <dict> <key>Disabled</key> <false/> <key>Key</key> <string>IOName</string> <key>Value</key> <string>Thunderbolt</string> </dict> </array> <key>PciAddr</key> <string>03:00.00</string>   3/ my SSDT  SSDT-TB3U2.aml.zip
    • Try using this SSDT without changing the name, it's not necessary rename it, Clover knows that it is, and what is does in the system. Also use DropOEM  as true: <key>DropOem</key> <true/>  


×