Alcuni utenti potrebbero voler manipolare direttamente i file grezzi salvati nei backup usando la modalità Expert. Spesso si tratta di database SQLite (.sqlite3, .sqllitedb e .db) o di file Plist (di solito .plist).
iPhone Backup Extractor include un editor di Plist integrato e i suoi utenti possono esportare automaticamente i dati nei formati PDF, HTML, VCard, ICAL, VCF o CSV per accedervi facilmente. Tuttavia, chi vuole estrarre dati da questi file avrà bisogno di un client per database SQLite.
Come posso lavorare con i database SQLite?
Puoi provare una qualsiasi di queste tre applicazioni:
- SQLiteFlow (a pagamento, macOS e iOS). SQLiteFlow è lo strumento SQLite per macOS che preferiamo.
- Base 2 (a pagamento, macOS). Base è uno dei nostri strumenti SQLite per macOS di seconda scelta ed è disponibile come download diretto e come app dell’App Store.
- DB Browser for SQLite (gratuito, macOS e Windows). DB Browser si chiamava SQLite Database Browser. È lo strumento che consigliamo per Windows ed è gratuito. Esiste anche una versione per macOS.
Posso fidarmi di queste informazioni?
Reincubate non è affiliata a nessuno di questi prodotti e non riceve compensi per citarli.
Come posso lavorare direttamente con i file di database di Apple?
Ad esempio, per accedere manualmente ai dati dei contatti, estrai Libray/AddressBook/AddressBook.sqllitedb e poi apri il file estratto con un visualizzatore SQLite. Scegli la scheda «Esegui SQL» e incolla questo 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 dovresti ottenere l’elenco completo dei contatti nel campo «Dati restituiti».
Per accedere ai dati degli SMS, estrai Libray/SMS/SMS.db, apri il file estratto con il visualizzatore SQLite, scegli la scheda Browse data e poi seleziona message dal menu a discesa Table. Facendo clic sul pulsante con la lente d’ingrandimento, dovresti vedere la cronologia completa degli SMS nel campo «Dati restituiti».
Uno dei nostri utenti ha trovato utile la query qui sotto, quindi la includiamo per i nostri utenti. Tieni presente che i formati dei database cambiano tra le versioni di iOS, quindi queste query spesso devono essere modificate 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
Qui teniamo un elenco dei file chiave per varie app.
I campi data e ora vengono restituiti solo come numeri: come posso interpretarli?
Potresti avere difficoltà a interpretare alcuni campi dei database. Non dimenticare che iPhone Backup Extractor può estrarre i dati automaticamente per te! Se invece procedi da solo, scoprirai che le date sono rappresentate come numero di secondi trascorsi da 2001-01-01 oppure 1970-01-01, a seconda della posizione del campo data. In Excel potresti usare una formula come =1/1/2001 + A1/60/60/24, dove A1 è il tuo dato temporale. Potrebbe anche servire correggere il valore in base al tuo fuso orario locale.
