Pular para o conteúdo principal

Como trabalhar com dispositivos iOS e backups na linha de comando

Publicado em 18 de julho de 2019· Atualizado em 3 de fevereiro de 2023

Cover image for: Como trabalhar com dispositivos iOS e backups na linha de comando

O iPhone Backup Extractor inclui uma ferramenta de linha de comando chamada rictl para trabalhar com backups e dispositivos iOS. O rictl funciona em qualquer plataforma em que o iPhone Backup Extractor funcione e se comporta como qualquer ferramenta de linha de comando no estilo UNIX quanto à sintaxe de argumentos e de ajuda e aos códigos de retorno do shell.

Recursos em resumo:

  • Formato compatível com UNIX (códigos de retorno do shell $?, datas formatadas conforme o idioma, saída compatível com awk, fluxos stdout de dados exportados)
  • Suporte a vários caminhos de pesquisa simultâneos
  • Suporte a todos os formatos de backup criptografado
  • Suporte a caminhos relativos e baseados na pasta pessoal (~)
rictl exibido no Terminal do macOS

rictl exibido no Terminal do macOS

rictl exibido no Prompt de Comando do Windows

rictl exibido no Prompt de Comando do Windows

Início rápido: extrair arquivos de banco de dados de um backup do iOS

Encontre os backups disponíveis no sistema local:

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

Extraia todos os arquivos de banco de dados do backup (observe o formato de expressão 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
...

Glossário de comandos

Como obter ajuda

Você pode obter ajuda no rictl da maneira esperada, com o 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

O rictl oferece um modo backup para trabalhar com backups locais e um modo device para trabalhar com dispositivos iOS por USB ou Wi-Fi.

Trabalhar com backups locais

$ 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

Ao trabalhar com backups, há cinco opções: search, info, list, extract e export.

Usar search para procurar backups locais do 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

Na forma mais simples, o search mostra os backups do seu sistema:

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

Os campos exibidos são separados por espaços em branco e são:

A opção -l mostra os caminhos dos backups

Você pode usar -l para incluir um campo de saída adicional com o caminho do 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
A opção -s pesquisa caminhos adicionais

Você pode usar -s para incluir caminhos de pesquisa adicionais ao procurar backups.

$ 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 esperado, você pode colocar espaços em caminhos entre aspas ("My folder") ou escapá-los (My\ folder)
  • -s pode ser usado para especificar uma pasta de backup ou uma pasta que contenha backups

Usar info para obter informações e metadados de backups locais do 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 testar:

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

É claro que, embora o UDID do dispositivo iOS seja exclusivo, pode haver mais de um backup dele no seu computador, por exemplo, se você tiver um backup arquivado, como neste 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'.

Qual é a solução? Restrinja o caminho de pesquisa especificando a pasta em que o backup está, em vez da pasta que contém a pasta do 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••••••

Usar list para listar arquivos de um backup do 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 testar:

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

Usar extract para extrair arquivos de um backup do 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 extrair todos os arquivos .db de um backup para uma pasta chamada Extracted, informando a senha de backup 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
...

Usar export para exportar dados de um backup do 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

Os dados exportados ficam disponíveis no mesmo formato JSON usado pela API do ricloud, e esses formatos estão documentados aqui.

Vamos extrair todos os dados de mensagens de um backup. Esses dados seriam retornados no fluxo de saída padrão (stdout) do console, então vamos redirecioná-los para um arquivo chamado messages.json. Vamos salvar os arquivos associados em uma pasta chamada Associated files, informando a senha de backup 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": []
  },
...

Trabalhar com 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

Ao trabalhar com dispositivos, há quatro opções: search, backup, restart e shutdown.

Adicionar o rictl ao seu path

O iPhone Backup Extractor pode adicionar automaticamente o rictl ao path do seu computador Windows ou macOS, usando o painel Preferences, para que ele possa ser usado facilmente em qualquer terminal do computador.

Painel de preferências “Scripts” do iPhone Backup Extractor

Painel de preferências “Scripts” do iPhone Backup Extractor

No entanto, você também pode definir o path por conta própria ou usar um comando alias. As funções do rictl são acessadas pelo binário do iPhone Backup Extractor, como mostra o script wrapper:

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

Padrões comuns de expressão regular para pesquisa de arquivos

  • Encontrar caminhos que terminam com o texto plist: -r plist$
  • Encontrar caminhos com a extensão de arquivo .db: -r \.db

Uso corporativo

Os recursos do rictl seguem, em linhas gerais, os do iPhone Backup Extractor: a ferramenta permite operação irrestrita para explorar backups, mas extrai no máximo quatro arquivos ou exporta quatro itens de dados por vez a cada execução.

Gostamos de saber como a tecnologia é usada e damos suporte a várias empresas que criaram suas ferramentas ou produtos internos de gestão ou conformidade com base nela. Se isso puder ser útil para você, entre em contato conosco.


Artigos relacionados

Precisa de ajuda?

Procuramos responder a todas as mensagens em até um dia útil.

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

King's Award for Enterprise: a Reincubate venceu quatro vezes a mais alta honraria empresarial oficial do Reino Unido, a mais recente em reconhecimento ao notável crescimento da empresa nos últimos três anos.

Nossas relações com usuários e parceiros estão no centro dos nossos valores e dos produtos que criamos. Veja nossas avaliações para saber o que eles têm a dizer sobre nós.

Certificação ISO 27001 pelo Centre for Assessment, credenciado pelo UKAS

© 2008-2026 Reincubate Ltd. Todos os direitos reservados. Registrada na Inglaterra e no País de Gales sob o nº 5189175, VAT GB151788978. Camo®, Streamlight® e Reincubate® são marcas registradas. Patentes pendentes.

Ajuda