How to fix iMessage issues, and why it occur in the first place
Why the issue occurs
One very common issue with Hackintoshes is an inability to log in to iMessage, iCloud, ect. There have been various fixes for the issue; however, they are somewhat scattered throughout forum sites; I will attempt to assemble them here.
There are two basic reasons:
Apple computers store a lot of their identification information in their BIOS. This causes a lot of issues for hackintoshes because OS X assumes that information will be there, and it cannot boot without it. We get around this issue by injecting SMBIOS through our bootloaders. This way OS X believes it’s running on a real mac and can access all the identification stuff it needs to run. However, Apple’s services attempt to read the serial number of the motherboard, which they cannot do on a hackintosh. This causes them to fail.
The second issue is a result of OS X’s naming convention for network interfaces. Hackintoshes use a much wider verity of wireless cards, so they may end up with an identifier that OS X and Apple’s services may not be designed to handle.
How to fix the issue with Clover
The latest versions of clover automatically inject the motherboard serial number, so that is not an issue. Just make sure you are running the latest build of Clover.
The second issue can be solved with automatic DSDT patches which can be activated from the Clover Configurator.
Launch the Clover Configurator and open your config file /EFI/CLOVER/config.plist
For a wired connection: Under the ACPI tab, check the FixLan patch under the Old Way DSDT Patches.
For a wi-fi: Check the Wifi or FixAirport option.
Save your config file and restart your computer
You will then need to delete and re add your connection under System Preferences>Networking be sure to name it en0
How to fix the issue with Chameleon/Chimera
Chameleon makes this fix a good bit more complicated, and as far as I can tell it only works with wired connections.
First we must install the NVRAM module. Download the file from here, use the latest version. Credits to xZeneu
Now unzip the archive, and move the FileNVRAM.dylib to /Extra/modules/ If there is no module folder in /Extra, create one.
This should solve the serial number issue. Now for the network interface.