Como consultar dados de arquivos SQLite e Plist de backup do iPhone

Atualizada
Cover image for: 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.

Como podemos ajudar?

Nossa equipe de suporte está aqui para ajudar!

Nosso horário de atendimento é de segunda a sexta, das 9h às 17h GMT. A hora é atualmente 11:53 AM GMT.

Nosso objetivo é responder a todas as mensagens dentro de um dia útil.

Nossa equipe de suporte incrível

Comentários (1)

You can use this to format the messages (SMS) date field:

datetime(date/1000000000 + 978307200,'unixepoch','localtime') as date

Podemos melhorar este artigo?

Adoramos ouvir os usuários: por que não nos enviar um e-mail, deixar um comentário ou twittar? @reincubate?

© 2008 - 2024 Reincubate Ltd. Todos os direitos reservados. Registrado na Inglaterra e no País de Gales #5189175, VAT GB151788978. Reincubate® e Camo® são marcas registradas. Política de Privacidade & termos.