みなさんはまだiPhone 4は使用していますか?
iPhone 4は、既にiOSのアップデートを打ち切られてしまいましたが、意外なことに最新バージョンで完全脱獄(untethered jailbreak)が可能な最後のiPhoneでもあります。今ではcheckm8によるcheckra1nの紐付き脱獄がとても重宝されていますが、6年前までは『limera1n exploit』と呼ばれる強力なBootrom exploitを使用することで紐付き脱獄を常に行えるデバイスとして、iPhone 4はかなり有用でした。
今回紹介するのは、iPhone 4をiOS 6.1.3に無条件に完全ダウングレード or 完全脱獄を実現することのできるツールです。前提条件は一切ありません。
古くから脱獄を行なっていた方はSHSHを保存していそうですが、それでも今回のツールは一定のメリットがあります。
今までのツールよりもかなり簡単に操作できるようになっているかと思います。
cherryflowerJB
バージョン: 1.4.2 beta 1-1
対応動作環境
macOS 10.13以降
対応デバイス
iPhone 4 [iPhone3,1]
JB対応のiOSバージョン
6.1.3 [10B329]
Downgradeのみ対応のiOSバージョン
4.3, 4.3.3, 4.3.5, 5.x, 6.x
ダウンロードリンク: cherryflowerJB
現段階ではmacOSのみです。いずれはiOS 4や5のJailbreak対応のほか、iPhone 5 (ios 7のSHSHをもつ)などでも使用可能にする予定です。
動画
使い方
ダウンロードリンクからツールをダウンロードして、zipを解凍してください。
あらかじめ、iOS 6.1.3と7.1.2のfirmwareをダウンロードしておきましょう
iPhone3,1_6.1.3_10B329_Restore.ipsw: 約980 MB
iPhone3,1_7.1.2_11D257_Restore.ipsw: 約1.2 GB
この2つのファイルも解凍されたフォルダ内に格納します。
解凍後、terminalを開いてください。以下の画像のように'cd'と入力したあと、解凍されたフォルダをterminal画面にドラッグ/ドロップしてください。
Enterを押して"cherryfloverJB"に移動できたら、以下のコマンドを実行します。
./cherryJB <in> <out> -memory -derebusantiquis <7.1.2 ipsw>
*脱獄しない場合は、"cherryJB"の代わりに"cherry"を使用してください。
今回の場合はiOS 6.1.3にしたいのでこうなります。
./cherryJB iPhone3,1_6.1.3_10B329_Restore.ipsw iPhone3,1_6.1.3_10B329_Custom.ipsw -memory -derebusantiquis iPhone3,1_7.1.2_11D257_Restore.ipsw
うまく行くと、iPhone3,1_6.1.3_10B329_Custom.ipswというCFWが出来上がります。
*iOS 4にする際の注意点
iOS 4にする場合のみ、APTicketをCFWに組み込む必要があります。そのため、いくつか異なる点があるので注意してください。
iPhone 4をDFU modeでmacに接続し、以下の手順でiOS 7.1.2のSHSHを取得してファイルをxml形式へ変換します。このCFWはデバイス固有のものになります。別のiPhone 4をダウングレードさせる場合は再度そのデバイス向けにCFWを作成してください。
./idevicerestore -t iPhone3,1_7.1.2_11D257_Restore.ipsw
zcat < shsh/[ECID]-iPhone3,1-7.1.2.shsh > shsh/[ECID]-iPhone3,1-7.1.2.plist
plutil -convert xml1 shsh/[ECID]-iPhone3,1-7.1.2.plist
./cherry iPhone3,1_4.3.3_8J2_Restore.ipsw [ECID]_iPhone3,1_4.3.3_8J2_Custom.ipsw -memory -derebusantiquis iPhone3,1_7.1.2_11D257_Restore.ipsw -a shsh/[ECID]-iPhone3,1-7.1.2.plist
CFWが作成できたらiPhone 4を復元します。全データが消去されるので注意してください。
iPhone 4をDFU Modeで接続し、以下のコマンドでpnwedDFU modeにします。
./pwnedDFU -p
次に、iOS 7.1.2のSHSHを取得します。
./idevicerestore -t iPhone3,1_7.1.2_11D257_Restore.ipsw
取得したSHSHは'shsh/[ECID]-[device]-7.1.2.shsh'という名前で保存されています。このshshのバージョン名を7.1.2から6.1.3にリネームして、'shsh/[ECID]-[device]-6.1.3.shsh'の形になるようにします。
最後に、復元を実行して終了です。
../idevicerestore -e -w iPhone3,1_6.1.3_10B329_Custom.ipsw
解除
このexploitを適用したあとに解除を行いたい場合、普通に復元する前に行う作業があります。
terminalで'remove_for_i4'に移動し、iPhone 4をDFU Modeで接続した状態で
./disable
を実行します。再起動してデバイスがrecovery modeになれば成功です。そのままiTunesで復元しましょう。
仕組み
お馴染み(?)の方もいるかと思いますが、iOS 7で動作するiBoot exploitを使用します。
デバイスを起動するとまずはいつも通りのフラットデザインなApple Logoが出現します。数秒経つとexploitが発動したあと立体感のある古いApple Logoに表示が切り替わります。この時点でiOS 6の起動が始まり、脱獄された状態でiOSが起動します。
ちなみにですが、脱獄の状態はiPhone 3GSで使用されていたようなBootloaderベースの脱獄となっています。p0sixspwnは使用していません。
verbose boot
redsn0wやcheckra1nのオプションにもありますが、本ツールでも起動時にブートログを表示させることが可能です。バンドル内のInfo.plist
(場所: 'FirmwareBundles/CHERRYJB_[device]_[version]_[build].bundle/Info.plist')
のboot-argsに"-v"を追加することでverbose bootで起動するようになります。
cs_enforcement_disable=1 amfi_get_out_of_my_way=1
↓
cs_enforcement_disable=1 amfi_get_out_of_my_way=1 -v