Doesn't iMessage require some sort of Apple-issued device id? A key, unique to a device, hard-coded in the SoC? (which is easy to block if over-used).
Which is why hackintoshes used to require crazy workarounds to get this working, even with Apple's own software, if I remember correctly (never tried myself, could be wrong).
How did they get around this? (did they?)