Zum Hauptinhalt springen

Mit iOS-Geräten und Backups in der Befehlszeile arbeiten

Veröffentlicht am 18. Juli 2019· Aktualisiert am 3. Februar 2023

Cover image for: Mit iOS-Geräten und Backups in der Befehlszeile arbeiten

iPhone Backup Extractor enthält ein Befehlszeilenprogramm namens rictl für die Arbeit mit iOS-Backups und -Geräten. rictl läuft auf jeder Plattform, auf der iPhone Backup Extractor läuft, und funktioniert hinsichtlich Argument- und Hilfesyntax sowie Shell-Rückgabewerten wie jedes Befehlszeilenprogramm im UNIX-Stil.

Die Funktionen im Überblick:

  • UNIX-kompatibles Format ($?-Shell-Rückgabecodes, nach Gebietsschema formatierte Datumsangaben, awk-freundliche Ausgabe, stdout-Streams exportierter Daten)
  • Unterstützung mehrerer gleichzeitiger Suchpfade
  • Unterstützung aller Formate verschlüsselter Backups
  • Unterstützung relativer und Home-basierter (~) Pfade
rictl im macOS-Terminal

rictl im macOS-Terminal

rictl in der Windows-Eingabeaufforderung

rictl in der Windows-Eingabeaufforderung

Schnellstart: Datenbankdateien aus einem iOS-Backup extrahieren

Backups finden, die auf dem lokalen System verfügbar sind:

$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok

Alle Datenbankdateien aus dem Backup extrahieren (beachte das Format des regulären Ausdrucks):

$ 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
...

Befehlsglossar

Hilfe erhalten

Hilfe zu rictl erhältst du wie gewohnt mit dem Befehl 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 bietet einen Modus backup für die Arbeit mit lokalen Backups und einen Modus device für die Arbeit mit iOS-Geräten über USB oder WLAN.

Mit lokalen Backups arbeiten

$ 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

Für die Arbeit mit Backups gibt es fünf Optionen: search, info, list, extract und export.

Mit search nach lokalen iOS-Backups suchen

$ 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

In der einfachsten Form zeigt search dir die Backups auf deinem System an:

$ rictl backup search
00000000-0000000000000000 02/07/2019 11:33:41 12.3.1 iPhone11,6 ok

Die angezeigten Felder sind durch Leerraum getrennt und lauten:

Die Option -l zeigt Backup-Pfade an

Mit -l kannst du ein zusätzliches Ausgabefeld mit dem Pfad des Backups einblenden:

$ 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
Die Option -s durchsucht zusätzliche Pfade

Mit -s kannst du bei der Suche nach Backups zusätzliche Suchpfade einbeziehen.

$ 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
  • Wie gewohnt kannst du Leerzeichen in Pfaden in Anführungszeichen setzen ("My folder") oder maskieren (My\ folder)
  • Mit -s kannst du einen Backup-Ordner oder einen Ordner angeben, der Backups enthält

Mit info Informationen und Metadaten aus lokalen iOS-Backups abrufen

$ 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

Probieren wir das aus:

$ 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••••••

Auch wenn die UDID des iOS-Geräts eindeutig ist, kann es auf deinem Computer mehr als ein Backup davon geben, etwa ein archiviertes Backup, wie hier:

$ 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'.

Die Lösung? Grenze den Suchpfad ein, indem du den Ordner angibst, in dem das Backup liegt, und nicht den Ordner, der den Backup-Ordner enthält!

$ 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••••••

Mit list Dateien in einem iOS-Backup auflisten

$ 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

Probieren wir es aus:

$ 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
...

Mit extract Dateien aus einem iOS-Backup extrahieren

$ 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

Extrahieren wir alle .db-Dateien aus einem Backup in einen Ordner namens Extracted und geben dabei das Backup-Passwort password an:

$ 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
...

Mit export Daten aus einem iOS-Backup exportieren

$ 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

Exportierte Daten werden im selben JSON-Format bereitgestellt, das auch die ricloud API verwendet. Diese Formate sind hier dokumentiert.

Extrahieren wir alle Nachrichtendaten aus einem Backup. Diese Daten würden im Standardausgabestrom (stdout) der Konsole zurückgegeben, deshalb leiten wir sie in eine Datei namens messages.json um. Zugehörige Dateien speichern wir in einem Ordner namens Associated files und geben dabei das Backup-Passwort password an:

$ 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": []
  },
...

Mit Geräten arbeiten

$ 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

Für die Arbeit mit Geräten gibt es vier Optionen: search, backup, restart und shutdown.

rictl zu deinem Pfad hinzufügen

iPhone Backup Extractor kann rictl über den Bereich Preferences automatisch zum Pfad deines Windows- oder macOS-Computers hinzufügen, sodass du es in jedem Terminal auf deinem Computer einfach verwenden kannst.

Der Einstellungsbereich „Scripting“ von iPhone Backup Extractor

Der Einstellungsbereich „Scripting“ von iPhone Backup Extractor

Du kannst den Pfad aber auch selbst festlegen oder einen alias-Befehl verwenden. Die Funktionen von rictl werden über die Binärdatei von iPhone Backup Extractor aufgerufen, wie das Wrapper-Skript zeigt:

$ cat `which rictl`
#!/bin/bash
/Applications/iPhone\ Backup\ Extractor.app/Contents/MacOS/iPhoneBackupExtractor cli "$@"

Gängige Muster für reguläre Ausdrücke bei der Dateisuche

  • Pfade finden, die auf den Text plist enden: -r plist$
  • Pfade mit der Dateiendung .db finden: -r \.db

Einsatz in Unternehmen

Die Funktionen von rictl entsprechen im Großen und Ganzen denen von iPhone Backup Extractor: Das Programm erlaubt uneingeschränktes Erkunden von Backups, extrahiert aber bei jedem Durchlauf nur bis zu vier Dateien oder exportiert nur vier Datenelemente.

Wir möchten gern wissen, wie die Technologie eingesetzt wird, und unterstützen eine Reihe von Unternehmen, die ihre internen Management- oder Compliance-Tools oder Produkte auf dieser Technologie aufgebaut haben. Melde dich bei uns, wenn das für dich interessant sein könnte.


Verwandte Artikel

Brauchst du Hilfe?

Wir bemühen uns, alle Nachrichten innerhalb eines Werktags zu beantworten.

support@reincubate.com
Logo des King's Award for Enterprise

King's Award for Enterprise: Reincubate hat die höchste offizielle Wirtschaftsauszeichnung des Vereinigten Königreichs viermal gewonnen, zuletzt in Anerkennung des herausragenden Wachstums des Unternehmens in den vergangenen drei Jahren.

Unsere Beziehungen zu Nutzern und Partnern stehen im Mittelpunkt unserer Werte und der Produkte, die wir entwickeln. Lies unsere Bewertungen, um zu erfahren, was sie über uns sagen.

Nach ISO 27001 zertifiziert durch das Centre for Assessment, akkreditiert durch UKAS

© 2008-2026 Reincubate Ltd. Alle Rechte vorbehalten. Eingetragen in England und Wales unter der Nr. 5189175, USt-IdNr. GB151788978. Camo®, Streamlight® und Reincubate® sind eingetragene Marken. Patente angemeldet.

Hilfe