Wednesday, 19 May 2010

TinyUmbrella - Unified TinyTSS and The Firmware Umbrella in ONE!

03.13.83 - Changes



  • Fixed a bug for ppc users. Sorry minimum osx required version is 10.5 - I couldn't get the thing working in 10.4 because of some dependency changes from 10.4 -> 10.5.

  • Should now work on mac mini's if you have Leopard.

  • Cosmetic changes

  • Some small refactorings to get ready for ios4.







03.13.81 - Changes

  • OK so I fixed a huge error that rendered restores basically impossible because of some stupid oversight. Please update to 03.13.81 so you can correctly restore your device and not fail at the iTunes screen :) Thanks guys - keep the bug reports coming!

  • I can confirm that restores work as I've used my own iPhone 3GS on 3.1.2 as a test.

03.13.79 - Changes

  • Detects if port 80 is in use and should properly report why it cannot start. I may add a feature to detect the actual PID that is using port 80.

  • Added the region info to the model number to aid users in finding the carrier to which their device is locked. IE: Model Numbers in the USA that end in LL/A are locked to AT&T.

  • Various and sundry minor defect/exception fixes.

03.13.73 - Changes

  • Added Log instead of a single label for feedback

  • Added context menu for ECID text and the Log console


    • Copy - Copy the whole ecid to clipboard

    • Copy (Hex) - Copy the ecid as Hex number

    • Paste - Paste the ECID in the clipboard

    • Clear - Duh?


  • Pastebin submission of log file (right click -> Pastebin Log)

  • Hovering over ECID field will display a tooltip of the ECID in Hex format

  • The OSX version no longer needs to be started twice the very first time its launched! (I no longer fail at execl!)

  • The OSX version now should work on Leopard (10.5)

  • The OSX version can be dragged into the /Applications folder





TinyUmbrella is ready for testing. I've done most of what I said I would do in the last post. TinyUmbrella is a combination SHSH file saver as well as local TSS server. For those of you that have no idea what that is I'll explain.



If you have one of the following devices:

  • iPhone 3GS

  • iPod Touch 3rd Generation (32 or 64)

  • iPod Touch 2nd Generation (with a model number MC) 

Then you have probably noticed that Apple does not let you go back down to older firmware versions for your device. Once you 'upgrade' they don't let you downgrade. The way they stop you is basically by a simple response that iTunes receives when you try to restore the firmware of your choosing. See, the firmware is now signed for the above devices. It is signed with a unique id (ECID) that only your device has. Apple takes the firmware version files and combines them with your ECID and generates a hash that ONLY APPLE can generate. iTunes packages up this valuable information and sends it to your device. Your device checks the information and verifies the signature (making sure it really came from Apple because it CANNOT be forged as the encryption is very high). If the signature matches then the restore process can continue. If the signature does not match, the device raises an error and the restore process stops. Thanks to Saurik (Jay Freeman) we all now know how to circumvent this. Apple only provides this signature for firmware versions while the firmware version is 'Active'. So once a new firmware version is out, Apple stops signing the older version and only signs the new version. This is why you cannot get 3.1.2 signatures anymore. Apple is currently only signing 3.1.3 signatures (and 3.2 for iPads). This will change when the next firmware is released. Soon 3.1.3 (and 3.2) firmware signatures will be a thing of the past and Apple will only sign the next one. The version is important. If you do not have the EXACT signatures for the exact device (ECID) for the exact firmware version, you cannot restore that device to that version. PERIOD. So, if there was a way to save that signature for later use, we could bypass the need for asking Apple (only to have them say 'No') to restore our firmware. If you have a jailbroken device, you can visit cydia and your shsh will be saved 'on-file'. But if you are not jailbroken yet, or if a jailbreak has not yet been released for the firmware your device is on, you are just out of luck as you can only get cydia if you are jailbroken. This is where TinyUmbrella comes in.





TinyUmbrella sends the same exact request that iTunes sends Apple when requesting the signatures for your device to be restored. The difference is that TinyUmbrella does not need to do anything to your device. You do not need to be on the firmware version that TinyUmbrella is requesting signatures. As an example, I've been on 3.1.2 for quite some time. TinyUmbrella has saved my 3.1, 3.1.2 and 3.1.3 signatures. This is because the request that iTunes sends to Apple includes your ECID and the details about the firmware version. Apple sends the response signatures and TinyUmbrella saves them so you can use them whenever you want; Even if Apple has stopped signing that particular version.





The latest version of TinyUmbrella contains a small server that forces iTunes to connect to it instead of going to the apple servers. When you run TinyUmbrella and start the TSS server, your saved SHSH signatures will be cached up and ready for use. Once TinyUmbrella is running and the TSS server is running. You can open iTunes and start your restore to the firmware version you have SHSH files for. iTunes will accept the responses as if they had come from Apple itself.





It is important to realize that Apple can disable this in a future iTunes update. Currently iTunes v9.1.1 (12) works perfectly. Always be wary of any iTunes updates. Feel free to follow me on twitter (@notcom) and I'll let you know if iTunes versions are TinyUmbrella - safe. 



TinyUmbrella is also able to detect your ECID so you don't have to do anything like enter recovery and search through obscure system windows to find your ECID. It's automatic. All you have to do to save your SHSH is press the Save My SHSH button. TinyUmbrella even makes the request through Cydia so that Cydia will have your device's SHSH signatures 'on-file' immediately. This gives you double protection of having your SHSH signatures locally as well as on Saurik's trusted servers.





I put a lot of work on this little tool. I hope it helps many of you restore your devices even after Apple thinks you shouldn't be able to. In my opinion, I should be the final say when it comes to what versions of what software runs on my device. I think you feel the same way too.





I've made the OSX and Windows versions of TinyUmbrella available for beta testing. It's an open beta so feel free to give it a try. Let me know if you come across any issues. Here are the system requirements:





OSX

  • OSX 10.6.x - known issues on 10.5

  • Java 1.5+ (ships with 10.6)

  • iTunes 9.0 - iTunes 9.1.1 (25) (other versions I'm not 100%)

  • Administrator Privileges to run on port 80 and make /etc/hosts modifications

Windows

  • Windows XP, Vista, 7 (x86 or 64bit)

  • Java 32 bit (VERY important - will not work if you have 64 bit Java running)

  • iTunes 9.0 - iTunes 9.1.1 (25) (I've personally tested on 9.0.0 and 9.1.1)

  • Administrator privileges for running on port 80 and making hosts changes

TinyUmbrella makes the necessary configuration changes for you on-the-fly so that you don't have to play with your hosts file in order to route iTunes to your computer. I also save your shsh files in your home directory under the directory called ".shsh". You can also drag and drop old shsh files you have created from previous versions of umbrella onto the TinyUmbrella window and they will be renamed and saved to the .shsh directory for use by the TSS server.





I plan on fixing bugs before release and getting the Linux version completely working before calling it a release.

No comments:

Post a Comment