Jump to content

L'ECID, questo sconosciuto


tom1

Recommended Posts

Uno degli argomenti dei quali maggiormente si discute nell'ultimo periodo qui sul forum è il salvataggio dell'ECID, e dal contenuto delle domande pare abbastanza evidente che non si è ben compreso cosa sia ed a cosa serva.

Ho pensato quindi di postare questo messaggio al fine di cercare di chiarire la situazione (e, non prendetevela, di cercare di evitare che vengano ripetute all'infinito sempre le stesse domande).

 

 

Premessa

 

con i nuovi 3GS ed il firmware 3.1.x Apple richiede, per poter ripristinare, che il procedimento sia controllato dai suoi server. Questo si ottiene con un protocollo di richiesta/risposta: una parte del firmware viene inviato ai server Apple, che decidono se autorizzare o meno l'operazione - il che spiega il perché iTunes rimuove fisicamente dal PC i vecchi firmware che fino a quel momento conservava.

Per nostra fortuna, la richiesta che l'iPhone invia non contiene un numero casuale (perché a quel punto mi par di capire saremmo stati davvero nei guai) ma un numero fisso codificato nel telefono, quello del chip interno del telefono stesso - l'ECID (o Exclusive Chip ID). Perciò quando di ripristina un firmware si invia ai server Apple l'ECID del nostro telefono: se il server 'accetta' il firmware che si sta installando restituisce al telefono un file che contiene l'SHSH, cioè l'hash della firma digitale: con quel file si signa l'iBSS, che altro non è che una modalità di boot del telefono. Riuscendo a riprodurre artificialmente l'accoppiata ECID/firma iBSS è possibile caricare qualsiasi firmware.

Il sistema, nei fatti, consente ad Apple di 'firmare' e consentire l'installazione solo dell'ultimo firmware (al momento di andare in stampa il firmware 3.1.3 ): se si cerca di ripristinare un firmware precedente - ad esempio per fare il downgrade ad un firmware 3.1.2 per fare il jailbreak con Blackra1n - i server Apple riconoscono un firmware non 'autorizzato' e non restituiscono il file.

 

 

L'ECID e Cydia

 

L'approccio di Saurik è stato quello di ricavare tramite Cydia quanti più ECID possibile e di utilizzarli per generare dei files SHSH usando lo stesso procedimento di firma di Apple, SHSH che poi tiene archiviati nei suoi server. Se uno ha il file SHSH archiviato sui suoi server può in qualsiasi momento fare il downgrade: modificando il file hosts come indicato nelle guide linkate in fondo, iTunes si connette al suo server invece che a quello di Apple, invia in richiesta l'ECID ed ottiene in risposta il corrispondente file SHSH. A quel punto si autorizza l'installazione di qualsiasi firmware, e si può tranquillamente downgradare (anche se il processo è estremamente complicato, prevede almeno due ripristini e comporta comunque la segnalazione di una serie di errori).

Al momento il servizio di archiviazione e messa a disposizione dell'ECID da parte di Saurik è sospeso, dato che l'uscita di Spirit ha moltiplicato i salvataggi di ECID e, conseguentemente, gli accessi ai server di Saurik.

 

 

Salvare l'ECID in locale

 

Di recente sono stati escogitati dei metodi per salvare il file SHSH in locale sul proprio computer.

Uno è quello di utilizzare AutoSHSH, ma non avendo un PC non ho idea di come si usi. Mi risulta, peraltro, che l'utilizzo sia assolutamente semplice.

In alternativa si possono utilizzare due programmi - per PC e per Mac - che si trovano qui; il programma Umbrella per Mac consente di recuperare il file SHSH sia dai server Apple che dai server di Saurik (se funzionanti e, ovviamente, se ce l'avete già salvato prima).

 

 

Bene, adesso ce l'ho: ed ora cosa me ne faccio?

 

La risposta è abbastanza semplice: per il momento, niente.

Dato il meccanismo di funzionamento che ho descritto prima, è ovvio che il file SHSH può essere utilizzato solo per ricreare l'accoppiata ECID/SHSH di cui ho parlato in premessa, e quindi per consentire il ripristino di un firmware: in questo caso il file SHSH che io salvo oggi mi potrà servire solo per ripristinare il firmware oggi disponibile, e mi potrà servire in un futuro per ripristinare questo firmware quando uscirà il firmware successivo.

 

Facciamo un esempio pratico:

Supponiamo che io salvi il mio file SHSH oggi (quando è disponibile il firmware 3.1.3): questo significa che io ho ottenuto e salvato il file con il quale Apple mi consente di installare il firmware 3.1.3. Naturalmente oggi non me ne faccio nulla, dato che per ripristinare il firmware 3.1.3 basta che faccia un semplice ripristino da iTunes. Nel contempo, non lo posso utilizzare per ripristinare un firmware precedente (ad esempio per fare un downgrade), dato che l'SHSH che ho sgraffignato ad Apple serve solo per il firmware 3.1.3.

Domani, però, Apple rilascia il firmware 3.2 (e, di conseguenza), comincia a rilasciare files SHSH solo per il firmware 3.2: a quel punto, utilizzando il mio ECID ed il file SHSH che ho archiviato, posso ripristinare un firmware 3.1.3 anche se Apple non me lo consente, utilizzando le modalità descritte più avanti.

 

Il che, in definitiva, significa che quando si salva un file SHSH non ha nessuna importanza quale sia il firmware che si ha sul proprio apparecchio: l'ECID che si invia ad Apple è sempre lo stesso e l'SHSH che si riceve in cambio è sempre quello dell'ultimo firmware rilasciato da Apple.

 

 

Modalità di ripristino di un firmware precedente.

 

Una volta in possesso di un file SHSH rilasciato per un firmware, al passaggio al firmware successivo si può ripristinare il firmware precedente senza problemi.

La cosa si può fare in due modi, tramite Cydia o in locale.

Link to comment
Share on other sites



Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...