Lavorare con dispositivi iOS e backup dalla riga di comando

aggiornato

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, flussi stdout di dati esportati)
  • Supporto per più percorsi di ricerca simultanei
  • Supporto per tutti i formati di backup crittografato
  • Supporto per percorsi relativi ( ~ ) e domiciliari

rictl shown in macOS Terminal
rictl mostrato nel Terminale macOS

rictl shown in Windows Command Prompt
rictl mostrato nel prompt dei comandi di Windows

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:

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.

iPhone Backup Extractor's "Scripting" preferences pane
Il pannello "Scripting" di iPhone Backup Extractor

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à fino a quattro file o esporterà quattro elementi di dati alla volta ogni volta che viene eseguito. Questo può essere ovviato eseguendo lo strumento più volte.

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.

Come possiamo aiutare?

Il nostro team di supporto è qui per aiutarti!

I nostri orari di ufficio sono dal lunedì al venerdì, dalle 9:00 alle 17:00 GMT. L'ora è attualmente 3:48 AM GMT.

Miriamo a rispondere a tutti i messaggi entro un giorno lavorativo.

Vai alla sezione di supporto › Contattaci ›
Il nostro fantastico team di supporto

Possiamo migliorare questo articolo?

Ci piace ascoltare gli utenti: perché non mandarci un'email, lasciare un commento o twittare @reincubate?

© 2008 - 2019 Reincubate Ltd. Tutti i diritti riservati. Registrato in Inghilterra e Galles #5189175, VAT GB151788978. Reincubate® è un marchio registrato. Termini e Condizioni. Raccomandiamo 2FA. Costruito con a Londra.