mercoledì 17 settembre 2008

Come recuperare i dati dai file di backup dell'iPhone

7-7-2011 NdR vedi nota aggiunta in fondo al post per recenti aggiornamenti

Se avete un iPhone saprete che questo, ogni qualvolta venga collegato al computer, attraverso il programma iTunes, esegue un backup dei suoi dati. Questi dati vengono salvati sul Mac nel seguente percorso:
~/Library/Application\ Support/MobileSync/Backup/
ed il formato di archiviazione è compresso ed illeggibile (esadecimale).

Qualora si volesse accedere al contenuto di questi backup, al di fuori del contesto "iTunes", ciò è possibile solo utilizzando qualche strumento software che possa aprire e leggere il formato in cui vengono appunto salvati alcuni set di dati. Cercando in rete sono incappato proprio nello strumento adatto a questo scopo(NdR vedi nota aggiunta in fondo al post per recenti aggiornamenti):
Questo è uno script scritto in Python che consente di accedere in lettura ai file di backup ed estrarre i dati compressi contenuti. Ovviamente per utilizzare questo script dobbiamo necessariamente aprire l'applicazione "Terminale" di Mac OS X ed avere una certa esperienza con i comandi e la shell Unix. Se non sapete di cosa sto parlando allora vi consiglio vivamente di limitarvi alla lettura dell'articolo e magari a cercare, se serve, un aiuto da qualche amico più esperto.

Prima di provare ad estrarre e leggere i file consiglio di fare una copia di backup della directory

~/Library/Application Support/MobileSync/Backup/

e fare le vostre prove e test proprio sulla copia di questa cartella. Mi raccomando non modificate l'originale!

Entriamo nel dettaglio dei comandi:
Supponendo che abbiate copiato la vostra cartella sulla Scrivania, dal terminale digitate

cd ~/Desktop/MobileSync/Backup/

quindi nella directory "Backup" troverete una o più sottodirectory con un nome fatto di numeri molto criptico. Nel mio caso, come mostro qui sotto

2b74013b32dc969897fa8d826f66c6952e2fc2e2


Scendendo ancora nella struttura della directory, e quindi nella cartella appena mostrata, troveremo tutti i file contenenti i dati di backup. Questi file sono caratterizzati dall'estensione ".mdbackup"
E' ora giunto il momento di lanciare il nostro script python dalla linea di comando del terminale
python ./decode_iphone_backup_v2.1.py *.mdbackup

passandogli come parametro "*.mdbackup" ;
verrà così creata una cartella MobileSyncExport contenente tutti i file estratti.

Troverete all'interno di questa altre cartelle, diversi file plist (Property List File) e database SQLite( che potrete esplorare con la utility SQLite Database Browser ). Ovviamente consiglio di navigare un pochino fra queste cartelle per scoprire meglio il loro contenuto.

Per fare un esempio pratico: Io ho installato sull'iPhone l'applicazione Air Sharing per archiviare e leggere file di diversi formati(PDF, DOC, JPG, ETC. Per una descrizione del programma rimando all' iTunes Store categoria Produttività); supponiamo che io voglia recuperare proprio questi file. Cercando tra le cartelle estratte ho trovato proprio una denominata "Air Sharing" all'interno della quale c'erano salvati alcuni dei miei ebooks.


Una volta che si sono tirati fuori i dati o meglio i file contenenti i dati, quest'ultimi, a secondo della loro natura(testo, video, audio,etc) dovranno essere editati con gli strumenti adeguati.
Va precisato che questo script attualmente opera una decodifica dei file di backup ma non è in grado di ricodificare, cioè ricreare file di backup leggibili da iTunes.

Questa procedura nel complesso può sembrare un po' difficile ed ostica ma ritengo che a fronte del recupero dei nostri preziosi dati, tutto sommato due gocce di sudore ce le possiamo anche sprecare ;-)

Ad MAiora

AGGIORNAMENTO DEL 7-7-2011

Grazie alla segnalazione di un lettore riporto qui di seguito la URL http://supercrazyawesome.com/ all'applicazione "iPhone/iPodTouch Backup Extractor" che semplifica completamente tutta la procedura sopra descritta. L'applicazione è però sviluppata solo per piattaforma Mac OS X.

Ad Maiora

12 commenti:

  1. Bel tutorial ma per Windows? La procedura funziona anche se ho Windows ed iPhone?

    RispondiElimina
  2. Premesso che non l'ho provato, però direi che se si ha Python 2.3 o succ. installato, e sapendo che la directory di backup di iPhone su Windows è "\Document and Settings\nome_utente\Dati applicazioni\Apple Computer\MobileSync\Backup\" direi che dovrebbe funzionare. Mi raccomando di fare qualsiasi prova su una copia della directory di backup e non sull'originale.

    RispondiElimina
  3. Gentilissimo , non avendo nessuno esperto a cui chiedere sto tentando di arrangiarmi.
    Cosa dovrei fare per scendere nella directory? Grazie.
    Ah e poi il file in python devo posizionarlo da qualche parte in particolare?

    RispondiElimina
  4. Ciao Anonimo,
    cerco di rispondere ai tuoi 2 quesiti:

    1)Per scendere nella directory non devi fare altro che dare il comando

    cd nomedirectory

    infatti cd in Unix sta per "change directory";

    2)Per quanto riguarda lo script Python lo puoi mettere proprio nella directory contenente i file con estensione ".mdbackup"
    Mi raccomando appuntodi usare la sintassi:

    python ./decode_iphone_backup_v2.1.py *.mdbackup

    facendo attenzione a non tralasciare il punto "." davanti allo slash "/"

    RispondiElimina
  5. veramente adesso esiste un programmino con interfaccia grafica che è veramente pratico (http://supercrazyawesome.com/ : iPhone/iPod Touch Extractor), poi confermol'utilizzo di SQLite Database Browser per entrare ad esplorare i .db

    RispondiElimina
  6. Grazie Anonimo, come puoi immaginare quando ho scritto il post non avevo trovato questo "programmino", o forse non c'era ancora. Comunque il bello dei blog è proprio questa interazione fra chi scrive e chi legge che fa migliorare dinamicamente l'informazione fornita. Mi raccomando continua a leggermi e commentarmi ;-)

    RispondiElimina
  7. Come si chiama la cartella ccontenente le photo?

    RispondiElimina
  8. @Andrea: Dovrebbe essere una sottocartella di nome "Media"

    RispondiElimina
  9. A questa url troverete l'applicazione sviluppata dall'autore dello script:

    http://supercrazyawesome.com/

    Fa tutto da sola. Dovete solo indicare quali file desiderate estrarre e dove volete che vengano posizionati.

    Grande.... Merita una donazione...

    RispondiElimina
  10. @Anonimo: GRAZIE x questo interessante contributo!!!! ^___^

    RispondiElimina
  11. Ciao ragazzi! Ottima guida. Per windows però non mi sembra funzionare, lo script mi dà un errore di sintassi alla riga 23 (comando print).

    Avete idee???

    Grazie! Ciao

    RispondiElimina
  12. @Anonimo: Ciao Anonimo facciamo che nel prossimo commento ci scrivi il tuo nome? Io qui ci metto il mio! :-)
    Detto questo, prova ad inviare uno screenshot dell'errore così cerco di capire meglio quale potrebbe essere il problema.

    Ad MAiora

    RispondiElimina

Per cortesia quando lasciate un commento identificatevi con il nome. Rispondere ad un anonimo per me che ci metto la faccia non è proprio il massimo ;-) Grazie