Jump to content

iMessage partially broke, iCloud & App Store fully


dhruvit23
 Share

38 posts in this topic

Recommended Posts

I have the same problem. Initially the trick with Apple id password reset worked for me. Then I tried Chameleon 2286 which broke FileNVRAM, and reverted everything back afterwards.

Now, no matter what I do, iMessage and Facetime do not work anymore: all I get is a "Contact Apple support" dialog and a "Server denied registration support" message in the log

I have everything set up right: network, nvram values and so on. I've tried changing serial number and payment details, still no luck. iCloud, iTunes, AppStore and iMessage on my iPad work fine though.

There must be something else which makes Apple servers think I'm not on a real Mac (which is correct).

Link to comment
Share on other sites

NVRAM works for me with Chameleon 2.2 svn-r2286.

 

If you updated from a previous version using Chameleon Wizard, note that it's not always enough just to replace /boot. You must update all three files. I don't know what he was thinking when he let users get away with replacing only /boot and calling that an update.

 

Or

 

Maybe you just need to delete your NVRAM file and reboot. Or update NVRAM.dylib.

 

Also check this out:

http://www.insanelymac.com/forum/topic/231075-chameleon-22svn-official-pkg-installer-binaries/?p=1979712

It's a bit of work, but adding the missing stuff to your smbios.plist might help.

 

(note that I have no problems with using Facetime, Messages, iCloud or the App Store, besides the annoying iLife '11 update issue which also affects real Macs)

Link to comment
Share on other sites

NVRAM works for me with Chameleon 2.2 svn-r2286.

 

If you updated from a previous version using Chameleon Wizard, note that it's not always enough just to replace /boot. You must update all three files. I don't know what he was thinking when he let users get away with replacing only /boot and calling that an update.

Do you have "Read HFS+ file: [hd(0,2)/Extra/nvram.<uuid>.plist]" message in your bdmesg output when running r2286? In my case it is missing and all NVRAM values reset on every reboot. r2283 works fine though, and NVRAM is properly preserved across reboots.

Also, boot0 and boot1h are completely identical in r2286 and r2283 so that's clearly not the issue.

 

Maybe you just need to delete your NVRAM file and reboot. Or update NVRAM.dylib.

As I told, I have tried literally everything including this. Still stuck with non-working iMessage and Facetime.

 

Also check this out:

http://www.insanelymac.com/forum/topic/231075-chameleon-22svn-official-pkg-installer-binaries/?p=1979712

It's a bit of work, but adding the missing stuff to your smbios.plist might help.

 

(note that I have no problems with using Facetime, Messages, iCloud or the App Store, besides the annoying iLife '11 update issue which also affects real Macs)

Thanks for the link. I used the smbios.plist generated by one of the latest Chameleon wizards. I'll search for the missing parts.

 

Once again: iMessage worked at some point, before r2286 screwed up my NVRAM. I wonder if my UUID got blacklisted on Apple servers or something :)

Link to comment
Share on other sites

The Clover and Chameleon iMessage fixes are all based on ElNono_'s research on the criteria used by Apple to activate iMessage:

Quote from the above post dated Jan 2013
'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.

 

1) PlatformUUID---->This is the same as Hardware ID/SmUUID (32 digits separated by dashes ie XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
The System-ID of a Mac is related to its IOPlatformUUID and is infact used to calculate IOPlatformUUID through some hashing process - see this post by Slice/Dmazar.  It is also 32 digits separated by dashes ie XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX but never the same value as the PlatformUUID.  System-ID can be seen by using the terminal command

ioreg -l -p IODeviceTree | grep \"system-id

2) PlatformSerialNumber---->This is the 12 digit System Serial number you put into your SMBIOS
3) boot-uuid---->related to the GUID of your OSX partition
4) ROM---->Firewire mac address with two middle bytes removed if present, otherwise ethernet mac address

                    (see ElNono_'s post)- 12 digits long
5) MLB---->Main-Logic-Board serial number and must be 17 characters long


My hypothesis is that Apple records the details of the original iDevice used to setup iCloud or iMessage and sets this device as "trusted".

If you activate iMessage/iCloud on your hack using Clover or Chameleon FileNVRAM.dylib module and subsequently any of the above 5 variables change (eg boot-uuid changes if you clean reinstall OSX, platform uuid if you boot the OSX partition with chameleon then later with Clover with an incorrectly specified Custom UUID), then your hack is blacklisted and you get the "contact Apple" error.

