iCloud and FaceTime on 10.7.2, featuring the many colors of Chameleon

Quick post– I had sunk hours into trying to log into iCloud from my 10.7.2 Lion installation, but continually received this error:

“This Apple ID is valid, but is not an iCloud account.”

FaceTime wasn’t cooperating either (not that I cared, but it helps in terms of symptom diagnosis).  I immediately turned to the network issues that plagued my original Lion installation by making it unable to connect to the App Store, but strangely enough, the App Store was working fine; I was able to download and install the recently-released Xcode 4.2 directly from the App Store.

The InsanelyMac forums indicated two possible causes of the problem:

  1. Chameleon was out of date; I was running the ancient R755 release, as I didn’t really have a reason to update it.
  2. My SMBios.plist, which governs the way OS X perceives the Hackintosh hardware, might have an invalid serial number.
I updated Chameleon to the 1618 release (which supposedly fixes the problem).  Note:  Updating to any of the 1xxx releases of Chameleon (meaning version 2.0 or greater) requires the creation of an org.chameleon.boot.plist file that mimics the com.apple.boot.plist file.  It behaves the exact same way as the com.apple.boot.plist file, but I guess the Chameleon team decided that they should customize their own settings .plist rather than utilize one which mimics the com.apple.boot.plist found in /Library/Preferences/SystemConfiguration/.
If you’re not using a tool like Chameleon Wizard or ChamPlist to keep your Chameleon boot loader fresh, I highly recommend both of them.  They check the Chameleon development team site and allow you to update your Chameleon version with the latest trunk.  Be careful, though, as the latest and greatest isn’t always, well, the greatest.  I digress…
Long story short, NEITHER updating my Chameleon version to the 1618 build nor ensuring a proper serial number in my SMBios.plist (using the ChamPlist tool) fixed iCloud.  I double-checked the org.chameleon.boot.plist to ensure that my ethernet card was detected as built-in and my PCI root was listed correctly:
<key>EthernetBuiltIn</key>
<string>Yes</string>
<key>PCIRootUID</key>
<string>0</string>
You can also verify this by checking in the /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist for an ethernet entry listed as en0 and that it is detected as built-in:
<key>Interfaces</key>
	<array>
		<dict>
			<key>Active</key>
			<true/>
			<key>BSD Name</key>
			<string>en0</string>
			<key>IOBuiltin</key>
 <true/>
			<key>IOInterfaceType</key>
			<integer>6</integer>
			<key>IOInterfaceUnit</key>
			<integer>0</integer>
			<key>IOMACAddress</key>
			<data>
			AB190lHh
			</data>
			<key>IOPathMatch</key>
			<string>IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEX4@1C,4/IOPCI2PCIBridge/GIGE@0/AppleRTL8169Ethernet/IOEthernetInterface</string>
			<key>SCNetworkInterfaceInfo</key>
			<dict>
				<key>UserDefinedName</key>
				<string>Ethernet</string>
			</dict>
			<key>SCNetworkInterfaceType</key>
 <string>Ethernet</string>
		</dict>

Everything looked good– but still no dice.

Finally, I updated to the latest Chameleon build (as of yesterday), 1627VS.  And what do you know…

Boom

TL; DR: Updating to Chameleon 1618 DIDN’T work for me; updating to Chameleon 1627VS did the trick.  Hope this helps!