Lavorare con dispositivi iOS e backup dalla riga di comando
iPhone Backup Extractor include uno strumento da riga di comando chiamato rictl
per lavorare con backup e dispositivi iOS. rictl
gira su qualsiasi piattaforma su cui è in esecuzione iPhone Backup Extractor e funziona come qualsiasi strumento da riga di comando in stile UNIX in termini di argomenti e sintassi di aiuto e restituzioni della shell.
Caratteristiche a colpo d'occhio:
- Formato compatibile con UNIX (codici di ritorno shell
$?
Date formattate in locale, output awk-friendly, flussistdout
di dati esportati) - Supporto per più percorsi di ricerca simultanei
- Supporto per tutti i formati di backup crittografato
- Supporto per percorsi relativi (
~
) e domiciliari
Avvio rapido: estrae 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 usando rictl
come ti aspetteresti, con 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
exposes a backup
mode for working with local backups, and a device
mode for working with iOS devices over USB or 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
ed export
.
Usando la search
per cercare backup locali iOS
$ 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
Al più semplice, la search
ti mostrerà i backup sul tuo 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 bianchi e sono:
-
UDID
- Tempo di creazione del backup
- versione del dispositivo iOS
- identificativo del dispositivo iOS
- Stato del backup:
ok
oin-progress
L'opzione -l
mostra i percorsi di backup
È possibile utilizzare -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
ricerca percorsi aggiuntivi
È possibile utilizzare -s
per includere percorsi di ricerca aggiuntivi durante la ricerca di 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 ci si aspetterebbe, è possibile indicare (
"My folder"
) o gli spazi di escape (My\ folder
) nei percorsi -
-s
può essere usato per specificare una cartella di backup o una cartella contenente backup
Utilizzo di 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
Proviamoci:
$ 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••••••
Ovviamente, mentre l' UDID
del dispositivo iOS è unico, potrebbe esserci più di un backup sul computer, ad esempio, se si dispone di un backup archiviato, ad esempio:
$ 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? Limita il percorso di ricerca specificando la cartella in cui si trova il backup, anziché la cartella contenente 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••••••
Usando la list
per elencare i file all'interno di 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 ...
Utilizzo extract
per estrarre 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
.db
tutti i file .db
da un backup in una cartella denominata Extracted
e offriamo una password di backup della 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 ...
Utilizzo 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 utilizzato dalle API ricloud e questi formati sono documentati qui .
Estraiamo tutti i dati dei messaggi da un backup. Questi dati verrebbero restituiti sul flusso di output standard della console ( stdout
), quindi lo reindirizzeremo su un file denominato messages.json
. Salveremo tutti i file associati in una cartella denominata Associated files
e offriremo una password di backup della 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, sono disponibili quattro opzioni: search
, backup
, restart
e shutdown
.
Aggiungendo rictl
al tuo percorso
iPhone Backup Extractor può aggiungere automaticamente rictl
al percorso del tuo computer Windows o macOS, utilizzando il pannello delle Preferences
, in modo che possa essere facilmente utilizzato in qualsiasi terminale sul tuo computer.
Tuttavia, puoi anche impostare il percorso tu stesso oppure utilizzare un comando alias
. La funzionalità di rictl
è accessibile tramite il binario di iPhone Backup Extractor, come mostra lo script del wrapper:
$ cat `which rictl` #!/bin/bash /Applications/iPhone\ Backup\ Extractor.app/Contents/MacOS/iPhoneBackupExtractor cli "$@"
Modelli di espressioni regolari comuni per ricerche di file
- Trovare percorsi che terminano con il testo
plist
:-r plist$
- Ricerca di percorsi con l'estensione del file
.db
:-r \.db
Uso aziendale
Le funzionalità di rictl
seguono ampiamente quelle di iPhone Backup Extractor: lo strumento consente operazioni illimitate per esplorare i backup, ma estrarrà solo fino a quattro file o esporterà quattro elementi di dati alla volta ogni volta che viene eseguito.
Siamo lieti di sapere come viene utilizzata la tecnologia e supportare un numero di aziende che hanno sviluppato la propria gestione interna o strumenti o prodotti di conformità in cima a questa tecnologia. Si prega di mettersi in contatto con noi se questo potrebbe essere utile per voi.