Tuesday 30 March 2010

FAQ: The Firmware Umbrella

I've seen so many questions, comments, misinformation about ECIDs, SHSHs, Apple's TSS Server, Saurik, etc. I've decided to give a quick overview of my app along with its role and how it works with Saurik's Cydia on file mechanism.



Q: What is Umbrella?

A: Umbrella is a small application that sends the same requests to Apple's TSS server (details aren't important) that iTunes sends to Apple's TSS server when iTunes is trying to verify your 3gs restore. When it receives the response from Apple's TSS server, it saves the response (if the response is positive) in a formatted file that can be used with TinyTSS.



Q: I'm not jailbroken. Do I need to be jailbroken to be able to get my SHSH hashes saved (either locally or on Cydia)?

 A: NO. Umbrella only uses your ECID (which you can obtain in a couple different ways without being jailbroken) to obtain your SHSH hashes. If you select the Saurik - Cydia option in the "SHSH Repository" combo box, Umbrella will request the SHSH files through Cydia. This will have Cydia send the request to Apple (thereby saving the results in Cydia's "on file" list) and return the results to you. This also allows you to request from Cydia older SHSH hashes for your ECID IF CYDIA ALREADY HAS THEM. I cannot emphasize that enough...



Q: If I have a new device or simply never decided to jailbreak until now, is there any possible way for me to get older SHSH hashes for my device?

A: Unfortunately NO. The way Apple's TSS server works is they effectively only sign SHSH hashes for a specific firmware version for a limited time. Once they stop signing a version (like 3.1.2) and start signing a new version (like 3.1.3) they _do_not_sign_ the older version again. It's very much like missing the last boat to old-version-local-restore-land. You just can't get it anymore.



Q: So there is no other way for me to obtain older SHSH hashes for my device if I waited too long or just by dumb luck bought my device too recently?

A: Yes and No. Yes Apple TSS server will NOT sign your simple ECID request from Umbrella. This is the default answer and for most folks, I'm sorry. If you are one of the very few individuals that happened to save your temporary files during a 3.0.1 or 3.0 or 3.1 or 3.1.2 restore AND happen to have all of the required temporary files, TinyTSS can reconstitute your temporary files into your SHSH hash for the version of temporary files that you have saved. Keep in mind, the files are deleted after the restore process so if you are reading this and thinking "WOW I WONDER IF THEY'RE STILL THERE FROM THE RESTORE I DID 45 mins AGO!?" I can answer the question for you - They aren't. You have to have saved the files DURING the restore process. Not before. Not after. You have a tiny window in which to save those files and very few people actually save them at the right time. BUT. If you are one of the insanely lucky individuals that saved the right temp folders at the right time during a restore of an older firmware version. You can use TinyTSS to create your SHSH hash file for that version.





Q: What do I need in order to run Umbrella?

A: It depends on your OS. If you're on a Mac java is typically installed on for you on Snow Leopard. If you run an older version of OSX, you'll have to open Terminal and run "java -version" and see if you get a 'version'. You need version 1.5+ to run Umbrella and TinyTSS. (JDK/JSDK/JRE all work fine so if you are just a user don't worry about installing the full JDK/JSDK the JRE will work fine for you). If you run Linux just "sudo apt-get install sun-java6-bin" if I remember correctly. If you run Windows, you'll need to check your java version by opening a command window and typing "java -version". If it comes back 1.5 or greater you can run the .exe files. Otherwise you'll have to upgrade your java runtime environment (JRE) via java.sun.com. Incidentally, you'll also need your ECID for Umbrella (there are countless tutorials on this) and you'll need a proper SHSH hash file for TinyTSS (or a folder/folders containing temp restore files for SHSH file reconstitution).



Q: How do I know if my SHSH file is valid?

A: If the file that gets saved is anywhere from 60-65k bytes then the file should be just fine.



Q: The file I got from Cydia does not match the file that Umbrella got from Apple should I be worried?

A: Absolutely not. The only difference between the files is whitespace and the XML headers. Neither make any difference at all to the TSS process. (Incidentally when TinyTSS responds to iTunes TSS requests in a real restore, iTunes is perfectly tricked by the reponses that TinyTSS generates).



Q: Should I be worried about iTunes updates?

A: VERY MUCH YES!!! iTunes updates can completely break the restore process. The whole reason TinyTSS works is because iTunes is faked into thinking it's talking to the REAL Apple TSS server. Future versions of iTunes can very easily stop this process. In fact, evidence is showing that future versions of iTunes WILL break local restores by Cydia and TinyTSS. Apple also seems to be planning to move this functionality into the bootrom of devices so that restores will be ONLY possible via a valid responds from Apple themselves.



Q: What iTunes version do you use?

A: I'm on 9.0.2 because Requiem works perfectly on it and local restores work perfectly as well.



Q: Why do I get error 16xx, 13xx etc when I try restoring using TinyTSS?

A: First, ensure that you have TinyTSS running. Then, make sure your hosts file has an entry matching (whitespaces and quotes ignored) "127.0.0.1 gs.apple.com". Then, make sure you are restoring to the exact version of OS that you have REAL SHSH hashes for. Changing the name of the file won't change the hashes. (Yes - some folks actually thought that would make a difference). If you have valid hashes for the version you wish to restore to check the version of iTunes you are running. I know for a fact that 9.0.2 works every time. I have heard that 9.0.3 works fine as well. Beyond that I'm unsure. If you're getting exceptions go ahead and write a comment and I'll take a look at it.



Q: Why did you do this in Java?

A: Because it was faster for me to get this out to everyone in Java (across multiple platforms, OSes, OS Versions) than it would have been in any other language.



Q: I cannot listen on port 80! I can't start up TinyTSS because it says the port is in use! HELP!

A: On this I cannot help you much. You're going to have to do some legwork to figure out your own machine. Google is your friend. Try googling " default services port 80" and see if you get any hints. TinyTSS MUST listen on port 80 AND the hosts entry must exist (127.0.0.1 gs.apple.com) in order to trick iTunes.



Q: Umbrella is just not working it's saying that it cannot even get my SHSH file for the current device version!

A: Did you remember to remove the hosts entry? If you have 127.0.0.1 gs.apple.com OR if you have an entry pointing gs.apple.com to any other site ie: cydia. You may have to comment it out using # and save it and then try Umbrella again. 



Q: Can I use my friend's hacked ipsw to downgrade my 3.1.3 device to 3.1.2?

A: No. You MUST have your ECID shsh hashes for the version you wish to restore to on a 3GS/ipod touch 3G device.





Those are the few questions I can think of off the top of my head. There are many more and I'll add to this list as I think of more questions.



 



No comments:

Post a Comment