バックアップしたiPhoneのSMS、MMSを読もう

ひょんなことから、iPhoneiTunesでバックアップしたファイルからメールの内容を取り出す作業が必要になる。
iMessageのバックアップファイルを読み解こうと試みる - ROOT MX127
を参考にしながらSQL文をガリガリ書くも、他社(SB以外)とのMMS取得がなんか怪しく、本文が取得(正確には表示)されていない。
つまり、リンク(的なモノ)を追って別のテーブル(msg_pieces)から本文を読み込まなければならない。
で、完成形がこれ。表示内容は必要最小限。
アプリの体を成していないSQL文ですが、sqlite3を用いた、いわゆるワンライナーですな。

sqlite3 ファイル名 "select (select case when madrid_service = 'Madrid' then datetime(date + 978307200, 'unixepoch' , 'localtime') else datetime(date, 'unixepoch', 'localtime') end), (select case when is_madrid then madrid_flags else (select case when flags = 2 then 'recv' else 'send' end) end) , (select case when is_madrid then madrid_handle else address end), substr((select case when uiflags=0 then (select data from msg_pieces where message_id = message.rowid) else text end), 0,200) from Message order by rowid;" | lv

見る人が見れば分かる内容ですが、誰かGUI志向に実装しないかね。ソースネクストあたりが。

ちなみに、バックアップしたメール読み込む売り物のソフトも当然あって、こんなの iBackupBot - iTunes Backup Manager for iPhone, iPod Touch, iPad もあったのですが、メールに関しては全くなっちゃいなかったです。そもそもこのソフトがちゃんと動いてくれれば、こんな仕様調べてガリガリ書くことも無かったんですよ。

ちなみに、skypeとかLINEでのやり取りもバックアップとして残されていて、読み込みはSQLガリガリ君でいけます。