Just some notes about iMessage:
As we found out some time ago (in the Clover thread on ProjectOsx) - iMessage trys to use the nvram vars MLB and ROM which are present on real Macs.
MLB is the Main Logic Board serial number (the value which is sometimes reported in profiler as the "Serial Number (processor tray)", not the "Serial Number (system)")
ROM is a value being read when booting from address 0xFFFFFF01, which is somehow related to MAC address. On some macs it is identical to the ethernet MAC address, on others to the firewire MAC address (without the two middle bytes, as the firewire MAC address is longer)
We can see those vars on real Macs by:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB; nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
Long time ago, iMessage would not work with Clover (when it still worked with Chameleon), as MLB and ROM were being set to arbitary values (boot.efi read them from memory and set the nvram vars).
This problem never existed in Chameleon, as Chameleon would just return EFI_UNSUPPORTED, avoiding these vars from being set.
So, back then, in order to make iMessage work for Clover, we just deleted one of these vars, and then iMessage switched to the old authentication method (aka not using these vars, like it was for Chameleon). But this authentication method is now blocked.
If now we set these values (before OSX loads) to logical values, the error message when trying to log in changes to the following message:
"Your Apple ID can't be used to set up iMessages at this time." You can see this exact message here: http://support.apple.com/kb/HT5419
By the way, this is the same message that I get also on my (real) MacBook3,1 when trying to sign in to iMessage (ML is not officially supported on that computer).
That message also persisted on the real MacBook3,1 even when I changed SMBIOS data and serials to MacBookPro3,1 (which is supported by ML), so there's obviously something else missing.
On the MacBook3,1 it should have been easier to achieve this, as it doesn't use FakeSMC, and probably has most values set correctly (definitely more than on a Hack).
MacBook3,1 and MacBookPro3,1 are also the same generation. Same EFI version, same chipset, same CPU (Apple just decided not to support ML on the MacBook3,1 probably due to not wanting to support the X3100 gfx, as that's the only real difference between the two).
So just to make it clear, setting that ROM and MLB changes something, and makes iMessage on Hackintosh to behave like it does on unsupported Macs (e.g. MacBook3,1), but it is not enough to solve the problem. There is something else we haven't found out yet.
Edit: some clarifications