iPhoneのOS、iOSがいつの間にか4.3.1になっていました。
そんでもって、jailbreakに使う、PwnageToolも、いつのまにか4.3.1に対応しています。
(jailbreakとは、ファームウェアやOSを改変するなどして、Appleが認めているApp Storeのソフト以外のインストールを可能にする、所謂ソフト的な改造のことです。無論保証外)
気になっていたので、とりあえずPwnageTool 4.3でiOS 4.3.1を加工して、iPhoneをアップデートすることにしました。
iPhoneのバックアップを、iTunesで全て取ります。
jailbreakをする場合、一旦iPhoneをアップデートの度に初期化し、リカバリーモード(DFUモード)でOSをクリーンインストールする必要があるので、バックアップは絶対必要です。
また、非認可ソフトはjailbreakの有無を問わず、アップデートすると全部消えてなくなりますので、それを復元する為にバックアップデータに非認可ソフトのインストールログを一緒に混ぜ込んでおきます。
こうしておくと、非認可の復元ソフトだけをダウンロードして、リストアすると、他の非認可ソフトを全て復活させてくれます。
さて、バックアップも終わり、いよいよiOS 4.3.1(jailbreak版)をインストールすることになりました。
DFUモードに切り替え、iTunesの「復元」ボタンを「option(Alt)キー」を押しながら(ここ重要!)クリックをし、ファイル選択ダイアログから、jailbreak済みのiOSを指定します。
とりあえず起動には成功、ぱっと見異常はありません。
早速バックアップを書き戻し、先述の非認可ソフトも全て復活させます。
メールOK、WebブラウザOK、連絡先は...
あれ?
なぜか連絡先が0件になっています。
「書き戻しに失敗した??」
とりあえずもう一度バックアップを書き戻してみます。
しかし、戻りません。
困ったなー、と色々ネットで調べると、iTunesが吸い出した、バックアップファイルをバラバラに展開してくれるソフトがあることが分かりました。
それで、さっきのバックアップファイルをバラしてみます。
その中から、「連絡先」の設定ファイルを探します。
AddressBook.sqlitedb このファイルです。
これを開くために、LitaというSQLデータベースファイルを閲覧する為のソフトを更にダウンロードしてきて、開きます。
レコードをぱらぱらと見てみると、一応データらしきものは正しくバックアップされている様です。
脱獄が悪いのやら、あるいはiOSのバージョンアップで、「連絡先」ファイルの互換性がなくなってしまい、バックアップ復元ができなくなってしまったのやら。
どっちなのかは未だに不明です。
ただ、データの覗き見は出来たのですが、iPhoneが読み込んでくれないことには、どうしようもありません。
とりあえず手打ち入力をすることにしました。
しかし、このデータベースファイル、「苗字や名前、読み仮名」のテーブルと、「電話番号やメールなどの連絡先」のテーブルが、別々のテーブルになっていて、そのままでは一緒に見ることが出来ません。
一人の人が、「二つ以上」の電話番号や、メールアドレスを持っていることがあるので、それぞれがバラバラにされていて、その代わりに管理番号(キー)でその二つのテーブルが繋がっている状態です。
簡略化するとこんな感じです。
(名前リスト)
名前:番号(キー)
緑のリンク:01
わむたん:02
ショウトン:03
(連絡先リスト)
番号:連絡先
01:080-11-22
01:midori_link@test.test
01:midorinolink@testweb.net
02:090-12-45
02:123-456-7876
02:wamuwamu@test.test
03:080-123-4
03:shouton@test.test
03:shou-ton@hogehoge.test.net
簡略化してますが、さしずめ、こんな感じで格納されているので、すごく見づらい表なのです(でも、一番効率はいい)。
この例だと、
緑のリンクの連絡先:080-11-22、midori_link@test.test、midorinolink@testweb.net
わむたんの連絡先:090-12-45、123-456-7876、wamuwamu@test.test
ショウトンの連絡先:080-123-4、shouton@test.test、shou-ton@hogehoge.test.net
こんな感じの意味になります(リンクとショウトンは番号1つにアド2つ、わむたんは番号2つにアド1つ、と数が一定でないものを管理する都合上)。
とりあえず、万一俺と同じ境遇になった時のため以下の情報は書いておきますw
iPhoneのアドレスブックのデータベースファイルを取り出すことが出来た場合、そのままテーブルを切替えながら見ていると間尺に合わないので、以下の操作をしましょうw
SQL入力画面を出して、下の一文をを打ち込みます。
SELECT A1.Last, A1.First, A1.LastPhonetic, A1.FirstPhonetic, A1.Organization, A1.Note, A2.value from ABPerson A1, ABMultiValue A2, WHERE A2.record_id = A1.ROWID
こうすると、苗字、名前、ふりがな、ノート、職業、連絡先 がまとまってずらーっと並んで出てくるので、きっと見やすくなります^^;
連絡先が二つ以上ある人は、苗字や名前などは縦にだぶって出てきますが、問題ないでしょう。
なお、他のデータはこの例文では出せませんので、他のデータもいっぱい使ってる人は、応用してみてくださいw
何をやったのか、分かる人にはきっと分かると思うので^^;
また更に、頭が良くて、この手の操作に慣れている人ならもっといいことを書けるでしょうw
リンクは、まあこの程度なので大目に見て下さい^^;
しかし、数年前に覚えた某試験の問題を復習することになるとは、夢にも思いませんでした。
とりあえず、裏で抜け釣りをしながら、表を見ながら一個ずつ打ち込んで、どうにか連絡先はあらかた元通りになりました。
ついでに、もうお付き合いのない人とかを、部分整理しておきました^^;
連絡先が壊れると、困ったもんです><;;