A5/A6のiPhoneやiPadをダウングレードできる「Odysseus」の使い方

2015/06/11 16:36

iphone-downgrade-tool-odysseus-top

iPhone 4sやiPhone 5などのA5/A6 CPUでも有効なiOSダウングレードツール「Odysseus」を紹介します。

基本的には、CLIでOS XやLinuxのTerminalからコマンドを入力して、所有しているSHSHを用いてCustum.ipsw(カスタムファームウェア)を作成し、復元を行うという流れになっています。

Odysseusの使用条件

1.CPUが32bitのA4からA6チップまでのデバイスが対象
具体的には
  • iPhone 4(A4)
  • iPhone 4s(A5)
  • iPhone 5(A6)
  • iPhone 5c(A6)
  • iPad mini(A5)
  • iPad 2(A5)
  • iPad 3(A5X)
  • iPad 4(A6X)
  • iPod touch 4G(A4)
  • iPod touch 5G(A5)
2.復元したいバージョンのSHSHが必要
3.脱獄済みでOpenSSHとCore Utilities (coreutils)がインストールされている
以上が対応できるデバイスです。

Odysseusの使用方法

Odysseus – dayt0n

こちらの「Instructions」に記されている方法で行います。
Tool:Odysseus v0.999
※Odysseus v0.1に同梱されている「FirmwareBundle」がiPhone 4のiOS 6.1.2と7.1.2しか入っていないため、それ以外のデバイス・バージョンでは現在のところ復元できません。
追記:v0.2にアップデートされ、iPhone 4 iOS 7.0.6が追加されました。

また、仮想マシンのUbuntuで試してみたところ、ツールが読み込めなかったためMac OS Xが必要になります。




1.ダウングレードしたいIPSWをダウンロード
Link:iPhone,iPad,iPod touch,AppleTV iOS Firmware IPSW ダイレクトリンク
2.SHSHファイルを有効にする
「.shshファイル」をxml形式の「.plist」にします。
「.shshファイル」と「IPSWファイル」をダウンロードしたツールの「macos」ディレクトリに入れます。

cat ECID-iDeviceModel-Version.shsh | zcat -fc > myblob.plist
plutil -convert xml1 myblob.plist
./validate myblob.plist downloaded.ipsw -z
ECID-iDeviceModel-Version.shsh:以前の「Tinyumbrella」や「iFaith」で取得した「APTTicket」が入っている.shshファイルになります。
downloaded.ipsw:iPhone 4のiOS 6.1.2の場合「iPhone3,1_6.1.2_10B146_Restore.ipsw」
※ここでエラーが出る場合、失敗するのでやめましょう。

3.現在のベースバンドを保存
ベースバンドをダウングレードすることが出来ないため、現在のベースバンドを保存します。

./sshtool -s baseband.tar -p 22 deviceIP
パスワードを聞かれるので入力します(デフォルトは「alpine」)
※あまりにもバージョンが離れたベースバンドの場合、通信(ネットワーク)が有効とならない可能性があります。

iOS 8.4のベースバンドでダウングレードした場合、最初のアクティベーションがエラーになり最新のiOSでしか復元できなくなるリスクがあります。
4.custom iPSWを作成する
./ipsw downloaded.ipsw custom.ipsw -memory baseband.tar
./xpwntool `unzip -j custom.ipsw 'Firmware/dfu/iBSS*' | awk '/inflating/{print $2}'` pwnediBSS
ここまでエラーが無ければOKです。

5.kloaderを実行し、DFUモードにする
./sshtool -k ../kloader -b pwnediBSS -p 22 deviceIP
10秒ほどで画面が暗くなり、DFUモードになります(その間ボタン類を操作しないように)

30秒くらしたら「Ctrl + c」 で抜けてください。
6.custom.ipswとshshを用いて復元
元の「ECID-iDeviceModel-Version.shshファイル」を「shsh」フォルダの中に入れます。

その後、「idevicerestore」を使ってCFWで復元します。

killall iTunesHelper
./idevicerestore -d -w custom.ipsw
以上で操作は完了です。

iphone-downgrade-tool-odysseus-01
※復元するまでに時間が掛ります。

対応するデバイスのFirmwareBundleについて

作者の@xerubさんにお願いするしかないのが現状です。

A5/A6デバイスでも試してみたところなので、今のところは待つしかないですね。

KarenちゃんもGUIツールを作成しようとしているとのこと。また、@iH8sn0wのツールも気になるところです。

個人的には「過去のバージョンでTweakなどのテストができる」ようになるのは非常にありがたいと思ってます。

iOS 8.3/8.4のJailbreakも合わせて、今後に期待しましょう!

追記

v0.3にて「FirmwareBundles」が多く追加されました。
リクエストしていたiPhone 4 iOS 7.0.4が追加され、無事ダウングレードに成功しました。




v0.4にて「FirmwareBundles」が追加されました。
※OSX 10.11 El Capitanでは動作しないようです
iPhone 4Sにて「7.1.2 -> 6.1.3」もしくは「8.1.1 -> 6.1.3」へダウングレードするとベースバンドのミスマッチが起きるため開発中とのこと。

iPhone5,4(iPhone 5c)が追加されましたが、日本のものだとiPhone5,3なので注意