iPhoneのSMSを吸い出す方法メモ

Twitterから転載

きっかけ:

nishio iPhoneのSMSはチャット形式になっていてだらだら話すのに便利だけど、「あれ何だっけ」って思った時に探すのが面倒だ。手元のMacにテキスト形式で保管する方法があれば検索するだけで済むのだがなんかいい方法ないかなぁ
nishio うーん、iTunesによるiPhoneのバックアップが~/Library/Application\ Support/MobileSync/Backup/に入っていることまではわかったが、ここからSMSのデータだけをどうやって取り出せばいいかが良く解らん
nishio やりたい事はiPhoneのSMSでの会話をテキスト形式でバックアップして、したいときには検索して目的の内容を見つけられるようにすることなんだけど。

情報提供1

ento @nishio http://insend.de/ may help with your sms hack

というわけで~/Library/Application\ Support/MobileSync/Backup/***/3d0d7e...mddataをバイナリplistだと思ってplutilでもとに戻そうとする。しかし正しく復元できないと言うエラーメッセージが出る。

情報提供2

konomi @nishio SMS>csv http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20090612

このファイルはSQLiteのファイルなので、sqlite3 -csv -separator ',' 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata "select * from message;" > output.csvCSVに変換できる。

おお、最新のiTunesではバイナリplistじゃあなくてsqliteなんだそうだ。早速書かれているコードを試してみるとあっさりcsvになった。すばらしい。

残念ながら写真や動画、顔文字は表示されないけど。顔文字はまあ適当なコードが割り当てられているので置換してやればいいとして、画像の参照がどこに書かれているのかわからんぞ。おそらくmassageテーブル以外のところに記録されているんだろうなぁ。