Trabajar con dispositivos iOS y copias de seguridad en la línea de comando

Actualizado

iPhone Backup Extractor incluye una herramienta de línea de comandos llamada rictl para trabajar con dispositivos y copias de seguridad de iOS. rictl ejecuta en cualquier plataforma en la que se ejecuta iPhone Backup Extractor, y funciona como cualquier herramienta de línea de comandos de estilo UNIX en términos de sintaxis de argumentos y ayuda, y devuelve shell.

Características de un vistazo:

  • Formato compatible con UNIX ( $? Códigos de retorno de shell, fechas con formato local, salida compatible con awk, flujos stdout de datos exportados)
  • Soporte para múltiples rutas de búsqueda simultáneas
  • Soporte para todos los formatos de copia de seguridad encriptada.
  • Soporte para rutas relativas y domésticas ( ~ )

rictl shown in macOS Terminal
rictl muestra en la terminal de macOS

rictl shown in Windows Command Prompt
rictl muestra en el símbolo del sistema de Windows

Inicio rápido: extraer archivos de base de datos desde una copia de seguridad de iOS

Encuentre copias de seguridad disponibles en el sistema local:

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

Extraiga todos los archivos de base de datos de la copia de seguridad (tenga en cuenta el formato de expresión regular):

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

Glosario de comandos

Obteniendo ayuda

Puede obtener ayuda para usar rictl como cabría esperar, con el 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.

Trabajando con copias de seguridad 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

Al trabajar con copias de seguridad, hay cinco opciones: search , info , list , extract y export .

Uso de la search para buscar copias de seguridad locales de 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

En su forma más simple, la search le mostrará las copias de seguridad en su sistema:

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

Los campos mostrados están separados por espacios en blanco, y son:

Opción -l muestra rutas de respaldo

Puede usar -l para incluir un campo de salida adicional con la ruta de la copia de seguridad:

$ 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
Opción -s busca rutas adicionales

Puede utilizar -s para incluir rutas de búsqueda adicionales cuando busque copias de seguridad.

$ 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
  • Como era de esperar, puede citar espacios ( "My folder" ) o escapar ( My\ folder ) en las rutas
  • -s se puede usar para especificar una carpeta de respaldo o una carpeta que contenga respaldos

Uso de la info para obtener información y metadatos de las copias de seguridad locales de iOS

$ 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

Vamos a probar eso:

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

Por supuesto, si bien el UDID del dispositivo UDID es único, puede haber más de una copia de seguridad en su computadora, por ejemplo, si tiene una copia de seguridad archivada, como por ejemplo:

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

¿Cual es la solución? ¡Limite la ruta de búsqueda especificando la carpeta en la que se encuentra la copia de seguridad, en lugar de la carpeta que contiene la carpeta de la copia de seguridad!

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

Uso de la list para enumerar archivos dentro de una copia de seguridad de 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

Vamos a probarlo:

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

Usando extract para extraer archivos de una copia de seguridad de 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 todos los archivos .db de una copia de seguridad a una carpeta llamada Extracted , y ofrezcamos una contraseña de respaldo de 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
...

Uso de export para exportar datos desde una copia de seguridad de 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

Los datos exportados están disponibles en el mismo formato JSON que utiliza la API de ricloud, y esos formatos se documentan aquí .

Vamos a extraer todos los datos del mensaje de una copia de seguridad. Estos datos se devolverían en el flujo de salida estándar de la consola ( stdout ), por lo que vamos a redirigirlos a un archivo llamado messages.json . Guardaremos los archivos asociados en una carpeta llamada Associated files , y ofreceremos una contraseña de respaldo de 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": []
  },
...

Trabajando con dispositivos

$ 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

Al trabajar con dispositivos, hay cuatro opciones: search , backup , restart y shutdown .

Añadiendo rictl a tu camino.

iPhone Backup Extractor puede agregar automáticamente rictl a la rictl de su computadora Windows o macOS, usando el panel de Preferences , para que pueda ser utilizado fácilmente en cualquier terminal de su computadora.

iPhone Backup Extractor's "Scripting" preferences pane
panel de preferencias "Scripting" de iPhone Backup Extractor

Sin embargo, también puede establecer la ruta usted mismo o usar un comando de alias . rictl la funcionalidad de rictl a través del rictl binario de iPhone Backup Extractor, como muestra el script contenedor:

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

Patrones comunes de expresiones regulares para búsquedas de archivos

  • Encontrar rutas que terminen con el texto plist : -r plist$
  • Buscando rutas con la extensión de archivo .db : -r \.db

Uso empresarial

Las capacidades de rictl son similares a las de iPhone Backup Extractor: la herramienta permite una operación sin restricciones para explorar copias de seguridad, pero solo extrae hasta cuatro archivos o exporta cuatro elementos de datos a la vez cada vez que se ejecuta.

Estamos ansiosos por saber cómo se usa la tecnología, y apoyar a una serie de empresas que han desarrollado sus herramientas o productos de gestión o cumplimiento internos sobre esta tecnología. Por favor, póngase en contacto con nosotros si esto puede ser valioso para usted.

¿Cómo podemos ayudar?

¡Nuestro equipo de soporte está aquí para ayudar!

Nuestro horario de atención es de lunes a viernes de 9 a.m. a 5 p.m. GMT. El tiempo es actualmente 5:10 PM GMT.

Intentamos responder todos los mensajes en un plazo de un día laboral.

Nuestro increíble equipo de soporte.

¿Podemos mejorar este artículo?

Nos encanta escuchar de los usuarios: ¿por qué no enviarnos un correo electrónico, dejar un comentario o tuitear? @reincubate?

© 2008 - 2024 Reincubate Ltd. Todos los derechos reservados. Registrado en Inglaterra y Gales #5189175, VAT GB151788978. Reincubate® y Camo® son marcas registradas. Política de privacidad & condiciones.