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
http://www.ziddu.com/download/3366256/iRecoveryWin32.zip.html (usate questo nuovo mirror!)
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:
by wEsTbAeR– and Tom3q
=======================================
::
:: 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 comando “fsboot“ 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)
-
Archivi
- Ottobre 2009 (1)
- Settembre 2009 (2)
- Aprile 2009 (3)
- Marzo 2009 (6)
- Gennaio 2009 (8)
- Dicembre 2008 (1)
- Ottobre 2008 (13)
- Settembre 2008 (11)
- Agosto 2008 (1)
- Luglio 2008 (1)
- Giugno 2008 (5)
- Maggio 2008 (11)
-
Categorie
- Accessori
- Android
- Apple
- Applicazioni
- Aspire One
- Audio
- Auto
- DivX
- Enterprise
- Firmware 3.0
- Firmware 3.1
- Giochi
- GPS
- Hacks
- iGO
- iPhone
- iPhone 3G
- iPhone nano
- iPod
- iPodTouch
- iSpazio
- Jailbreak
- Macworld
- microsoft
- mobile
- Moblie World Congress
- Morph
- MultiTouch
- Musica
- Netbook
- News
- Nokia
- Open handset alliance
- Problemi Firmware 3.0
- Pwnage
- Rumors
- sblocco iPhone
- SDK
- Second Life
- Surface
- Temi
- Touch
- Tricks & Tips
- varie ed eventuali
- Video
- Voip
- Web-Appl
- WWDC 2008
- Youtube
-
RSS
Ingressi RSS
Commenti RSS