iPhoneといえば通常はダウングレードはできませんね。
でもそれはiPhone 3GS以降のお話。iPhone 3G時代にはSHSHの考えはなく、iOS 4未満であれば自由にダウングレードすることができます。
*iOS 4からsoftware SHSHが導入されましたが、そもそもSecureROM側に認証機能が備わっていないので、その認証がない4.x未満のダウングレードは自由ということになります。
ということで、実際にMacでiTunse (v12.7.5)を使用し3Gの初期バージョンであるiPhoneOS 2.0へ復元を試みました。
iOS 4のリカバリーモードにはSHSHの考えが生まれてしまっているので、まずはDFU modeにしてoption+復元でFW 2.0を復元...。
しかし、あれ?
できませんねー。
どうもiPhone 3GをiTunesに接続すると自動でWTF modeに上がるので、ここに問題があるのではと考える。
ということで、このプロセスを変えてみました。
iPhone 3GのFW2.0をダウンロードして解凍。
ファイル構造はこんな感じですね。
Firmware/
all_flash/
all_flash.m68ap.production/
...
all_flash.n82ap.production/
...
dfu/
WTF.m68ap.RELEASE.dfu
WTF.n82ap.RELEASE.dfu
WTF.s5l8900xall.RELEASE.dfu
iBEC.m68ap.RELEASE.dfu
iBEC.n82ap.RELEASE.dfu
iBSS.m68ap.RELEASE.dfu
iBSS.n82ap.RELEASE.dfu
018-3782-2.dmg
018-3783-2.dmg
Restore.plist
kernelcache.release.s5l8900x
iTunesがやっていることを、代わりにFW 2.0のブートローダーを使用してやればいいんじゃないか。という感じで進めていきます。
iTunesに変わって手動でWTFとiBSSを送信しないとならないため、irecoveryが必要になります。
まず必要になるのが"Firmware/dfu/WTF.s5l8900xall.RELEASE.dfu"です。
最初にターミナルを開いて以下を実行。iTunesを落とします。
MacBook:~ User$ killall iTunes
MacBook:~ User$ killall iTunesHelper
これで邪魔なiTunesは消えました。
次に、iPhone 3GをDFU modeにしてください。
redsn0wで確認するとこのようになると思います。
そして、irecoveryを使用して"WTF.s5l8900xall.RELEASE.dfu"を送信します。
MacBook:~ User$ irecovery -f Firmware/dfu/WTF.s5l8900xall.RELEASE.dfu
すると、redsn0wで確認できますがWTF modeになります。うまく認識しない場合はUSBを抜き差ししてみるとうまくいくようです。
続いて、iBSSも送信しておきます。
MacBook:~ User$ irecovery -f Firmware/dfu/iBSS.n82ap.RELEASE.dfu
そうするとrecovery modeになります。
ここまでくれば、iTunesを起動して通常通りにoption+復元でIPSWを選択して復元できます。
うまく進んでますね。
ここで注意なのが、例えばFW 2.0以降から2.0にする場合、おそらく99%エラーを吐いて終了します。しかし、これはBasebandの復元に失敗しただけなので正常です。
(3G/3GSのBBは高いバージョンから低いバージョンに復元できない。)
なので、最後にirecoveryでauto-boot=trueを実行してやればokです。
MacBook:~ User$ irecovery -a
iTunesでもFW 2.0になったことが確認できます。
次はiPod TouchをFW 1.1.5にした時のことを書こうかと思っています。