Montare l’iPod originale e accedervi come a un’unità USB era facile. Si può fare anche con un iPhone, anche se esistono approcci diversi a seconda del tipo di dati con cui vuoi lavorare.
In questo articolo esploreremo i seguenti approcci:
| Tecnica | File disponibili | Requisiti |
|---|---|---|
| PTP | Foto e video | Integrato in Windows e macOS |
| AFC | Foto, video e alcune app | iTunes |
| FUSE (senza jailbreak) | Foto, video e alcune app | Client FUSE gratuito |
| FUSE (con jailbreak) | Tutti i file | Jailbreak, client FUSE gratuito |
| WebDAV tramite Filza | Tutti i file | Jailbreak, client WebDAV gratuito |
| AFC2 | Tutti i file | Jailbreak, plugin AFC2, client AFC2 |
| Altro | Nessuno | Non funziona su iOS recenti |
Su un dispositivo senza jailbreak si può lavorare solo con i dati della fotocamera e di alcune app selezionate. In questo articolo vediamo entrambi gli approcci.
PTP: accedere a foto, video e dati della fotocamera come disco montato
iOS presenta automaticamente i dispositivi moderni come fotocamere quando vengono collegati via USB. Questo usa il Picture Transfer Protocol (PTP), un sistema piuttosto limitato che permette di copiare foto avanti e indietro. Probabilmente riconoscerai le cartelle DCIM in cui di solito compaiono le foto.
Il PTP ha diversi svantaggi: il più evidente è che non puoi accedere a file diversi da quelli della fotocamera. Inoltre il PTP non supporta funzioni come rinominare o modificare file o cartelle: per applicare una modifica deve eliminarli e ricrearli. Questo è lento.
Accedere a foto e dati delle app tramite AFC con iTunes
La knowledge base di Apple ha un articolo che descrive come gestire la condivisione file di base con iTunes.
Accedere ai dati delle app tramite USB con FUSE
FUSE è un sistema che permette agli utenti di montare unità sui computer Windows o Mac senza dover apportare modifiche a livello di amministratore al sistema. FUSE sta per «filesystem in userspace» ed è disponibile in forme diverse sulla maggior parte delle piattaforme. FUSE in sé è un livello di astrazione, cioè non è la tecnologia che comunica direttamente con il dispositivo o con la fonte dei dati: di solito per questo si usa un altro approccio. Nel caso del montaggio di un iPhone come unità, FUSE comunicherebbe con l’iPhone usando un altro protocollo: SSH, AFC/AFC2, PTP o WebDAV. Su Windows viene spesso usato il diffuso file system in modalità utente Dokan, mentre su macOS è molto usato osxfuse.
Dal punto di vista dell’utente, poiché FUSE uniforma il modo in cui vengono presentati i dati del dispositivo, di solito non importa quale protocollo sottostante sia responsabile del montaggio.
Usare un montaggio FUSE su macOS
Vediamo questo approccio su macOS e come montare un dispositivo. Perché funzioni, dovrai installare il gestore di pacchetti Homebrew, gratuito, e avere familiarità con l’uso di Terminale su macOS.
Per prima cosa, troviamo il UDID del dispositivo. Puoi farlo con la versione gratuita di iPhone Backup Extractor, con il comando lsusb oppure con ioreg -p IOUSB -l -w 0. Avvia iPhone Backup Extractor mentre il dispositivo è collegato, seleziona il dispositivo e scegli la scheda «Info». Vedrai UDID nella sezione «Identificatori hardware»:

