Como consultar dados de arquivos SQLite e Plist de backup do iPhone
Alguns usuários podem desejar manipular diretamente os arquivos brutos armazenados em seus backups usando o modo especialista. Eles geralmente são compostos de .sqlite3
de banco de dados SQLite ( .sqlite3
, .sqllitedb
e .db
) ou arquivos .plist
(normalmente .plist
).
O iPhone Backup Extractor inclui um editor Plist integrado, e seus usuários podem exportar automaticamente seus dados para os formatos PDF, HTML, VCard, ICAL, VCF ou CSV para fácil acesso. No entanto, os usuários que desejam extrair dados desses arquivos precisarão de um cliente de banco de dados SQLite.
Como posso trabalhar com bancos de dados SQLite?
Os usuários podem querer experimentar qualquer um destes três aplicativos:
- SQLiteFlow (pago, macOS e iOS). SQLiteFlow é a nossa ferramenta preferida do SQLite para macOS.
- Base 2 (paga, macOS). O Base é uma das nossas segunda ferramenta SQLite favorita para o macOS e está disponível como um download direto e um aplicativo da App Store .
- Navegador de banco de dados para SQLite (gratuito, macOS e Windows). O DB Browser costumava ser chamado de SQLite Database Browser. É a nossa ferramenta recomendada para Windows e é gratuita. Eles também fornecem uma versão para o macOS.
Como posso trabalhar com arquivos de banco de dados da Apple diretamente?
Como exemplo, para acessar manualmente os dados de contato, os usuários devem extrair o Libray/AddressBook/AddressBook.sqllitedb
e, em seguida, abrir o arquivo extraído com um visualizador do SQLite. Escolhendo a aba "Executar SQL", cole isso no campo "SQL string":
SELECT ABPerson.first, ABPerson.last, ABMultiValue.value FROM ABPerson, ABMultiValue WHERE ABMultiValue.record_id = ABPerson.ROWID
Pressionar o botão Execute Query
deve retornar a lista de contatos completa mostrada no campo "Dados retornados".
Para acessar os dados do SMS, os usuários devem extrair Libray/SMS/SMS.db
, abrir o arquivo extraído com o visualizador SQLite, escolher a guia Browse data
e selecionar a message
no menu suspenso Table
. Ao clicar no botão da lupa, o usuário deverá ver seu histórico completo de SMS mostrado no campo "Dados retornados".
Um dos nossos usuários considerou a consulta abaixo útil. Por isso, estamos incluindo aqui para nossos usuários. Tenha em mente que os formatos de banco de dados mudam entre as versões do iOS, portanto, essas consultas geralmente precisam mudar com o tempo.
SELECT ROWID, ABPerson.first, ABPerson.last, ABPerson.Organization AS organization, ABPerson.Department AS department, DATETIME(ABPerson.Birthday + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Birthday, ABPerson.JobTitle as jobtitle, ABPerson.Organization, ABPerson.Department, ABPerson.Note, ABPerson.Nickname, DATETIME(ABPerson.CreationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Created, DATETIME(ABPerson.ModificationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Modified, ( SELECT value FROM ABMultiValue WHERE property = 3 AND record_id = ABPerson.ROWID AND label = ( SELECT ROWID FROM ABMultiValueLabel WHERE value = '_$!<Work>!$_' ) ) AS phone_work, ( SELECT value FROM ABMultiValue WHERE property = 3 AND record_id = ABPerson.ROWID AND label = ( SELECT ROWID FROM ABMultiValueLabel WHERE value = '_$!<Mobile>!$_' ) ) AS phone_mobile, ( SELECT value FROM ABMultiValue WHERE property = 3 AND record_id = ABPerson.ROWID AND label = ( SELECT ROWID FROM ABMultiValueLabel WHERE value = '_$!<Home>!$_' ) ) AS phone_home, ( SELECT value FROM ABMultiValue WHERE property = 4 AND record_id = ABPerson.ROWID AND label IS null ) AS email, ( SELECT value FROM ABMultiValueEntry WHERE parent_id IN ( SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID ) AND key = ( SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'street' ) ) AS address, ( SELECT value FROM ABMultiValueEntry WHERE parent_id IN ( SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID ) AND key = ( SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'city' ) ) AS city FROM ABPerson ORDER BY ABPerson.first
Mantemos uma lista de arquivos principais para vários aplicativos aqui.
Os campos de data e hora retornam como números, como posso interpretá-los?
Você pode se esforçar para interpretar vários campos nos bancos de dados. Não se esqueça, o iPhone Backup Extractor pode extrair os dados automaticamente para você! No entanto, se você está indo sozinho, você deve encontrar as datas são representadas como o número de segundos desde 2001-01-01
, ou 1970-01-01
, dependendo da posição do campo de data. No Excel, você poderia usar uma fórmula como =1/1/2001 + A1/60/60/24
que A1
é o seu dado de tempo. Você também pode precisar ajustar o valor para considerar seu fuso horário local.
de Andrew
You can use this to format the messages (SMS) date field: