iPhone Backup Extractor include uno strumento da riga di comando chiamato rictl per lavorare con backup e dispositivi iOS. rictl funziona su qualsiasi piattaforma supportata da iPhone Backup Extractor e si comporta come qualsiasi strumento da riga di comando in stile UNIX per quanto riguarda la sintassi di argomenti e guida e i codici di ritorno della shell.
Le funzioni in breve:
- Formato compatibile con UNIX (codici di ritorno della shell
$?, date formattate secondo le impostazioni locali, output adatto ad awk, flussistdoutdi dati esportati) - Supporto per più percorsi di ricerca simultanei
- Supporto per tutti i formati di backup cifrato
- Supporto per percorsi relativi e basati sulla home (
~)

rictl in Terminale su macOS

rictl nel Prompt dei comandi di Windows
Guida rapida: estrarre i file di database da un backup iOS
Trova i backup disponibili sul sistema locale:
$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok
Estrai tutti i file di database dal backup (nota il formato delle espressioni regolari):
$ rictl backup extract -u 00000000-0000000000000000 -r "\.db"
Extracting HomeDomain/Library/Voicemail/voicemail.db
Extracting HomeDomain/Library/Safari/Bookmarks.db
Extracting RootDomain/Library/Caches/locationd/consolidated.db
Extracting WirelessDomain/Library/CallHistory/call_history.db
...
Glossario dei comandi
Ottenere aiuto
Puoi ottenere aiuto con rictl come ti aspetti, usando il comando rictl help:
$ rictl help
Usage: rictl <command> [args]
Available commands:
backup Work with a local backup
device Work with devices over USB and Wi-Fi
Use 'rictl help <command>' for detailed help on a particular command
rictl offre una modalità backup per lavorare con i backup locali e una modalità device per lavorare con i dispositivi iOS tramite USB o Wi-Fi.
Lavorare con i backup locali
$ rictl help backup
Usage: rictl backup <command> [args]
Work with local backups
Available commands:
search Search for local backups
info Show info about a backup
list List files in a backup
extract Extract files from a backup
export Export data from a backup
Use 'rictl help backup <command>' for detailed help on a particular backup command
Quando si lavora con i backup, ci sono cinque opzioni: search, info, list, extract e export.
Usare search per cercare i backup iOS locali
$ rictl help backup search
Usage: rictl backup search [args]
Search for local backups
Available arguments:
-s, --search-path=VALUE path to search for backups (two directories deep)
-l include full path in listing output
-h, --help show this message and exit
Nel suo uso più semplice, search mostra i backup presenti sul sistema:
$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok
I campi mostrati sono separati da spazi e sono:
UDID- Data e ora di creazione del backup
- Versione di iOS del dispositivo
- Identificatore del dispositivo iOS
- Stato del backup:
okoin-progress
Gli UDID hanno due formati
Ricorda che gli UDID di Apple hanno due formati distinti. rictl supporta entrambi.
L’opzione -l mostra i percorsi dei backup
Puoi usare -l per includere un campo di output aggiuntivo con il percorso del backup:
$ rictl backup search -l
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok /Users/afit/Library/Application Support/MobileSync/Backup/00000000-0000000000000000
L’opzione -s cerca in percorsi aggiuntivi
Puoi usare -s per includere percorsi di ricerca aggiuntivi quando cerchi i backup.
$ rictl backup search -s /Users/afit/Google\ Drive\ File\ Stream/My\ Drive/My\ backups/ -s Downloads/
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok
DB72CB76A00CB81675F19907D4AC2B298628D83C 09/06/2014 13:57:08 7.1.1 iPhone6,2 ok
DB72CB76A00CB81675F19907D4AC2B298628D83C 23/07/2014 12:37:55 8.0 iPhone6,2 ok
DB72CB76A00CB81675F19907D4AC2B298628D83C 28/07/2014 12:43:56 8.0 iPhone6,2 ok
CDBF062964613D325EB9E41AD83E85EA16B7E399 10/02/2014 14:29:59 7.0.4 iPad4,1 ok
57BE3B9E8087809F53666B887B9DD81B06299078 29/07/2014 14:18:54 7.1 iPhone3,1 ok
F60040E968F533434B9B6CCA10C7E0C673B7CC13 07/10/2014 09:44:17 8.0.2 iPhone7,2 ok
CC5D2A27218BD9E4A14B1E59918171A8676EF5BB 26/03/2015 11:07:42 2.2.1 iPhone1,1 ok
46A663D1A1A5C5146476A2C6164EA5F5FE771294 26/03/2015 11:09:54 4.2.1 iPhone1,2 ok
9F8FDEEFFCDA4BD53CA4D6F8229A04497CA5FA4C 31/10/2016 17:05:36 10.1.1 iPhone9,4 ok
- Come ti aspetti, puoi racchiudere tra virgolette (
"My folder") o proteggere con l’escape (My\ folder) gli spazi nei percorsi -spuò essere usato per specificare una cartella di backup oppure una cartella che contiene backup
Percorsi di ricerca predefiniti
rictl include sempre nelle ricerche il percorso di ricerca predefinito dei backup iOS, insieme a eventuali cartelle di ricerca aggiuntive configurate in iPhone Backup Extractor.
Usare info per ottenere informazioni e metadati dai backup iOS locali
$ rictl help backup info
Usage: rictl backup info [args]
Show info about a backup
Available arguments:
-u, --udid=VALUE backup UDID
-s, --search-path=VALUE path to search for backups (two directories deep)
-h, --help show this message and exit
Proviamolo:
$ rictl backup info -u 00000000-0000000000000000
UDID: 00000000-0000000000000000
Path: /Users/afit/Library/Application Support/MobileSync/Backup/00000000-0000000000000000
Backup in progress: False
Device name: Aidan's iPhone
Backup display name: Aidan's iPhone
Backup date: 02/07/2019 11:33:41
Backup size: 104258399691 bytes
Backup encrypted: True
Product version: 12.3.1
Product type: iPhone11,6
Serial number: FK1XH•••KPH6
Phone Number: +44 •••• ••••••
ICCID: 894411••••••••••••5
MEID: 35728209••••••
Naturalmente, anche se il UDID del dispositivo iOS è univoco, sul computer possono esserci più backup dello stesso dispositivo, ad esempio se hai un backup archiviato, come in questo caso:
$ rictl backup search -l | grep B919
DB72CB76A00CB81675F19907D4AC2B298628D83C 09/06/2014 13:57:08 7.1.1 iPhone6,2 ok /Users/afit/Library/Application Support/MobileSync/Backup/backup1
DB72CB76A00CB81675F19907D4AC2B298628D83C 23/07/2014 12:37:55 8.0 iPhone6,2 ok /Users/afit/Library/Application Support/MobileSync/Backup/backup2
DB72CB76A00CB81675F19907D4AC2B298628D83C 28/07/2014 12:43:56 8.0 iPhone6,2 ok /Users/afit/Library/Application Support/MobileSync/Backup/backup3
$ rictl backup info -u DB72CB76A00CB81675F19907D4AC2B298628D83C
Multiple backups found with UDID DB72CB76A00CB81675F19907D4AC2B298628D83C. Use the '--search-path' option to specify the backup's location. This can be shown with the '-l' argument on 'rictl backup search'.
Qual è la soluzione? Restringi il percorso di ricerca specificando la cartella in cui si trova il backup, anziché la cartella che contiene la cartella del backup!
$ rictl backup info -s /Users/afit/Library/Application Support/MobileSync/Backup/backup3 -u DB72CB76A00CB81675F19907D4AC2B298628D83C
UDID: DB72CB76A00CB81675F19907D4AC2B298628D83C
Path: /Users/afit/Library/Application Support/MobileSync/Backup/backup3
Backup in progress: False
Device name: Aidan's iPhone
Backup display name: Aidan's iPhone
Backup date: 28/07/2014 12:43:56
Backup size: 239001214 bytes
Product version: 8.0
Product type: iPhone6,2
Serial number: C7KNG•••G5MV
Phone Number: +44 •••• ••••••
ICCID: 894411••••••••••••5
MEID: 35728209••••••
Perché `-u` è più veloce di `-s` quando si specificano i backup?
Potresti notare che selezionare i backup con -u può essere molto più veloce rispetto a -s.
Questo è veloce:
$ rictl backup extract -u 00000000-0000000000000000
Questo è più lento:
$ rictl backup extract -u 00000000-0000000000000000 -s "My backups"
Questi comandi producono due comportamenti piuttosto diversi. Il comando -u preleva i backup dalla posizione di ricerca predefinita (e da eventuali percorsi di ricerca preconfigurati in iPhone Backup Extractor), mentre -s cerca un livello sotto il percorso che specifichi, perché potresti voler indicare una cartella che contiene backup oppure una cartella di backup vera e propria.
Spesso i backup hanno molte sottocartelle, quindi quando -s cerca per assicurarsi che non ci sia un backup annidato in un altro backup (ci è capitato!), può volerci un po’.
Usare list per elencare i file in un backup iOS
$ rictl help backup list
Usage: rictl backup list [args]
List files in a backup
Available arguments:
-u, --udid=VALUE backup UIUD
-s, --search-path=VALUE path to search for backups (two directories deep)
-p, --password=VALUE backup password
-l use a long listing format
-r, --pattern=VALUE file pattern (regex)
--allow-in-progress allow use of in-progress backups
-h, --help show this message and exit
Proviamolo:
$ rictl backup list -u 00000000-0000000000000000 -r plist$ -l
rw-r--r-- 321 24/06/2019 13:04:37 ManagedPreferencesDomain\mobile\.GlobalPreferences.plist
rw------- 16975 21/06/2019 14:52:54 AppDomainPlugin-com.apple.stocks.widget\Library\Preferences\com.apple.stocks.widget.plist
rw-r--r-- 219 01/07/2019 09:37:24 HomeDomain\Library\UserNotifications\A4CCFF5B-F963-425F-8068-729972F77C67\DeliveredNotifications.plist
...
Usare extract per estrarre i file da un backup iOS
$ rictl help backup extract
Usage: rictl backup extract [args]
Extract files from a backup
Available arguments:
-u, --udid=VALUE backup UIUD
-s, --search-path=VALUE path to search for backups (two directories deep)
-p, --password=VALUE backup password
-o, --output-path=VALUE path to extract files to
-r, --pattern=VALUE file pattern (regex)
--allow-in-progress allow use of in-progress backups
-h, --help show this message and exit
Estraiamo tutti i file .db da un backup in una cartella chiamata Extracted, indicando come password del backup password:
$ rictl backup extract -u 00000000-0000000000000000 -r "\.db" -o "Extracted" -p "password"
Extracting HomeDomain/Library/Voicemail/voicemail.db
Extracting HomeDomain/Library/Safari/Bookmarks.db
Extracting RootDomain/Library/Caches/locationd/consolidated.db
Extracting WirelessDomain/Library/CallHistory/call_history.db
...
Usare export per esportare i dati da un backup iOS
$ rictl help backup export
Usage: rictl backup export [args]
Export data from a backup
Available arguments:
-u, --udid=VALUE backup UIUD
-s, --search-path=VALUE path to search for backups (two directories deep)
-p, --password=VALUE backup password
-t, --type=VALUE data type (messages, whatsapp, viber, kik, wechat,
line, hike, tinder, photos, videos, recordings,
contacts, calendar, notes, calls, locations,
voicemail)
-o, --output-path=VALUE associated file output path
-r, --pattern=VALUE search pattern (regex)
-f, --force allow overwriting exising files
--allow-in-progress allow use of in-progress backups
-h, --help show this message and exit
I dati esportati sono resi disponibili nello stesso formato JSON usato da ricloud API, e questi formati sono documentati qui.
Estraiamo tutti i dati dei messaggi da un backup. Questi dati verrebbero restituiti sullo standard output (stdout) della console, quindi li reindirizziamo a un file chiamato messages.json. Salveremo gli eventuali file associati in una cartella chiamata Associated files, indicando come password del backup password:
$ rictl backup export -u 00000000-0000000000000000 -t messages -o "Associated files" -p "password" > messages.json
...
$ cat messages.json
[
{
"From": "789789",
"To": "Me",
"Date": "2012-12-17T14:12:30Z",
"Deleted": false,
"Message": "All done! You're now on our Big Data Texts Tariff. We switched you over on 17/12/12",
"Attachments": []
},
{
"From": "789789",
"To": "Me",
"Date": "2012-12-17T18:12:50Z",
"Deleted": false,
"Message": "You have 300 Texts and Unlimited data",
"Attachments": []
},
...
Lavorare con i dispositivi
$ rictl help device
Usage: rictl device <command> [args]
Work with devices over USB and Wi-Fi
Available commands:
search Show connected devices over USB and Wi-Fi
backup Backup a connected device
restart Restart a connected device
shutdown Shutdown a connected device
Use 'rictl help device <command>' for detailed help on a particular device command
Quando si lavora con i dispositivi, ci sono quattro opzioni: search, backup, restart e shutdown.
Aggiungere rictl al path
iPhone Backup Extractor può aggiungere automaticamente rictl al path del tuo computer Windows o macOS, usando il pannello Preferences, in modo da poterlo usare facilmente in qualsiasi terminale del computer.

Il pannello delle preferenze «Scripting» di iPhone Backup Extractor
Tuttavia, puoi anche impostare il path da solo o usare un comando alias. Le funzioni di rictl sono accessibili tramite il file binario di iPhone Backup Extractor, come mostra lo script wrapper:
$ cat `which rictl`
#!/bin/bash
/Applications/iPhone\ Backup\ Extractor.app/Contents/MacOS/iPhoneBackupExtractor cli "$@"
Pattern di espressioni regolari comuni per la ricerca di file
- Trovare i percorsi che terminano con il testo
plist:-r plist$ - Trovare i percorsi con l’estensione di file
.db:-r \.db
Uso in azienda
Le funzionalità di rictl seguono in linea generale quelle di iPhone Backup Extractor: lo strumento consente un uso illimitato per esplorare i backup, ma a ogni esecuzione estrae al massimo quattro file o esporta quattro elementi di dati alla volta.
Ci interessa sapere come viene usata questa tecnologia e supportiamo diverse aziende che hanno costruito su di essa i propri strumenti o prodotti di gestione interna o di conformità. Se può esserti utile, contattaci.
