1 Answer
1

To answer the question, you'll need to understand how Apple's push notification service works. Every application that wants to use push notifications must register with the Apple Push Notification Service (APNS). Typically, this is done right after installation. iOS asks the user if the app is allowed to receive push notifications. If the user agrees, his iPhone talks to the APNS and requests a token that can identify the combination of application and device. This token is then handed to the service provider (i.e. the developer of the application). If the provider wants to send a push notification, it sends this token along with the payload to the APNS, which then delivers the message. So you can imagine the token as some kind of address. That is, the provider has to include the token in every push message request.

But how is the token generated? According to Apple's docs, the registration mentioned above works as follows: The device sends its unique device token (this is another one!) to the APNS and requests the mentioned deviceToken from the APNS. This deviceToken depends amongst others on the device ID and the app ID and is generated using cryptographic functions, so it cannot be forged.

Now here's the point: The unique token iOS needs to register applications and hence to allow push notifications is generated during the activation process in iTunes. The unique token also uses cryptography and can only be obtained from Apple during this activation process. Jailbroken and hacktivated iOS devices never perform the official activation, so they miss the token. Hence, push notifications cannot work (at least if Apple did not make a major mistake in the implementation).

Thanks for such a detailed explanation :) .But there are some apps like BBC whose pushes work on jailbroken devicess.How that is possible?
–
YogiJul 19 '12 at 7:13

1

You must distinguish between jailbreaking and hacktivating. Devices can be jailbroken without being hacktivated. This leaves the option to perform the activation process if you insert a legitimate SIM card. To be precise, activation uses the IMSI from your SIM card to verify that your device/card combination is officially supported. If this is the case, Apple is going to activate your device regardless of the jailbreak.
–
Björn MarschollekJul 19 '12 at 7:25

OK..But the devices I am testing on are not having sim cards in them. Still they are able to send the token successfully. Its working and so I just wanted to be clear about how the process works. Sorry if I am asking too much.
–
YogiJul 19 '12 at 7:29

There is no need for a SIM, as long as the unique token has been generated during the official activaition. The activation needs a supported SIM, though.
–
Björn MarschollekJul 19 '12 at 7:45