Come eseguire query sui dati dai file SQLite e Plist di backup di iPhone

aggiornato
Cover image for: Come eseguire query sui dati dai file SQLite e Plist di backup di iPhone

Alcuni utenti potrebbero voler manipolare direttamente i file raw memorizzati nei loro backup utilizzando la modalità esperto. Questi sono spesso composti da database SQLite (file .sqlite3 , .sqllitedb e .db ) o Plist (solitamente .plist ).

iPhone Backup Extractor include un editor Plist incorporato e gli utenti sono in grado di esportare automaticamente i propri dati in formato PDF, HTML, VCard, ICAL, VCF o CSV per un facile accesso. Tuttavia, gli utenti che desiderano estrarre i dati da questi file avranno bisogno di un client di database SQLite.

Come posso lavorare con i database SQLite?

Gli utenti potrebbero voler provare una di queste tre applicazioni:

  • SQLiteFlow (a pagamento, macOS e iOS). SQLiteFlow è il nostro strumento macOS SQLite preferito.
  • Base 2 (a pagamento, macOS). Base è uno dei nostri secondi strumenti SQLite preferiti per macOS ed è disponibile come download diretto e app App Store .
  • DB Browser per SQLite (gratuito, macOS e Windows). Il browser DB era precedentemente chiamato browser del database SQLite. È il nostro strumento consigliato per Windows ed è gratuito. Forniscono anche una versione per macOS.

Come posso lavorare direttamente con i file di database di Apple?

Ad esempio, per accedere manualmente ai dati di contatto, gli utenti devono estrarre Libray/AddressBook/AddressBook.sqllitedb e quindi aprire il file estratto con un visualizzatore SQLite. Scegliendo la scheda "Esegui SQL", incollala nel campo "Stringa SQL":

SELECT ABPerson.first, ABPerson.last, ABMultiValue.value
FROM ABPerson, ABMultiValue
WHERE ABMultiValue.record_id = ABPerson.ROWID

Premendo il pulsante Execute Query dovrebbe restituire l'elenco completo dei contatti mostrato nel campo "Dati restituiti".

Per accedere ai dati SMS, gli utenti devono estrarre Libray/SMS/SMS.db , aprire il file estratto con il visualizzatore SQLite, scegliere la scheda Browse data , quindi selezionare il message dal menu a discesa Table . Facendo clic sul pulsante della lente di ingrandimento, gli utenti dovrebbero vedere la loro cronologia SMS completa mostrata nel campo "Dati restituiti".

Uno dei nostri utenti ha trovato utile la query qui sotto, quindi la stiamo includendo qui per i nostri utenti. Tieni presente che i formati di database cambiano tra le versioni iOS, quindi queste query spesso devono cambiare nel 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

Manteniamo qui un elenco di file chiave per varie app .

I campi data e ora tornano come numeri, come posso interpretarli?

Potresti non riuscire a interpretare un numero di campi nei database. Non dimenticare, iPhone Backup Extractor può estrarre i dati automaticamente per te! Tuttavia, se stai andando da solo, dovresti trovare le date sono rappresentate come il numero di secondi dal 2001-01-01 , o 1970-01-01 , a seconda della posizione del campo della data. In Excel, è possibile utilizzare una formula come =1/1/2001 + A1/60/60/24 cui A1 è il tuo dato temporale. Potrebbe inoltre essere necessario regolare il valore per tenere conto del fuso orario locale.

Come possiamo aiutare?

Il nostro team di supporto è qui per aiutarti!

I nostri orari di ufficio sono dal lunedì al venerdì, dalle 9:00 alle 17:00 GMT. L'ora è attualmente 5:29 PM GMT.

Miriamo a rispondere a tutti i messaggi entro un giorno lavorativo.

Il nostro fantastico team di supporto

Commenti (1)

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

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

Possiamo migliorare questo articolo?

Ci piace ascoltare gli utenti: perché non mandarci un'email, lasciare un commento o twittare @reincubate?

© 2008 - 2024 Reincubate Ltd. Tutti i diritti riservati. Registrato in Inghilterra e Galles #5189175, VAT GB151788978. Reincubate® e Camo® sono marchi registrati. Politica sulla riservatezza & condizioni.