メインコンテンツへスキップ

iPhone バックアップの SQLite ファイルと Plist ファイルからデータをクエリする方法

Aidan Fitzpatrick

公開日: 2018年3月8日· 更新日: 2021年1月5日

Cover image for: iPhone バックアップの SQLite ファイルと Plist ファイルからデータをクエリする方法

Expert mode を使って、バックアップに保存されている生のファイルを直接操作したいユーザーもいます。これらのファイルは、多くの場合 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 ツールとして当社が最も推奨するものです。
  • Base 2(有料、macOS)。Base は、macOS 向けの SQLite ツールとして当社が 2 番目に気に入っているものの 1 つで、直接ダウンロードするか、App Store アプリ として入手できます。
  • DB Browser for SQLite(無料、macOS / Windows)。DB Browser は以前は SQLite Database Browser という名前でした。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 ボタンを押すと、「Data returned」フィールドに連絡先の全リストが表示されるはずです。

SMS データにアクセスするには、Libray/SMS/SMS.db を取り出し、取り出したファイルを SQLite ビューアで開いて Browse data タブを選び、Table ドロップダウンから message を選択します。虫眼鏡ボタンをクリックすると、「Data returned」フィールドに 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 は時刻データです)。ローカルのタイムゾーンに合わせて値を調整する必要がある場合もあります。


執筆者について

Aidan Fitzpatrick

創業者兼CEO

世界初のiOSデータ復旧ツールを開発した後、Aidanは2008年にReincubateを設立しました。それ以来、AMD、Qualcomm、HPといった企業と協力し、Camoアプリのエコシステムを筆頭に、映像ソフトウェア向けの意義深い機械学習機能を切り拓きながら、同社を世界トップクラスのISVの一つへと成長させてきました。Aidanのリーダーシップのもと、Reincubateは英国最高峰のビジネス栄誉を4度受賞し、The Sunday Timesの「100 Tech」リストにも選出され、Apple Design AwardおよびApp Storeのノミネートで業界からの評価を獲得しています。彼の仕事や手法はモバイルフォレンジックに関する学術論文でもたびたび引用されており、Google、Microsoft、Snapなどの企業が主催するイベントへの登壇にも招かれています。


関連記事

お困りですか?

すべてのお問い合わせに1営業日以内に返信するよう努めています。

support@reincubate.com
King's Award for Enterprise のロゴ

King's Award for Enterprise:Reincubate は英国最高峰の公式ビジネス表彰を4度受賞しており、直近では過去3年間にわたる同社の卓越した成長が評価されました。

ユーザーやパートナーとの関係は、私たちの価値観と開発する製品の中心にあります。レビュー をご覧いただき、皆さまの声をお聞きください。

Centre for Assessment による ISO 27001 認証取得、UKAS 認定

© 2008-2026 Reincubate Ltd. 無断複写・転載を禁じます。イングランドおよびウェールズ登記番号 5189175、VAT 番号 GB151788978。Camo®、Streamlight®、Reincubate® は登録商標です。特許出願中。

ヘルプ