The only way I have been able to fix a situation like this is to use my genuine original idevice (be it iPhone or Mac) to change my AppleID password, then login with the said device to iCloud and iMessages. Only after doing this can I re-login to iCloud and iMessages on my hack using the new (changed) password. Note: My account has no credit card details attached (i don't fully trust storing CC details online) but I have read other users report success by adding CC details to their accounts.....it is obviously something at Apple's end that blocks iMessage and either changing password or adding CC details with a real iDevice "resets your AppleID account".

The OP may have to create a new iCloud/iMessage account with a genuine iDevice first before setting up iCloud/iMessage on his hack again (since his iMessage account might be permanently? linked to his father's iphone without contacting Apple).

  • Like 1
Link to comment
Share on other sites

Dron: Yes, as I said nvram works fine for me:

Chameleon 2.2svn (svn-r2286) [2013-12-28 12:29:11]
(...)
Read HFS+ file: [hd(0,2)/Extra/modules/FileNVRAM.dylib] 56136 bytes.
Module 'FileNVRAM.dylib' by 'Unknown' Loaded.
    Description:
    Version: 0
    Compat:  0
Read HFS+ file: [hd(0,2)/Extra/nvram.xxxxxxxx-dad7-dd11-9f31-xxxxxxxxxxxx.plist] 741 bytes.

...so does Messages, iCloud, Facetime, App Store etc etc...

Link to comment
Share on other sites

The Clover and Chameleon iMessage fixes are all based on ElNono_'s research on the criteria used by Apple to activate iMessage:

 

Quote from the above post dated Jan 13

'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.

 

NB There may be more variables involved and Apple can change the "activation formula" at any time from their side.

1) Platform UUID---->This is the same as chameleon's "System-ID" and the default name given to the NVRAM file in /Extra ie nvram.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.plist. You can also determine the Platform UUID from terminal by typing

 

ioreg -l -p IODeviceTree | grep \"system-id

NB The Hardware UUID is derived/calculated from the Platform UUID but is a different number - see this post by Slice/Dmazar

 

2) PlatformSerialNumber---->This is the System Serial number you put into your SMBIOS (11 characters)

3) boot-uuid---->related to the GUID of your OSX partition

4) ROM---->Ethernet MAC address see post by mdmwii

5) MLB---->Main-board serial number and must be 17 characters long

 

My hypothesis is that Apple records the details of the original iDevice used to setup iCloud or iMessage and sets this device as "trusted".

 

If you activate iMessage/iCloud on your hack using Clover or Chameleon FileNVRAM.dylib module and subsequently any of the above 5 variables change (eg boot-uuid changes if you clean reinstall OSX, platform uuid if you boot the OSX partition with chameleon then later with Clover with an incorrectly specified Custom UUID), then your hack is blacklisted and you get the "contact Apple" error.

 

The only way I have been able to fix a situation like this is to use my genuine original idevice (be it iPhone or Mac) to change my AppleID password, then login with the said device to iCloud and iMessages. Only after doing this can I re-login to iCloud and iMessages on my hack using the new (changed) password. Note: My account has no credit card details attached (i don't fully trust storing CC details online) but I have read other users report success by adding CC details to their accounts.....it is obviously something at Apple's end that blocks iMessage and either changing password or adding CC details with a real iDevice "resets your AppleID account".

 

The OP may have to create a new iCloud/iMessage account with a genuine iDevice first before setting up iCloud/iMessage on his hack again (since his iMessage account might be permanently? linked to his father's iphone without contacting Apple).

 

Thank you for taking time to help us solve our issue, I tried changing my password using your method using my iPhone 5 running iOS 7.0.4, and after I tried logging in on my hackintosh, I got the same error again.

Link to comment
Share on other sites

Well, the login-logout trick with an iPhone no longer works. You need to be continuously be logged in to keep it working. I tried around in the past and I can give you my experiences with Clover, which are NO proven but my subjective facts:

 

1) Ethernet is not required. On Chameleon I had to use EthernetBuiltIn all the time, but with Clover I don't need anything like that even when I have no Ethernet driver installed. Ethernet will pop up nowhere, neither in Networks nor in System Profiler, but still iMessages works.

 

2) Logged in iDevices enable login. If you have an iPhone, keep logged in into iMessage and you will be fine. In the moment you log out your hack will fail again.

 

3) Credit card. When you add a credit card to your Apple ID, it's most likely that you get it to work. Since I finally added it I could log in every time I reinstalled OS X directly. This is definitely the best trick so far.

 

Again, these are subjective "facts" with Clover use. It's possible that the Ethernet or other parts do NOT apply to Chameleon or other loaders. NVRAM is required in any case.

Link to comment
Share on other sites

  • 4 weeks later...

@Miztorr: What you said may be right, but it's probably wrong. The first time that NVRAm is set up, those values are randomly selected. That would prevent them from knowing whether those are two different real macs or just the same hack with a couple of changes by the hacker. And, apple has paid no attention to stupid guys like us who install the genuinely purchased OS on their PC as a hobby. And, I've tried restoring my PC(twice) as well. Of course, if they started "recording" MAC addresses, or some other constant hardware serial number, such as, I don't know, processor serial number, than they could say "The processor is the same, serial number is different. Must be a hackintosh." or something like that. Look, all I'm saying is Apple would need something constant, not something that can be emulated by software, to know if a two machines are same, but with different serial numbers that are emulated by a boot loader.

Link to comment
Share on other sites

About FileNVRAM.dylib not loading:

 

Another user had a problem where leftover boot files from Clover prevented modules from loading.

He solved it by zeroing out the boot sector (don't ask me how to do that) and reinstalling Chameleon.

 

Assuming he installed Clover in his hard drive's EFI partition, he can simply reformat the EFI partition in terminal

sudo newfs_msdos -v EFI -F 32 /dev/rdiskXs1

where X is the disk number where the EFI partition resides, then reinstall chameleon.  For good measure, you can also delete rc.clover.lib in /private/etc.

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
 Share

×
×
  • Create New...