Anno2008 nel 2009 ::: Crockard’s Weblog!

Recovery mode, DFU ed il tool iRecovery!

Da quando ho l’iPhone 3G il mio iPodTouch è diventato la cavia per qualche test.

Una cosa che volevo testare da un pò era la possibilità di mettere il device in DFU senza l’ausilio dei tasti home e power. Ho trovato tempo fà questo interessante articolo su iPhoneitalia che spiegava come fare (con tanto di link al seguente archivio (DFU.zip) da scaricare).

L’obiettivo è aggiornare il firmware ad un amico (mitico Paolo!) che ha un iPhone 2G (ancora con firmware 1.1.4) con il tasto power rotto, solo che è meglio fare qualche test prima di tentare sul suo.

I files nell’archivio sono i seguenti:

dfu.exe
iBSS.m68ap.RELEASE.dfu
iTunesMobileDevice.dll

L’articolo su iPhoneitalia spiegava semplicemente che da prompt dei comandi, lanciando DFU.exe con il parametro iBSS.m68ap.RELEASE.dfu il telefono sarebbe entrato in DFU.

Lanciando il comando DFU.exe iBSS.m68ap.RELEASE.dfu però mi ha solo mandato in recovery il device.

Ho provato ad estrarre da un firmware per iPod Touch il file dfu specifico per iPod Touch (questo è il nome iBSS.m45ap.RELEASE.dfu), ma il risultato è sempre lo stesso:  il device non và in DFU, solo in recovery mode!

Il metodo spiegato nell’articolo di iPhoneitalia non permette di entrare in DFU ma solo in recovery mode (DFU = schermo completamente bianco, recovery mode = logo di iTunes, per intenderci).
A conferma di questo, ho letto le seguenti parole su TheiPhoneWiki:

Software cannot be used to reliably enter DFU. Software methods rely on sending a WTF file which either calls the “real” DFU mode in bootrom or emulates it. If you are attempting to exploit the DFU, it is advisable to always use the hardware method. If your NOR firmware is corrupted, of course you have no recourse but to use the hardware method. (link)

Da qui in avanti la sperimentazione è diventata puro smanettamento per risolvere il seguente problema:  il mio iPod Touch non vuole proprio uscire dalla recovery mode!
Dopo aver letto in giro un pò di metodi, non funzionanti, ecco la soluzione: iRecovery!

iRecovery è un tool sviluppato da Chronic Dev che permette l’interazione con l’iPhone (o iPodTouch) tramite USB; si appoggia ad iBoot ed è disponibile al download (compilato per Windows) al seguente link:

http://aux.dottru.net/~joseph/iRecoveryWin32.zip

mentre se volete compilarvelo  qui c’è il sorgente

Dopo aver installato libusb (lo trovate nell’archivio sopra riportato) e collegato il Touch con il cavetto usb, dal prompt dei comandi ho lanciato iRecovery -s per aprire una shell sull’iTouch. Ecco cosa mostra a video:

iRecovery – Recovery Utility
by wEsTbAeR– and Tom3q
Got USB


=======================================
::
:: iBoot for n45ap, Copyright 2008, Apple Inc.
::
::      BUILD_TAG: iBoot-385.49
::
::      BUILD_STYLE: RELEASE
::
::      USB_SERIAL_NUMBER: CPID:8900 CPRV:20 CPFM:03 SCEP:04 BDID:02 ECID:00000373F81E2DB5 SRNM:[1D7430VDW4N]
::
=======================================

[FTL:MSG] Apple NAND Driver (AND) RO
[NAND] Device ID           0×2555d5ec
[NAND] BANKS_TOTAL         4
[NAND] BLOCKS_PER_BANK     8192
[NAND] PAGES_PER_BANK      1048576
[NAND SECTORS_PER_PAGE    4
[NAND] BYTES_PER_SPARE     64
[FTL:MSG] FIL_Init            [OK]
[FTL:MSG] BUF_Init            [OK]
[FTL:MSG] FPart Init          [OK]
read old style signature 0×43303034 (line:286)
[FTL:MSG] VFL Register    [OK]
[FTL:MSG] VFL Init            [OK]
[FTL:MSG] VFL_Open            [OK]
[FTL:MSG] FTL Register    [OK]
[FTL:MSG] FTL_Open            [OK]
Boot Failure Count: 0   Panic Fail Count: 0
Entering recovery mode, starting command prompt
] (Recovery) iPhone$

Con il comando “help” è possibile ricevere l’elenco dei comandi iboot disponibili, nel mio caso è bastato il comandofsboot per riavviare l’iPodTouch nella modalità normale (attendete almeno un minuto dopo aver lanciato il comando).

Secondo problema:  il sistema si è correttamente riavviato, mostrandomi la springboard e tutto il contenuto del mio device, perfetto.
Quando però ho provato a spegnere e riaccende, il Touch è tornato ancora in recovery mode! Senza aver toccato nulla.

