[UPDATE1]クリーン・インストール後に便利な復元サポートツール”iPhone Backup Extractor”

JailBreakしたiPhoneの動作が不安定になったらどうするか?原因が不明な場合は最終手段として復元することになる。動作不安定になった原因が特定できていないので、iTunesのバックアップから復元ではなく「新しいiPhoneとして設定」を選択して環境を一から構築することになる。

JailBreakアプリはレポ登録含めて割とカンタンに復元できるが、SMS送受信内容やAppStoreアプリの設定内容や登録したデータ(db/SQLite)はどのように復元すればよいのだろうか?そんな時にiTunesのバックアップファイルから必要な情報を取り出してくれる”iPhone Backup Extractor”が便利だ。

iPhone Backup Extractorは母艦側(Mac)のアプリ。iTunesのバックアップから取り出す作業にiPhone本体のJailBreakは必要ないが、iPhone側に戻す際に通常ではアクセス出来ない領域に書き戻すことになる。

注意喚起情報
iPhoneに書き戻すにはJailBreakが必要になります。JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社の施したセキュアな枠組みを無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。さらに、JailBreakされたiPhone/iPad/iPod touchにAppStore以外で配信されるアップル社が承認していないサードパーティー製のアプリケーションをインストールする行為は、その安全性が保証されておらず悪意のあるプログラムが混入している可能性もあり、未知なる危険を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について


iphone-backup-extractor

まず、iPhone Backup Extractorをココ(http://supercrazyawesome.com/)からダウンロードする。

つぎに、”Read Backups”をクリックすると、iTunesでバックアップされた情報(~/Library/Application Support/MobileSync/Backup/)がリスト化されるので、デバイス名とバックアップした日付を頼りに対象ファイルを選択する。すると上図のように”Application Name”に各アプリ名と”iOS File”が一覧になる。iOS FileにはSMS送受信やSafariの履歴、電話履歴などのネイティブアプリの情報が含まれている。抽出したいアプリ名を選択して”Extract”する。

たとえば、SMS送受信内容を取り出す場合は、”iOS Files”をExtractすると指定場所に”iOS Files”フォルダが現れ、その中に./Library/SMS/sms.dbというファイルがあるので、これをiPhone側の/private/var/mobile/Library/SMS/にあるsms.dbに上書き(念のためバックアップ推奨)する。

ただ、これだけだとSMS/MMSの過去の送受信内容は見れても、(プッシュ通知は受取り可だが)受信できないし、送信しようとすると「メッセージを送信できません メールアドレスに送信するには、MMSメッセージングを有効にする必要があります。」と出てしまう。これはsms.dbのオーナーをrootからmobileへ変更しRespringすることで解消できた。

他にAppStoreのデータベース系アプリ等の場合、「新しいiPhoneとして設定」してしまうと、アプリを同期しただけではこれまで記録した内容(db/SQlistファイル)が戻せない。これをiPhone Backup Extractorから該当アプリを選択して抽出し、iPhone側の”/private/var/mobile/Applications/アプリ/”の例えばDocumentsにコピーするだけだ。アプリ動作上で何らかのエラーが発生するようであれば、バックアップから戻したファイルのオーナー、グループ、権限を修正すれば解決すると思われる。
※この方法がiTunesのオプションで「iPhoneのバックアップを暗号化」を選択している場合に有効かどうかは不明。

アプリのカンタンな設定内容であればクリーン・インストール後も手動で十分であるが、db/SQLite系のデータの再入力は実質不可能に近い。復元前にmobile以下ディレクトリを全て母艦側にコピーとっておくというのも非効率なので、必要な情報のみを取り出せるこのアプリは復元作業に欠かせないツールだ。もちろん、直前状態がiTunesにバックアップされていることが前提なわけだが。

動作環境
MacBook(MB404J/A) Mac OS X 10.6.4

iPhoneのUI画像をUIKit Artwork Extractorでぶっこ抜く【動画あり】

iPhoneに含まれる各種UI画像を確認してローカルディスクに保存することを可能にする”UIKit Artwork Extractor”を試してみた。このアプリを使うとiPhone4のRetina Display対応画像を抽出すことも可能になる*。iOS4.0へのバージョンアップとiPhone4のRetina Display対応によりiOS3.1.xの画像構成から大幅に変更されているので、解析するには最高のツールだろう。なおシュミレータを使うので実機は使用しない(つまりJailBreakは不要ということ)。
*正確には開発環境にある画像をシュミレータを使って取り出すということ。


UIKit_Artwork_Extractor1

準備するもの

手順

  • アプリのソースをダウンロードし、Xcodeから開いて「ビルドと実行」
  • iPhoneシュミレータでデバイスとバージョンを指定
  • ホームスクリーンから”Extractor”を起動

できること

  • 全画像(PNG形式)の一括保存
  • 一覧から画像確認・個別保存
  • 絵文字の確認・保存
  • glossyボタンの作成(3パターン。高さ、幅、RGB、アルファ値指定可)

画像ファイルの保存先
ローカルディスクの”~/Desktop/UIKit Artwork Extractor-version/”ディレクトリに保存される。SpringBoardや各framework名に応じてサブディレクトリが作成される。


画像一覧から選択したところ。シングルタップで背景削除の機能もある。
UIKit_Artwork_Extractor2

絵文字一覧
UIKit_Artwork_Extractor3

ボタンを作成できる。テキストは仮で配置できる。
UIKit_Artwork_Extractor4

UIKit Artwork Extractorを実際に使用してみたところ

動作環境
MacBook(MB404J/A) Mac OS X 10.6.4
Xcode3.2.3