Showing posts with label umbrella. Show all posts
Showing posts with label umbrella. Show all posts

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.



 



Monday, 16 November 2009

iPhone OS 3.1 Locked

It looks like Apple finally locked 3.1 and will now only sign 3.1.2 iPhone 3gs OS ECID shsh requests. It just goes to show that anyone that has any desire to save their OS version should obtain their ECID shsh signatures using Umbrella as soon as possible before they release the next iPhone OS and render 3.1.2 locked.

Thursday, 8 October 2009

Support for 3.1.2 + SHSH parsing

Umbrella and TinyTSS have been updated to provide support for 3.1.2. I've also made a couple cosmetic modifications (an about menu option).



TinyTSS now also reconstitutes the shsh response from the binary restore files thanks to information I got from theheadfl. TinyTSS will detect the version of the restore files based on the .dmg files and recreate a file that can be used with TinyTSS to perform restores; just like the file Umbrella produces. TinyTSS also pulls the ECID out from the shshs for the naming of the file.



And, because someone complained I've added a build number to the archive file. I know it's not full versioning but tbh I don't get paid for this so I really don't care enough to do more.



207: Changed the AWFUL logging format for TinyTSS.

213: Fixed an egregious error with 3.0.1 - Wrong plist in the distro - somehow I was using the iPhone 1g 3.0.1 ipsw buildmanifest - Thanks CleanAir75

215: Added full partial digest checking for detection of shsh version.

216: Added ipt3g/2g 3.1.2 shsh support! Removed unnecessary class(es)

217: Fixed a stupid bug concerning SAX parsers and xml entity resolvers... ugh.


218: Added 3.1.3 support - Not that I can think of any real reason to restore to 3.1.3



Enjoy




Download



fw-umbrella-semaphore-218.zip md5: a0e5082be5aa480539a3444dcd0bf920

fw-umbrella-semaphore-218.zip sha1: b48159004a82714b316029ade808ac5810d92b6c




umbrella.exe md5:  6a964cb8f507748244358115c6639387

umbrella.exe sha1:  9dcda837bcd2881b3d44c0a36bccad809a7a3766

tinytss.exe md5:  16ed36f69d7b918524f70695cbe592ca

tinytss.exe sha1:  600b6d0c3a7c9d2fa45d5b61f2c7f92d3159deb0

umbrella64.exe md5: 1b722a485d03e19fca9d299ba2f790d8

umbrella64.exe sha1: a2d7daa57f7790121d8071371d2e7156cca9db11

tinytss64.exe md5: a6eca19690a53f3963d7aed3e1c68d4d

tinytss64.exe sha1: a43448a271093b9ee454744a38d75949cd729747

Umbrella.dmg md5: 04d7654cee890a61e5cf471a0c183995

Umbrella.dmg sha1: 6616c86ee997cfc5837b6705d6ae6c3eaa41757c



Saturday, 19 September 2009

TinyTSS -- All your iphone restores are belong to you

TinyTSS is a small java app that acts as your very own signature service.

When iTunes verifies your restore for your 3gs phone, it 'phones home' to see if you are allowed to restore to the version you are requesting. With TinyTSS + the shsh blob file(s) you obtained with Umbrella, you will be able to restore to the version of those shsh files forever!

People may wonder why I did this when Saurik is already doing the same thing. I'll explain my philosophy. I admire Saurik for what he has done and I thank him for pointing me in this direction. I simply think that I would rather have my shsh blobs on my personal machine AND on his server for safe keeping. This way if something happens to cydia, I can still restore my phone to the version I want to restore to.

Plus I have the peace of mind knowing that my files are safely in my possession. I don't have to worry that some catastrophic event could render my downgrades impossible.

So use cydia's shsh storage feature! But use Umbrella and TinyTSS if you are a power user that wants control over your own ecid shsh files and want to be able to use your own machine for restores.

I've fixed a bug that I introduced accidentally. I had forgotten to add a library or two to the Manifest so it wasn't able to run from the jar.

UPDATE: I've revamped the readme file. It should be a bit more informative. Also removed an error on JRE 1.5 on Leopard

UPDATE: You can follow me on twitter: notcom

Download Umbrella and TinyTSS together:

If you need an md5 checker I like: Nirsoft's MD5 Checker

I've gotten quite a few questions about donations. I'll accept donations but I want it clear that I did this for fun.
If you really want to donate you can contact me at xsemaphorex (the symbol for the word "at") gmail (the dot symbol) com.