Questo è dovuto dal fatto che l’iPhone o iTouch tenta di effettuare il boot dal ram-disk errato. La soluzione sta nella nvram.

Aprendo una sessione SSH con Putty ed eseguendo il seguente comando ho risolto l’errore del riavvio in recovery mode:
nvram auto-boot=true

ulteriori info sul boot: http://wikee.iphwn.org/s5l8900:dualboot

Per ora l’iPhone di Paolo avrà sempre il firmware 1.1.4, intanto spero che questo delirio di info possano essere utili a qualcuno! :)

Ciao
Crockard (Andrea)

Gennaio 5, 2009 - Pubblicato da crockard | Hacks, Tricks & Tips, iPhone, iPhone 3G, iPodTouch | , , , , , | 11 Commenti

11 Commenti »

  1. ciao ho visto che parli parecchio di iphone nel tuo blog cosi’ magari mi sono chiesto se potevi aiutarmi…

    il mio problema lo puoi leggere qui:
    http://www.italiamac.it/forum/showthread.php?p=3840876&posted=1#post3840876

    ti sarò grato anche se darai uno sguardo e ti verrà in mente qualcosa.Avrei voluto contattarti per email ma non l’ho trovata ne qui ne su Linkedin.La mia mail è david.dd@libero.it.Grazie ciao

    Commento di Davide | Gennaio 21, 2009 | Replica

  2. ciao ho visto che parli parecchio di iphone nel tuo blog cosi’ magari mi sono chiesto se potevi aiutarmi…

    il mio problema lo puoi leggere qui:
    http://www.italiamac.it/forum/showthread.php?p=3840876&posted=1#post3840876

    ti sarò grato anche se darai uno sguardo e ti verrà in mente qualcosa.Avrei voluto contattarti per email ma non l’ho trovata ne qui ne su Linkedin.La mia mail è david.dd@libero.it.Grazie ciao

    Commento di Davide | Gennaio 21, 2009 | Replica

  3. Ciao Davide, ti ho risposto su italiamac.it!

    Commento di crockard | Gennaio 22, 2009 | Replica

  4. Ciao Andrea, ho letto del tuo “problema” (o sarebbe meglio dire della tua sfida) e mi e’ venuta una idea !
    il buon “vecchio” Ziphone aveva la modalita DFU nelle sue opzioni avanzate provalo !
    forse ti puo’ aiutare
    fammi sapere ciao

    Commento di capino | Febbraio 10, 2009 | Replica

  5. Ciao Capino! Ho scaricato (dopo mesi di Pwn) Ziphone proprio ieri perchè avevo bisogno di recuperare una dll Apple che Ziphone include … ed ho notato la modalità DFU! Al momento non ho il mio iPodTouch per fare i test, ma proverò quanto prima! Grazie per la dritta!

    Andrea

    Commento di crockard | Febbraio 10, 2009 | Replica

  6. Ho lo stesso problema del riavvio in recovery mode in un iphone 3G, pensi che la guida possa valere anche per il mio?

    Commento di Bryan | Aprile 9, 2009 | Replica

  7. @Bryan
    Si si, allora in breve (i dettagli sono nell’articolo) :
    con iRecovery utilizzi il comando “fsboot” per avviare il sistema.
    Poi se hai SSH installato (se no installalo da Cydia) usi Putty o un terminale per autenticarti sull’iPhone e lancia il comando “nvram auto-boot=true”.
    Fammi sapere
    ciao!

    Commento di crockard | Aprile 9, 2009 | Replica

  8. Ciao, grazie per le info…ho una domanda. Il problema del riavvio in recovery mode me lo fa con un iphone non jailbreak, quindi non posso collegarmi via SSH.

    Commento di Bryan | Aprile 9, 2009 | Replica

  9. Ok allora a questo punto io opterei per lanciare il boot con iRecovery (comando fsboot) e dopo che l’iPhone ti ha mostrato la SpringBoard collegalo al pc/mac, fai un backup di tutte le info personali, magari sincronizzandolo con iTunes e poi procedi con un bel ripristino.

    Commento di crockard | Aprile 9, 2009 | Replica

  10. Salve, io sono in una situazione simile (l’iPhone 3G se lo spengo/riaccendo va in modalità recovery e devo tutte le volte avviarlo con fsboot). Il mio problema deriva dal tentativo di downgrade dalla 3.1 alla 3.0. UItilizzo iRecovery per il solito errore dovuto alla diverse versioni tra baseband (ormai in 3.1) e OS 3.0.
    Per risolvere il problema dei continui riavvii con iRecovery temo che il ripristino non funzioni :-(

    Commento di darth | Luglio 6, 2009 | Replica

  11. @darth
    il comando nvram auto-boot=true non ti ha aiutato?

    Commento di crockard | Luglio 6, 2009 | Replica


Lascia un commento