Checking the signing status of a certain iOS version can usually be done by simply attempting to restore that firmware in iTunes. This isn’t always practical, however, so we will use tsschecker to find out instead.
First, download tsschecker.
When you first open it, tsschecker will not be executable. To fix it, point terminal into the directory with ‘cd’, then run
$ chmod +x tsschecker_macos
The Finder icon for tsschecker will change from a white sheet of paper to a black executable icon. The file type will also change to Unix executable.
You should now be able to execute tsschecker with
This gives us a list of parameters. The ones we will be using are -d and -i. -d is used to specify the device by its model identifier. For example, if we are checking for iPhone 6, we would enter ‘-d iPhone7,2’. You cannot specify a device by its retail name. For example, ‘-d iPhone 6’ will NOT work.
Next is -i. This is used to specify iOS version. It is very simple, just ‘-i 11.4.1’.
Now that we have these two things, we can put it together to get
$ ./tsschecker_macos -d iPhone7,2 -i 11.4.1
Our output should look something like this:
Version: 7d267698cb16ab4699fa9cba20783ee041ac999e - 212 [TSSC] opening firmware.json [DOWN] downloading file https://api.ipsw.me/v2.1/firmwares.json/condensed [JSON] counting elements [JSON] parsing elements [TSSC] got firmwareurl for iOS 11.4.1 build 15G77 [TSSC] opening Buildmanifest for iPhone7,2_11.4.1_15G77 [LFZP] downloading BuildManifest.plist from http://updates-http.cdn-apple.com/2018/ios/091-74855-20180709-81396E0E-7C1C-11E8-A003-A75B544C24EB/iPhone_4.7_11.4.1_15G77_Restore.ipsw 100 [===========================================================================033 [================================> 058 [=========================================================> 083 [===========================================================================100 [===================================================================================================>] [TSSR] Request URL set to https://gs.apple.com/TSS/controller?action=2 [TSSR] Sending TSS request attempt 1... success iOS 11.4.1 15G77 IS signed! iOS 11.4.1 for device iPhone7,2 IS being signed!
Tsschecker will present you with the build number of the version and its signing status.
That’s all there is to it. If you would like to save SHSH for the version you checked, just add -e and -s.
To check beta firmware, BuildManifest.plist from the ipsw is required. To specify the manifest, we will use -m.
Additionally, we need to use – -beta and – -buildid to tell tsschecker that the firmware is beta. The use of – -beta is simple. Just put it right after -i. As for – -buildid, put that right after the version number, and specify the build number of the firmware being checked. When completed, the command should look like this:
$ ./tsschecker -d iPhone7,2 -m /Users/jf/Desktop/iPhone_4.7_11.4.1_15G5077a_Restore/BuildManifest.plist -i --beta 11.4.1 --buildid 15G5077a
Some devices have different board configs. iPhone 6s for example, can be N71AP, or N71mAP. N71AP being the Samsung CPU version and N71mAP being TSMC. For devices like this, we need to use -B (yes, uppercase). This allows us to specify our board config. Here is what it should look like:
$ ./tsschecker -d iPhone8,1 -B n71map -i 11.4.1
Keep in mind, this is only necessary when saving SHSH. If you are simply checking the version, board config can be left out.