iOSバックアップからファイルを取り出す方法

iPhoneなどのiOSデバイスを修理に出して帰ってきた後、また新たなiOSデバイスに買い替えた時、元のiOSデバイスのバックアップから新たなデバイスへ「復元」する作業が必要となります。
普通であれば何の問題もなく復元できるのですが、時々「互換性のエラー」などが発生し復元できない場合があるようです。

"[iPhone]バックアップが壊れているか、xxxxxと互換性がないため、復元できませんでした。"

"TS4036...: Apple サポートコミュニティ"

多くの場合はiOSやiTunesのバージョンを最新にすることで解決するようですが、中には最新にしてもエラーのままとなってしまう場合があります。このような場合は復元は諦めて、新しいiOSデバイスとして使いはじめざるを得ないようです。

完全復元は無理でも、カメラロールの写真などのデータはなんとか救出すれば、後から新しいiOSデバイスに転送できます。

そこで"iphone-dataprotection"を用いて、iOSのバックアップファイルからカメラロールに保存していた写真などを取り出す方法をご紹介します。有料ソフトを使えば一発なことも多いですが、今回は手間が少しかかるものの、全て無料でできます。
(日本語で探すとあまりいい情報がなかったのですが、StackOverflowだと簡単に見つかりました。

準備

以下、Mac,Homebrew,Python(2.6or2.7)環境下を前提にします。(WindowsでもSWIGさえインストールできれば後はたぶん同様です)
(Homebrew導入方法はコチラが詳しいです)

まずは準備。

"Pythonで一番最初に入れるべきパッケージ setuptools と pip"
上のサイトを参考にsetuptoolsを導入します。

setuptoolsを導入したら以下をターミナルで実行します。

b r e w i n s t a l l s w i g brew install swig sudo easy_install M2crypto construct progressbar
$ sudo ARCHFLAGS='-arch i386 -arch x86_64' easy_install pycrypto

以上で準備は終了です。

データ抽出

このサイトの上部にある"Download zip"からzipファイルをダウンロードして解凍。
その後ターミナルでそのフォルダまで移動し、以下を実行。

c d p y t h o n _ s c r i p t s cd python\_scripts python backup_tool.py ~/Library/Application\ Support/MobileSync/Backup/バックアップフォルダ名 出力先

もしもバックアップがパスワードで暗号化されていた場合、ここでパスワードを聞かれるのでパスワードを入力してください。

以上が上手くいけば出力先に指定したフォルダにバックアップファイルから取り出されたファイルがフォルダに分けられて保存されているはずです。