iOSアプリケーションの開発を業としていると、検証目的などで割と頻繁に端末のOSを入れ替えたりします(もちろん『TinyUmbrella』のお世話になります)。
ここしばらくはiOS 4の牙城だったので主にiPhone 3GSとiPhone 4の2台体勢で前者のOSを入れ替えていればよかったのですが、iOS 5を視野に入れたテストも行うようになり、メインとして利用しているiPhone 4もOSバージョンを上げたり下げたりの検証作業に使用するようになりました。
Jailbreak環境の復元はめんどくさい
ところで、jailbreak環境でいちばん面倒なのはCydia appsの復元だと思います。筆者は後述のようにCydia向けリポジトリからのアプリケーション類をたくさんインストールしています。
iOSのバージョン切り替えとApp Store アプリケーションの再インストールは、(該当のshshさえあれば)端末をDFUモードにしてから『redsn0w』でpwned DFUモードに切り替え、『TinyUmbrella』でTSS Serverを実行させてから『iTunes』でoption+復元ボタンによる指定ファームの復元を行えばよいだけです。
筆者の場合は、iOSのマイナーバージョンまでが同じ(つまり4.3.1→4.3.3など)であれば復元後にiTunesのバックアップから書き戻し、そうでなければ(4.2.1→4.3.5など)復元前にあらかじめ /var/mobile/Library/ や /var/mobile/Applications/ 以下などから設定ファイルやデータ類、 /var/mobile/Media/ 以下の写真データなどを採取しておき、いったんiTunesで新規のiPhoneとして設定してからjailbreakして設定ファイルやデータ類を『iPhone Explorer』を利用して手動で書き戻しています。
これと比べるとCydiaでリポジトリを追加し直し、必要なアプリケーションをひとつひとつ指定していくのはとても骨が折れます。もちろん、それに対するソリューションもたくさん提供されています(たとえば『AptBackup』など)。究極的には自分でそのようなツールを作ることもできます。いくつか書き戻したい設定ファイルなどもあったので、融通を利かせたくて筆者もシェルスクリプトで作りました。