消えた?2.1アップグレード前のSMSを見る

iPhone OS 2.1 がリリースされて随分経ちました。
発売2ヶ月間で一番大きなバージョンアップです。
最初っからこのバージョンのOSが入っていればもっと良かったのにとは思いますが、OSのバージョンアップによって機能が増えたり安定したりしていく事が実感できてきているのではないでしょうか?
2年契約で買った多くの人にとっても、4半期で人気機種以外が投げ売りされ始め、2年使えば確実に陳腐化しているケイタイとは違って、2年間使い続けられるものになるのではないでしょうか?

データが引き継げない?

iPhone OS 2.0.x から 2.1 へのバージョンアップでは大幅な変更が入っているため、iTunes でバックアップしたファイルが復元できません。iPhone を更新した後に「互換性が無いためバックアップを復元できません」と言う風なダイアログが表示されて、データの引き継ぎができない事が表示されます。
SMSにはSoftbankからのお知らせやら、メールのパスワードやらが残っていたりするので、これは困ってしまいます。

しかし、iTunesでバックアップがされていれば、このバックアップを Mac 上で展開してデータを取り出す事ができます。

データがあるか確認する

まずは、バックアップデータがちゃんとあるか確認します。
iTunes環境設定...バイス を表示してみて、バックアップが取られている事を確認します。
iPhone OS 2.1 にアップデートした日の日付でバックアップデータが作成されていればOKです。

このバックアップデータは、ホーム/ライブラリ/Application Support/MobileSync/Backup/ の中に、各バックアップごとのフォルダに分かれて存在しています。

が、
バックアップファイルはエンコードされたファイル名が付いていたり、どれが何やらわからなくなっています。

そこで decode_iphone_backup という Python スクリプトを使って、このバックアップファイルを元のパスとファイル名に戻します。

バックアップを取って、ファイル名を戻す

バックアップフォルダは虎の子なので、コピーしたフォルダに対して decode_iphone_backup.py を実行します。

ターミナルを開いて、.mdbackup ファイルをスクリプトの引数に指定します。efxxxx-20080904-xxxx/*.mdbackup という風にすれば良いのですが、フォルダ名がそのままでは長くてうまくいきません。
コピーしたバックアップフォルダの名前を短かくしておきましょう。

$ decode_iphone_backup.py bk20/*.mdbackup

といった具合に実行すると、実行したフォルダの中に MobileSyncExport フォルダができます。

SMS のメッセージは

MobileSyncExport/Library/SMS/sms.db

というファイルに入っていて、sms.db ファイルは sqlite3 の DB ファイルになっています。

sqlite3 の中身を表示する

ターミナルを開いて、SMS フォルダに移動してから次のコマンドを実行します。

$ sqlite3 sms.db "select * from message"

結果は次のように表示されます

69|08022221111|1221306715|そうだよね。|2|0||2|0|38|0|0
71|08022221111|1221308380|着いた。|3|0||2|1221308380|38|0|0
72|08022221111|1221308551|おかえりー。子ら寝たよ。|2|0||2|0|38|0|0
73|08022221111|1221308803|おやすみなさい、子供達|3|0||2|1221308803|38|0|0
74|157|1221310259|<ソフトバンクより>

今月分のご請求情報が確定しました。
下記、「オンライン料金案内」から請求金額が確認できます。
しかも通信料無料※だから、大変便利!

Y!ケータイからは
→ URL:http://mb.softbank.jp/scripts/japanese/mobile/obi.jsp ※通信料無料(3Gのみ)

iPhone・Xシリーズからは
→ URL:https://mb.softbank.jp/scripts/japanese/xseries/index.jsp ※通信料必要

●お問合せ:弊社お客さまセンター157≪受付9:00-20:00≫
●このメールへの返信は受付できません|2|0||1|0|471|1|0