Closed yjugl closed 3 years ago
After recompiling futurerestore
, I can confirm that for the moment this patch in tsschecker
actually breaks futurerestore
behavior for the same devices. The patch can be used now to start save SHSH blobs with tsschecker
before iOS 15.0 build 19A346
becomes unsigned, however performing successful restores with futurerestore
on those devices will require more work.
The proper fix for this problem is actually to update tss.c
by integrating idevicerestore
upstream changes. Hence I'm closing this PR and will propose a new one to replace it.
Hello,
When using
tsschecker
to fetch SHSH blobs foriOS 15.0 build 19A346
for my iPhones X and XR, I encountered error 94This device isn't eligible for the requested build
. However, the devices are eligible, andmacOS Finder
is able to restore them to that version of iOS. After comparingmacOS Finder
's TSS request to that oftsschecker
, I was able to fix the problem by patchingtsschecker/tss.c
.While
tsschecker
currently copies the fullManifest
information for the build it selects, it turns out that some entries are removed bymacOS Finder
. ForiPhone10,3
model withiOS 15.0 build 19A346
, the keys that were present intsschecker
's request but absent frommacOS Finder
's wereSE,UpdatePayload
and numerous keys of the formSavage,{B0,B2,BA,BE,BF}-{Dev,Prod}-Patch{,VT}
. In particular,BE
andBF
keys were not present in theManifest
foriOS 14.8 build 18H17
for whichtsschecker
does not encounter error 94. Spotting this difference in the requests led me to try the linked patch, which worked for bothiPhone10,3
andiPhone11,8
models.I would not recommend a simpler patch that would just remove keys with a comma in the name because key
Ap,SystemVolumeCanonicalMetadata
is an example of a key thatmacOS Finder
does not remove from theManifest
. Apart from observingmacOS Finder
's behavior, I have no global idea regarding which keys should be kept and which should be removed.For the moment this patch allowed me to save SHSH blobs for my devices, but I was not yet able to restore them to
iOS 15.0 build 19A346
with those blobs. Indeedfuturerestore
depends ontsschecker
, so using the available binary releases offuturerestore
fromm1stadev
results in the same error 94 when the tool fetches a ticket for the latest SEP firmware. I do believe though that recompilingm1stadev
's fork of thefuturerestore
tool with the fix fortsschecker
would allow one to restore with the saved blobs. I will confirm this when I have the time to recompilefuturerestore
.I would like to thank all people who worked on
tsschecker
andfuturerestore
, and my employer Quarkslab who let me perform this investigation as R&D time.