Saltar al contenido principal

Trabajar con dispositivos iOS y copias de seguridad desde la línea de comandos

Publicado el 18 de julio de 2019· Actualizado el 3 de febrero de 2023

Cover image for: Trabajar con dispositivos iOS y copias de seguridad desde la línea de comandos

iPhone Backup Extractor incluye una herramienta de línea de comandos llamada rictl para trabajar con copias de seguridad y dispositivos iOS. rictl funciona en cualquier plataforma en la que se ejecute iPhone Backup Extractor y, en cuanto a la sintaxis de argumentos y ayuda y a los códigos de retorno del shell, se comporta como cualquier herramienta de línea de comandos de estilo UNIX.

Funciones principales:

  • Formato compatible con UNIX (códigos de retorno del shell $?, fechas con formato regional, salida compatible con awk, flujos stdout de datos exportados)
  • Compatibilidad con varias rutas de búsqueda simultáneas
  • Compatibilidad con todos los formatos de copia de seguridad cifrada
  • Compatibilidad con rutas relativas y rutas basadas en la carpeta personal (~)
rictl en el Terminal de macOS

rictl en el Terminal de macOS

rictl en el Símbolo del sistema de Windows

rictl en el Símbolo del sistema de Windows

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

Busca las 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

Extrae todos los archivos de base de datos de la copia de seguridad (fíjate en 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

Obtener ayuda

Puedes obtener ayuda con 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 ofrece un modo backup para trabajar con copias de seguridad locales y un modo device para trabajar con dispositivos iOS por USB o Wi-Fi.

Trabajar 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 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 sencilla, search te mostrará las copias de seguridad que hay en tu sistema:

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

Los campos que se muestran están separados por espacios en blanco y son:

La opción -l muestra las rutas de las copias de seguridad

Puedes 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
La opción -s busca en rutas adicionales

Puedes usar -s para incluir rutas de búsqueda adicionales al buscar 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 cabría esperar, puedes entrecomillar ("My folder") o escapar (My\ folder) los espacios en las rutas
  • -s se puede usar para indicar una carpeta de copia de seguridad o una carpeta que contiene copias de seguridad

Uso de info para obtener información y metadatos de 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 probarlo:

$ 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, aunque el UDID del dispositivo iOS es único, puede haber más de una copia de seguridad de él en tu ordenador (por ejemplo, si tienes una copia archivada), como en este caso:

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

¿Cuál es la solución? Acota la ruta de búsqueda indicando la carpeta en la que está la copia de seguridad, en lugar de la carpeta que contiene la carpeta de la copia.

$ 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 list para enumerar los archivos 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
...

Uso de 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

Vamos a extraer todos los archivos .db de una copia de seguridad a una carpeta llamada Extracted, indicando la contraseña de la copia 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 de 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 se proporcionan en el mismo formato JSON que usa la API de ricloud, y esos formatos están documentados aquí.

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

Trabajar 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ñadir rictl a la ruta (path)

iPhone Backup Extractor puede añadir automáticamente rictl a la ruta (path) de tu ordenador Windows o macOS desde el panel Preferences, de modo que se pueda usar fácilmente en cualquier terminal de tu equipo.

Panel de preferencias «Scripting» de iPhone Backup Extractor

Panel de preferencias «Scripting» de iPhone Backup Extractor

Sin embargo, también puedes configurar la ruta tú mismo o usar un comando alias. Se accede a la funcionalidad de rictl a través del 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 de expresiones regulares habituales para buscar archivos

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

Uso en empresas

Las capacidades de rictl siguen en líneas generales las de iPhone Backup Extractor: la herramienta permite un uso sin restricciones para explorar copias de seguridad, pero solo extraerá hasta cuatro archivos o exportará cuatro elementos de datos a la vez cada vez que se ejecute.

Nos interesa saber cómo se usa la tecnología y damos soporte a varias empresas que han creado sus herramientas o productos internos de gestión o cumplimiento sobre ella. Si crees que puede resultarte útil, ponte en contacto con nosotros.


Artículos relacionados

¿Necesitas ayuda?

Intentamos responder a todos los mensajes en un día laborable.

support@reincubate.com
Logotipo del King's Award for Enterprise

King's Award for Enterprise: Reincubate ha ganado cuatro veces el máximo honor empresarial oficial del Reino Unido, la más reciente en reconocimiento al destacado crecimiento de la empresa durante los últimos tres años.

Nuestras relaciones con usuarios y socios son el núcleo de nuestros valores y de los productos que creamos. Consulta nuestras reseñas para saber lo que opinan de nosotros.

Certificación ISO 27001 del Centre for Assessment, acreditada por UKAS

© 2008-2026 Reincubate Ltd. Todos los derechos reservados. Registrada en Inglaterra y Gales con el n.º 5189175, IVA GB151788978. Camo®, Streamlight® y Reincubate® son marcas registradas. Patentes en trámite.

Ayuda