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, fluxosstdoutde 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 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:
UDID- Data de criação do backup
- Versão do iOS do dispositivo
- Identificador do dispositivo iOS
- Status do backup:
okouin-progress
Os UDIDs têm dois formatos
Lembre-se de que os UDIDs da Apple têm dois formatos distintos. O rictl oferece suporte a ambos.
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) -spode ser usado para especificar uma pasta de backup ou uma pasta que contenha backups
Caminhos de pesquisa padrão
O rictl sempre inclui o caminho de pesquisa padrão de backups do iOS nas suas buscas, junto com quaisquer pastas de pesquisa adicionais configuradas no iPhone Backup Extractor.
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••••••
Por que `-u` é mais rápido que `-s` ao especificar backups?
Você pode notar que selecionar backups com -u pode ser bem mais rápido do que com -s.
Este é rápido:
$ rictl backup extract -u 00000000-0000000000000000
Este é mais lento:
$ rictl backup extract -u 00000000-0000000000000000 -s "My backups"
Esses comandos levam a duas ações bem diferentes. O comando -u obtém os backups do local de pesquisa padrão (e de quaisquer caminhos de pesquisa pré-configurados no iPhone Backup Extractor), enquanto o -s pesquisa um nível abaixo do caminho que você especifica, já que você pode estar indicando uma pasta que contém backups ou a própria pasta de um backup.
Os backups costumam ter muitas subpastas. Por isso, quando o -s pesquisa para garantir que você não aninhou um backup dentro de outro (já vimos isso acontecer!), pode demorar um pouco.
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
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.