I dati del dispositivo mostrati in iPhone Backup Extractor
Ora prepariamo FUSE per macOS:
$ brew tap homebrew/cask
$ brew cask install osxfuse
==> Caveats
To install and/or use osxfuse you may need to enable their kernel extension in
System Preferences → Security & Privacy → General
For more information refer to vendor documentation or the Apple Technical Note:
https://developer.apple.com/library/content/technotes/tn2459/_index.html
You must reboot for the installation of osxfuse to take effect.
E installiamo ifuse, il codice in grado di comunicare con i dispositivi iOS tramite FUSE:
$ brew install ifuse
Con ifuse installato, è possibile montare l’iPhone o l’iPad usando il UDID che abbiamo ottenuto prima:
$ mkdir ~/iphone
$ ifuse ~/iphone --udid 000000000000000000000000
In questo modo l’iPhone viene montato come disco sul tuo computer. Se vuoi andare oltre e scavare più a fondo nei dati, questo post su Superuser è molto utile e, allo stesso modo, questo post tratta l’uso dello strumento usbmuxd.
Risoluzione degli errori che potresti incontrare
ifuse potrebbe segnalare: Invalid device UDID specified, length needs to be 40 characters. A partire da iPhone X, Apple ha cambiato i UDID in modo che usino 24 byte e un trattino (-) al posto del vecchio formato da 40 byte.
Se ricevi Failed to connect to lockdownd service on the device. Try again. If it still fails try rebooting your device., assicurati che il dispositivo sia collegato e che non stia mostrando l’avviso «Autorizzare questo computer?»: dovrai prima approvarlo. Se poi ricevi ERROR: Device 000000000000000000000000 returned unhandled error code -13, dovrai scollegare e ricollegare il dispositivo.
Mentre lo fai, conviene assicurarsi che sul PC o sul Mac non siano in esecuzione altre applicazioni che potrebbero cercare di collegarsi al dispositivo iOS.
Se hai intenzione di montare un solo dispositivo iOS, puoi eseguire direttamente ifuse ~/iphone.
È necessario usare una versione preliminare di usbmuxd?
usbmuxd non viene aggiornato di frequente, quindi ogni tanto, quando esce una nuova versione di iOS, non la supporta. Per risolvere, puoi installare l’ultima versione di sviluppo come indicato di seguito:
brew unlink usbmuxd
brew install --HEAD usbmuxd
brew unlink libimobiledevice
brew install --HEAD libimobiledevice
brew cask uninstall osxfuse
brew cask install osxfuse idevicepair
Accedere ai dati delle app tramite USB con FUSE su un dispositivo con jailbreak
Le istruzioni sono esattamente le stesse di prima. Con il jailbreak sul dispositivo vedrai subito più dati. Notevole, vero?
Usare il server WebDAV di Filza per accedere alla root del file system di iOS
Su un dispositivo iOS con jailbreak puoi installare tramite Cydia un’app di gestione file chiamata Filza. Nelle impostazioni di Filza puoi attivare la modalità server WebDAV. Questo offre un’interfaccia piuttosto semplice agli altri dispositivi per accedere al tuo dispositivo iOS, anche se è estremamente insicuro. WebDAV è un meccanismo molto generale per lavorare con i dati web e ci sono molti client in grado di accedervi, compresa un’interfaccia web integrata in Filza. Collegati al dispositivo con un browser e vedrai l’interfaccia. Facile.
Usare AFC2 per accedere ai file iOS tramite USB
Cos’è AFC2?
AFC sta per «Apple File Conduit», il meccanismo di Apple per trasferire i dati da un dispositivo iOS a un computer host. AFC è presente su ogni dispositivo iOS, ma è limitato a fornire accesso solo a un insieme ristretto di dati. «AFC2» è il soprannome dato a una serie di strumenti creati dalla community del jailbreak, che emulano AFC ma offrono accesso all’intero dispositivo. L’implementazione più recente di AFC2 è stata creata da Cannathea ed è disponibile su GitHub.
AFC2 si può installare da Cydia e, una volta installato, permette a un client AFC di esplorare il dispositivo per intero.
Altre tecniche per accedere a tutti i dati sui dispositivi con jailbreak
Prima del rilascio di iOS 8 esistevano diversi plugin Cydia per dispositivi con jailbreak che facevano comparire l’iPhone come una chiavetta USB al collegamento. Purtroppo non sono più supportati sulle versioni moderne di iOS.
Recuperare i file eliminati da un dispositivo iOS montato
Se puoi montare l’iPhone o l’iPad come unità, potresti pensare di poter recuperare i file eliminati manipolando direttamente il file system su un dispositivo con jailbreak. Purtroppo non è possibile recuperare file in questo modo da un iPhone, perché il file system è cifrato. Anche se riuscissi a trovare frammenti di dati, non potresti decifrarli. Ogni file ha la propria chiave di cifratura e queste chiavi vengono scartate quando il file viene eliminato.
La Guida alla sicurezza di iOS di Apple ne parla brevemente a pagina 17, nella «panoramica dell’architettura»:
Ogni volta che viene creato un file nella partizione dei dati, Data Protection crea una nuova chiave a 256 bit (la chiave «per file») e la consegna al motore AES hardware, che la usa per cifrare il file mentre viene scritto nella memoria flash in modalità AES-XTS. Sui dispositivi con SoC A7, S2 o S3 viene usato AES-CBC. Il vettore di inizializzazione viene calcolato con l’offset di blocco all’interno del file, cifrato con l’hash SHA-1 della chiave per file.
Il montaggio può funzionare bene per accedere ai file esistenti, ma non è di grande aiuto per il recupero. Per quello serve un backup di iTunes o di iCloud, dati sincronizzati con iCloud oppure un’immagine forense del dispositivo precedente all’eliminazione dei dati.
Bonus: montare il computer Windows dall’iPhone o dall’iPad
iOS 13 ha introdotto il supporto a SMB, che permette agli utenti di accedere da remoto alle unità dei computer Windows. Funziona così:
- Trova l’indirizzo IP del computer Windows. Il comando
ipconfigdovrebbe indicartelo. - Sul computer Windows, fai clic con il pulsante destro sulla cartella che vuoi condividere e scegli
Properties→Sharing→Advanced sharing. Fai clic su «Condividi la cartella». - Nella scheda Condivisione, seleziona
Share..., poi nel menu a discesa seleziona il tuo account utente, aggiungilo e assicurati che abbia i permessi di «Lettura/Scrittura». Fai clic su «Condividi» e «Applica», poi chiudi la finestra. - Sul dispositivo iOS, apri l’app «File» di Apple e tocca «Connetti al server». Digita
smb://seguito dall’indirizzo IP del PC. Poi scegli «Utente registrato» e inserisci il nome e la password del tuo account Windows.
Fatto questo, l’unità Windows dovrebbe comparire sul dispositivo iOS.