iPhone Backup Extractor inclut un outil en ligne de commande nommé rictl pour travailler avec les sauvegardes et les appareils iOS. rictl fonctionne sur toutes les plateformes prises en charge par iPhone Backup Extractor, et se comporte comme n’importe quel outil en ligne de commande de type UNIX pour la syntaxe des arguments et de l’aide, ainsi que pour les codes de retour du shell.
Fonctionnalités en un coup d’œil :
- Format compatible UNIX (codes de retour du shell
$?, dates au format de la langue, sortie compatible avec awk, fluxstdoutdes données exportées) - Prise en charge de plusieurs chemins de recherche simultanés
- Prise en charge de tous les formats de sauvegarde chiffrée
- Prise en charge des chemins relatifs et des chemins basés sur le dossier personnel (
~)

rictl affiché dans le Terminal de macOS

rictl affiché dans l’invite de commandes de Windows
Démarrage rapide : extraire des fichiers de base de données d’une sauvegarde iOS
Trouvez les sauvegardes disponibles sur le système local :
$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok
Extrayez tous les fichiers de base de données de la sauvegarde (notez le format d’expression régulière) :
$ 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
...
Glossaire des commandes
Obtenir de l’aide
Vous pouvez obtenir de l’aide avec rictl comme vous vous y attendez, grâce à la commande 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 propose un mode backup pour travailler avec les sauvegardes locales, et un mode device pour travailler avec des appareils iOS par USB ou Wi-Fi.
Travailler avec des sauvegardes locales
$ 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
Pour travailler avec des sauvegardes, il y a cinq options : search, info, list, extract et export.
Utiliser search pour rechercher des sauvegardes iOS locales
$ 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
Dans sa forme la plus simple, search affiche les sauvegardes présentes sur votre système :
$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok
Les champs affichés sont séparés par des espaces et sont les suivants :
UDID- Date de création de la sauvegarde
- Version de l’appareil iOS
- Identifiant de l’appareil iOS
- État de la sauvegarde :
okouin-progress
Les UDID existent sous deux formats
N’oubliez pas que les UDID d’Apple existent sous deux formats distincts. rictl prend en charge les deux.
L’option -l affiche les chemins des sauvegardes
Vous pouvez utiliser -l pour ajouter un champ de sortie supplémentaire avec le chemin de la sauvegarde :
$ 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’option -s recherche dans des chemins supplémentaires
Vous pouvez utiliser -s pour inclure des chemins de recherche supplémentaires lors de la recherche de sauvegardes.
$ 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
- Comme vous vous y attendez, vous pouvez mettre les espaces dans les chemins entre guillemets (
"My folder") ou les échapper (My\ folder) -spermet d’indiquer un dossier de sauvegarde ou un dossier contenant des sauvegardes
Chemins de recherche par défaut
rictl inclut toujours dans ses recherches le chemin de recherche par défaut des sauvegardes iOS, ainsi que tous les dossiers de recherche supplémentaires configurés dans iPhone Backup Extractor.
Utiliser info pour obtenir des informations et des métadonnées sur des sauvegardes iOS locales
$ 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
Essayons :
$ 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••••••
Bien sûr, même si le UDID de l’appareil iOS est unique, il peut exister plusieurs sauvegardes de cet appareil sur votre ordinateur (par exemple, si vous avez une sauvegarde archivée), comme ceci :
$ 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'.
Quelle est la solution ? Restreignez le chemin de recherche en indiquant le dossier dans lequel se trouve la sauvegarde, plutôt que le dossier contenant le dossier de la sauvegarde !
$ 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••••••
Pourquoi `-u` est-il plus rapide que `-s` pour indiquer des sauvegardes ?
Vous remarquerez peut-être que la sélection de sauvegardes avec -u peut être nettement plus rapide qu’avec -s.
Ceci est rapide :
$ rictl backup extract -u 00000000-0000000000000000
Ceci est plus lent :
$ rictl backup extract -u 00000000-0000000000000000 -s "My backups"
Ces commandes entraînent deux comportements très différents. La commande -u récupère les sauvegardes de l’emplacement de recherche par défaut (et des chemins de recherche préconfigurés dans iPhone Backup Extractor), tandis que -s recherche un niveau plus bas dans le chemin que vous indiquez, car vous pouvez vouloir désigner soit un dossier contenant des sauvegardes, soit un dossier de sauvegarde lui-même.
Les sauvegardes ont souvent de nombreux sous-dossiers ; lorsque -s vérifie que vous n’avez pas imbriqué une sauvegarde dans une sauvegarde (nous l’avons déjà vu !), cela peut prendre un moment.
Utiliser list pour lister les fichiers d’une sauvegarde 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
Essayons :
$ 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
...
Utiliser extract pour extraire des fichiers d’une sauvegarde 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
Extrayons tous les fichiers .db d’une sauvegarde vers un dossier nommé Extracted, en fournissant le mot de passe de sauvegarde 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
...
Utiliser export pour exporter des données d’une sauvegarde 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
Les données exportées sont fournies dans le même format JSON que celui de l’API ricloud, et ces formats sont documentés ici.
Extrayons toutes les données de messages d’une sauvegarde. Ces données seraient renvoyées sur la sortie standard de la console (stdout) ; nous allons donc les rediriger vers un fichier nommé messages.json. Nous enregistrerons les fichiers associés dans un dossier nommé Associated files, en fournissant le mot de passe de sauvegarde 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": []
},
...
Travailler avec des appareils
$ 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
Pour travailler avec des appareils, il y a quatre options : search, backup, restart et shutdown.
Ajouter rictl à votre PATH
iPhone Backup Extractor peut ajouter automatiquement rictl au PATH de votre ordinateur Windows ou macOS, via le volet Preferences, afin de pouvoir l’utiliser facilement dans n’importe quel terminal de votre ordinateur.

Volet de préférences « Scripts » d’iPhone Backup Extractor
Vous pouvez toutefois définir le chemin vous-même, ou utiliser une commande alias. Les fonctionnalités de rictl sont accessibles via le binaire d’iPhone Backup Extractor, comme le montre le script d’enveloppe :
$ cat `which rictl`
#!/bin/bash
/Applications/iPhone\ Backup\ Extractor.app/Contents/MacOS/iPhoneBackupExtractor cli "$@"
Modèles d’expressions régulières courants pour la recherche de fichiers
- Trouver les chemins qui se terminent par le texte
plist:-r plist$ - Trouver les chemins ayant l’extension de fichier
.db:-r \.db
Utilisation en entreprise
Les capacités de rictl suivent globalement celles d’iPhone Backup Extractor : l’outil permet d’explorer librement les sauvegardes, mais n’extrait que quatre fichiers au maximum, ou n’exporte que quatre éléments de données à la fois, à chaque exécution.
Nous aimons savoir comment la technologie est utilisée, et nous accompagnons plusieurs entreprises qui ont construit leurs outils ou produits internes de gestion ou de conformité sur cette technologie. N’hésitez pas à nous contacter si cela peut vous être utile.
