$ chmod +x tsschecker_macos
$ ./tsschecker_macos
Version: 7d267698cb16ab4699fa9cba20783ee041ac999e - 212
Usage: tsschecker [OPTIONS]
Checks (real) signing status of device/firmware
-d, --device MODEL specific device by its MODEL (eg. iPhone4,1)
-i, --ios VERSION specific iOS version (eg. 6.1.3)
--buildid BUILDID specific buildid instead of iOS version (eg. 13C75)
--boardconfig BOARD specific boardconfig instead of iPhone model (eg. n61ap)
-h, --help prints usage information
-o, --ota check OTA signing status, instead of normal restore
-b, --no-baseband don't check baseband signing status. Request a ticket without baseband
-m, --build-manifest manually specify buildmanifest. (can be used with -d)
-s, --save save fetched shsh blobs (mostly makes sense with -e)
-u, --update-install request update ticket instead of erase
-l, --latest use latest public iOS version instead of manually specifying one
especially useful with -s and -e for saving blobs
-e, --ecid ECID manually specify ECID to be used for fetching blobs, instead of using random ones
ECID must be either dec or hex eg. 5482657301265 or ab46efcbf71
--apnonce NONCE manually specify APNONCE instead of using random one (not required for saving blobs)
--sepnonce NONCE manually specify SEPNONCE instead of using random one (not required for saving blobs)
--save-path PATH specify path for saving blobs
-h, --help prints usage information
--beta request ticket for beta instead of normal relase (use with -o)
--list-devices list all known devices
--list-ios list all known ios versions
--nocache ignore caches and redownload required files
--print-tss-request
--print-tss-response
$ ./tsschecker_macos --boardconfig n69ap -i 10.3.3 -e 1B6F714B51C -s
Version: 7d267698cb16ab4699fa9cba20783ee041ac999e - 212
[TSSC] manually specified ecid to use, parsed "1B6F714B51C" to dec:1885341005084 hex:1b6f714b51c
[TSSC] opening firmware.json
[JSON] counting elements
[JSON] parsing elements
[TSSC] got firmwareurl for iOS 10.3.3 build 14G60
[TSSC] opening Buildmanifest for iPhone8,4_10.3.3_14G60
[TSSR] Request URL set to https://gs.apple.com/TSS/controller?action=2
[TSSR] Sending TSS request attempt 1... success
also requesting APTicket for installType=Update
[TSSR] Request URL set to https://gs.apple.com/TSS/controller?action=2
[TSSR] Sending TSS request attempt 1... success
Saved shsh blobs!
iOS 10.3.3 14G60 IS signed!
iOS 10.3.3 for device iPhone8,4 IS being signed!
然后是最新版系统的签名。
$ ./tsschecker_macos --boardconfig n69ap -l -e 1B6F714B51C -s
Version: 7d267698cb16ab4699fa9cba20783ee041ac999e - 212
[TSSC] manually specified ecid to use, parsed "1B6F714B51C" to dec:1885341005084 hex:1b6f714b51c
[TSSC] opening firmware.json
[JSON] counting elements
[JSON] parsing elements
[TSSC] selecting latest iOS: 11.0
[TSSC] got firmwareurl for iOS 11.0 build 15A372
[TSSC] opening Buildmanifest for iPhone8,4_11.0_15A372
[LFZP] downloading BuildManifest.plist from http://appldnld.apple.com/ios11.0/091-31853-201700919-35B5A2B8-9027-11E7-B85A-3435B64D2808/iPhone_4.0_64bit_11.0_15A372_Restore.ipsw
100 [===================================================================================================>]
[TSSR] Request URL set to https://gs.apple.com/TSS/controller?action=2
[TSSR] Sending TSS request attempt 1... success
also requesting APTicket for installType=Update
[TSSR] Request URL set to https://gs.apple.com/TSS/controller?action=2
[TSSR] Sending TSS request attempt 1... success
Saved shsh blobs!
iOS 11.0 15A372 IS signed!
iOS 11.0 for device iPhone8,4 IS being signed!
这时候在当前文件夹下,就会出现这两个shsh2结尾的文件。
$ ls
1885341005084_iPhone8,4_n69ap_10.3.3-14G60_806ad0d4924260cd1377598e29479fed39cb971e.shsh2 1885341005084_iPhone8,4_n69ap_11.0-15A372_7e6938b4c98d29906565189507cda7980952ca5e.shsh2