Friday 13 November 2009

How to create a unique certificate for your iPhone for Push Notification

First, a big thanks to Aviegas for writing this tutorial. This tutorial appeared in a different long thread. For the history of the original discussion, you can read it here. By making it into a new thread and sticky, it will be easier for users to follow and easier to find.

You need to get Dev Team's PushFix here. You need it for generating & injecting the certs.(Don't get mix up with the PushFix available in Cydia that people are using (cydia.iphoneil.net) after jailbreaking with blackra1n RC3)


To generate a cert, one must:
1) Start with a clean iPhone, after a RESTORE with a Pwned (Custom) IPSW *WITHOUT HACKTIVATION*

2) iTunes activate for Apple to sign the new set of certificates

3) Install (Cydia) SSH or terminal

4) Install a valid PUSH App and RUN THE APP (this will activate the certificates)

5) Install "nimble" (from the Dev Team Fix package), using SFTP or iFunBox, on the /Library/Keychains directory

6) Open a root shell on the iPhone (SSH or "terminal" + "su -") and "cd /Library/Keychains"

7) Make "nimble" executable: chmod +x nimble

8) Then "nimble" (extract) the certificates

9) Copy the 4 .bin files to a safe directory on your Mac/PC using SFTP or iFunBox

10) Zip the directory, send to the lucky receiver AND ERASE IT SO THAT ONLY ONE PERSON WILL HAVE THIS SET OF CERTIFICATES

11) Remove all files and folders in "/private/var/root/Library/Lockdown"

12) Turn "Push notifications" OFF and remove the PUSH APP you installed

13) Reboot the iPhone

14) iTunes activate for Apple to sign the new set of certificates

15) GO TO STEP (4)

Now to install the certificates:
1) Start with a jailbroken and hacktivated iPhone AND REMOVE ALL PUSH NOTIFICATION APPS AND TURN NOTIFICATION OFF

2) Install (Cydia) SSH or terminal

3) Copy (SFTP or iFunBox) the 4 bin files and "inject" (from the Dev Team fix) to /Library/Keychains"

4) Open a root shell on the iPhone (SSH or "terminal" + "su -") and "cd /Library/Keychains"

5) Make "inject" executable "chmod +x inject"

6) Run "inject"

7) remove "inject" and the bin files from your iPhone

8) Reinstall the required PUSH APP and test

9) On your PC, save the bin files for future use, but ONLY ON THIS IPHONE. DO NOT SHARE THIS FILES OR EVEN INSTALL ON ANOTHER IPHONE.** THE SET OF CERTIFICATES ARE UNIQUE TO AN IPHONE

**The certs contains an UUID (unique ID) that is used to distinguish the phones for PUSH notifications. If 2 iPhones have the same certs, push notifications will not be able to distinguish them and the last one to register with the push server will be the one active.

** If you have a hacktivated iPhone, then the *only* way to get push notification is to make the "certificate transplant" and keep them *unique*.


Dtube - Hackint0sh.

No comments:

Post a Comment