Anno2008 nel 2009 ::: Crockard’s Weblog!

Firmware 3.0 (e 3.1) su iPhone 3G – Grossi problemi con WiFi – CONTINUE

Incredibile, ieri sera, dopo 2 mesi di mutismo totale, il mio iPhone ha trovato la rete WiFi di casa mia e si è connesso! Ho subito aperto AppStore (per fare una prova), ho scaricato un’applicazione gratuita e a fine download, dopo circa un minuto …. tadaaaa … connessione persa! 😦

Ora non trova più reti WiFi come prima… in pratica si è risvegliato ieri sera per 1 minuto circa! Ed è ri-morto ancora 😦

Tutto questo è accaduto dopo che l’ho messo in recovery (volevo testare iPhuc), ma non so se c’è un legame.

Di sicuro una cosa è certa: il mio iPhone non ha un guasto hardware!

Annunci

ottobre 1, 2009 Posted by | Firmware 3.0, Firmware 3.1, iPhone, iPhone 3G | , , , | 23 commenti

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:

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           0x2555d5ec
[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 0x43303034 (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 Posted by | Hacks, iPhone, iPhone 3G, iPodTouch, Tricks & Tips | , , , , , | 32 commenti