Q: What is TinyUmbrella?
A: It does two things:
  • Requests SHSH signatures for firmware restores
  • Plays back those signatures enabling iTunes to continue the restore
Q: What is an SHSH?
A: An SHSH is a secure signature hash. Basically its a unique key. (To avoid a lengthy discussion).


Q: Why do I need SHSHs?
A: Apple only allows you to restore to the firmwares they 'sign'. This 'signing' only lasts for a limited time. Once they stop 'signing' the SHSHs for a firmware, there is no way to restore that firmware ever again.


Q: I have X.X.X on my iphone/ipod/ipad/appletv why can't I just restore that version to my iphone/ipod/ipad/appletv?
A: Once Apple stops signing that firmware version, there is no way to get the SHSH that will allow the restore to continue. Just like you can't go back in time and invent Google. It's done. It is in the past.


Q: Well that sucks, are there any options or solutions to fix this problem?
A: Saurik, the creator of Cydia, wrote a paper http://www.saurik.com/id/12. The day Saurik published that article I wrote the firmware umbrella (the original name of TinyUmbrella). I released it the day after. Essentially, Cydia stores your SHSH on his remote server. He also has a mechanism for requesting the SHSH for new firmwares when they come out. This is a safe and effective way to save the SHSH of a jailbroken device. If you are not jailbroken and want to save your SHSH, your only real choice is to use TinyUmbrella which does not require you to be jailbroken. Furthermore, TinyUmbrella sends the SHSH request through Cydia's servers which turn around and request the SHSH from apple. This results in your SHSH being saved on Cydia and then also locally on your home computer.


Q: Why did you write TinyUmbrella in java?
A: It's the language I'm most familiar with and it's also the easiest way I could think of to write a fairly complicated application in a day that also works on windows as well as mac.


Q: Why do you call them Blobs and SHSHs and signatures?
A: These names can be used interchangably. The actual data portion of the SHSHs are found in a keys named <key>Blob</key>. The SHSH itself is just a long sequence of data that represents a hash (unique value) of your personalized image files located in your ipsw. Technically, there are 20+ SHSHs in an SHSH signature file that TinyUmbrella saves. All of these individual SHSH blobs are necessary for the restore to function properly.


Q: Why does TinyUmbrella require administrator privileges?
A: TinyUmbrella does two things which require admin rights:
  • Modifies your hosts file
  • Listens on port 80 of your local machine
Q: What is a hosts file?
A: Your hosts file basically handles mapping host names to ip addresses.


Q: TinyUmbrella says that it cannot listen on port 80. How do I fix that?
A: That is a very complicated issue. Here are some common fixes:
MAC
  • Disable Web Sharing. System Preferences -> Sharing -> Uncheck "Web Sharing"
  • Stop any programs that are known to use port 80: Skype, Teamviewer, PlayOn, etc
  • Open Terminal and do this:
    • sudo lsof -i :80 | grep LISTEN
    • If the above command shows you an application running, try running this:
      • sudo kill -9 $(sudo lsof -i :80 | grep LISTEN | awk '{print $2}')
  • If that doesn't do the trick, then you'll have to consult google.
PC
  • Go to services: Start -> run -> services.msc and look for Apache or any other application that runs on port 80 and stop it.
  • If that doesnt work, you'll need to consult google.
  • Try "netstat -aon | findstr LISTEN | findstr ":80"
    • Kill or disable the service LISTENING on port XX.XX.XX.XX:80
Q: How do I save my SHSHs on Cydia?
A: If you have the option "Request SHSH From Cydia" enabled your SHSHs are requested through Cydia. This means that if your request results in successful saved files, Cydia DOES have your SHSHs. There is no way to force Cydia to store SHSHs for older versions of firmwares. There are security concerns there.


Q: MAC ONLY: When I try running TinyUmbrella it crashes, in console.app it shows an error 255. How can I fix that?
A: This is a permissions issue. Run the following from Terminal:
sudo chown -R $USER ~
sudo chmod -R u+rw ~
And then after that reinstall TinyUmbrella. This should solve the issue.