0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

UPDATE August 24, 2016: I recommend a simpler approach for achieving Bluetooth and WiFi functionality in Hackintoshes which I cover in this post


UPDATE September 11, 2015: In El Capitan GM (Final candidate for release) the method described in this post works perfectly fine to authenticate Messages.


UPDATE: This method is confirmed to work on El Capitan Public Beta You are not required to contact Apple to get Messages to work. Generating a new Serial Number for your Hackintosh and following the steps detailed in the guide will suffice


I built myself a mini-ITX Hackintosh for design and coding, as well as a little audio production.

This particular combination of hardware components can be quite functional and productive once you get everything working. You may find this information on other sites.1 I researched the forums on the said sites and collated information that might serve as a reference for others, with a similar configuration or help someone make a decision.

I am currently running Yosemite 10.10.2 with UEFI Clover.
Messages is working along with Handoff, Continuity, Instant hotspot and the ability to connect to my 5Ghz WiFi network.


Hackintosh with a Focusrite Scarlett 2i2 2 In/2 Out USB Recording Audio Interface

Specifications
Motherboard Gigabyte GA-H97-WiFi
Processor Intel Core i3 4350 3.6Ghz
Case Cooler Master HAF 915R
Graphics nVidia GTX 760 2GB
WiFi/Bluetooth Azurewave CE123H (based on Broadcom BCM4352 reference chipset)

I had to order the Azurewave CE123H card separately, because the included Intel WiFi/Bluetooth combo card does not work with OS X. This card is confirmed to support the Bluetooth 4.0 LE (Low Energy) standard that is used by Handoff and Airdrop features.

Using Clover, installing OS X Yosemite is relatively painless, if you do your research2.

Once you install Yosemite, you will notice that you cannot log into Messages using your iCloud account. Either that or you will encounter an activation error. Additionally, Bluetooth won't be functional, and you won't be able to see your 5GHz WiFi network. Some additional steps are required to get that functional.

I had the following kexts in my EFI > Clover > kexts > 10.10 to get Bluetooth and 5Ghz working. Apparently, these kexts enable the uploading of custom firmware and fake a PCI ID for OS X, so that it thinks that you are using a first-party card.

BrcmPatchRAM.kext, BTFirmwareUploader.kext, FakePCIID_BCM94352Z_as_BCM94360CS2.kext and FakePCIID.kext

  1. In preparation, you must first ensure that your Ethernet card is recognized as en0 in System Profiler. The true reason behind this is to follow the BSD convention. OS X services such as Mac App Store, iTunes Store and Messages as well as iCloud all require that en0 refer to the first, built-in network interface.

  2. Secondly, you need valid MLB and ROM values. These are invariably essential to getting Messages to work. MLB stands for Main Logic Board; and all Mac computers - laptops and desktops have a MLB, which is uniquely identified using a number. This MLB along with a valid ROM value is used for authentication by Messages. ROM here, refers to, or rather used to refer to the Mac's Firewire MAC address. You can use your network interface's MAC address, by going to System Preferences > Network > [Interface: WiFi or Ethernet] > Advanced

  3. Then, open Clover Configurator and mount your EFI partition. Import your config.plist file.

  4. In the SMBIOS section, click the magic wand and generate a SMBIOS that is closest to the configuration of your hackintosh. For example, my hackintosh has a Haswell Core i3, so I went with a iMac13,2. Make sure that you "shake" the values for the week of manufacture and the unit number fields. This will generate a random serial number, which you should check against Apple's database here. The serial number must be invalid, which indicates that it is unique.

  5. Past that, you must take care of the Board-ID, Board Serial Number, Serial Number and SmUUID

  6. In the Rt Variables section, paste the MAC address (without colons) that you obtained in step 2, into the ROM field. In the MLB field, enter the serial number you generated in step 4, and append 5 random hexadecimal letters, so your entire serial number is seventeen digits.

  7. Run the command uudigen in Terminal and paste that value in SMBIOS > SmUUID

  8. Board Serial Number should be the same as MLB

  9. With this, you should enter the appropriate kext patches in Clover's Kext and Kernel Patches to enable the correct locale for WiFi and enable 5Ghz support. I will recommend that you peruse the excellent and comprehensive guide for finding the correct patch for your wireless card here

  10. Run nvram -p in your Terminal and make a note of the values. These should remain persistent even after your restart. This essentially means that the MLB and ROM values, which are used to authenticate Messages will persist ensuring that Messages will be functional across multiple reboots.

  11. Save your config.plist and reboot.