iPhoneバックアップSQLiteおよびPlistファイルからデータをクエリする方法
一部のユーザーは、エキスパートモードを使用してバックアップに保存されている生ファイルを直接操作したいと思うかもしれません。これらは多くの場合、SQLiteデータベース( .sqlite3
、 .sqllitedb
、および.db
)またはPlist(通常は.plist
)ファイルで構成されています。
iPhone Backup ExtractorにはPlistエディタが内蔵されており、ユーザーは自分のデータをPDF、HTML、VCard、ICAL、VCF、またはCSV形式に自動的にエクスポートして簡単にアクセスできます。しかし、これらのファイルからデータを抽出したいユーザーはSQLiteデータベースクライアントが必要です。
SQLiteデータベースを使用する方法は?
ユーザーは、次の3つのアプリケーションのいずれかを試してみることをお勧めします。
- SQLiteFlow (有料、macOS&iOS)。 SQLiteFlowは、当社のmacOS SQLiteツールです。
- ベース2 (有料、macOS)。 Baseは、macOS用の2番目に人気のあるSQLiteツールの1つであり、直接ダウンロードしてApp Storeアプリとして入手できます。
- SQLite用DBブラウザー (無料、macOSおよびWindows)。 DBブラウザーは、以前はSQLiteデータベースブラウザーと呼ばれていました。これはWindowsに推奨されるツールであり、無料です。また、macOSのバージョンも提供します。
Appleのデータベースファイルを直接操作するにはどうすればよいですか?
例として、連絡先データに手動でアクセスするには、ユーザーはLibray/AddressBook/AddressBook.sqllitedb
抽出し、次に抽出されたファイルをSQLiteビューアで開く必要があります。 [Execute SQL]タブを選択し、[SQL string]フィールドに貼り付けます。
SELECT ABPerson.first, ABPerson.last, ABMultiValue.value FROM ABPerson, ABMultiValue WHERE ABMultiValue.record_id = ABPerson.ROWID
[ Execute Query
のExecute Query
]ボタンを押すと、[返されたデータ]フィールドに表示されている完全な連絡先リストが返されます。
SMSデータにアクセスするには、ユーザーはLibray/SMS/SMS.db
抽出し、抽出したファイルをSQLiteビューアで開き、[ Browse data
のBrowse data
]タブを選択して、[ Table
ドロップダウンからmessage
を選択する必要がありmessage
。虫眼鏡ボタンをクリックすると、ユーザーは[返されたデータ]フィールドにSMSの完全な履歴が表示されます。
ユーザーの1人が以下のクエリを参考にしたので、ユーザーのためにここに含めています。データベースの形式はiOSのバージョンによって異なるため、これらのクエリは時間の経過とともに変わる必要があることに注意してください。
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
私たちはここでさまざまなアプリのための重要なファイルのリストを管理しています。
日付と時刻のフィールドは数値として返されるだけですが、それらをどのように解釈できますか
データベース内のいくつかのフィールドを解釈するのに苦労するかもしれません。忘れないでください、iPhone Backup Extractorは自動的にデータを抽出します。ただし、単独で使用する場合は、日付フィールドの位置に応じて、日付が2001-01-01
からの秒数または1970-01-01
からの秒数で表されることに気付くはずです。 Excelでは、 =1/1/2001 + A1/60/60/24
ような式を使用できます。ここで、 A1
はあなたの時間データです。現地のタイムゾーンを考慮して値を調整する必要があるかもしれません。
によって Andrew
You can use this to format the messages (SMS) date field: