iOS4→3.1.3ダウングレード成功しました。

※もしこの記事を見て「僕もダウングレード挑戦しちゃうぞ☆」と思ったあなたへ。

実践はくれぐれも自己責任のもとに行ってください。
起動できなくなった、パソコンが動かなくなった、などいかなる事態が発生しても僕は一切の責任を負いません。

実行環境

のもとでの話です。


ではお話をはじめます。

まず、iOS4→3.1.3にダウングレードをしたいと思ったきっかけ。

  • 重い
  • メールがしょっちゅう落ちる(これはほんと不快)
  • iOS4の恩恵を全然感じなかった

ということで、やろうと思い立ちました。

基本的な指針はこちら。

iOS4の遅さがどうしても気になったら...。iOS3.1.3にダウングレードする方法 | ライフハッカー[日本版]

この手順通りにやったのですが、ちょっとしたハマりどころがあって5時間くらい悪戦苦闘しました。したがって、このエントリではそのハマりどころについて述べたいと思います。

まず、iTunesはアップルとアクティベーション情報を通信していろいろチェックしてます(よく知りませんが)。
iOS4から3.1.3にダウングレードするなどというアブノーマルな行為をアップルがにこやかに応援してくれることはまずありません。
したがって、iTunesをちょっとごまかしてやらないといけない…と思います(LifeHackerの記事には書いてないので必須かどうかはわかりませんが、僕はうまくいきませんでした)。
ここでJB経験が生きます。JBをする時に、デバイスアクティベーションプロファイルをリモートサーバーにバックアップしてました。
僕が説明するより、ちゃんと書いてあるページを紹介します。

【How To】 Jailbreakってどうやるの? iPhoneもiPadも! | ギズモード・ジャパン

「Make my life easier, thanks!」ボタンをクリックします。
すると、デバイスアクティベーションプロファイル(SHSH blob)がリモートサーバーにバックアップされます。これによって、うっかりデバイスのソフトウェアをアップグレードしてしまったときにも再度Jailbreakできるようになります。これについて詳しくはまた後ほど説明します。

Q: 「Make My Life Easier」ボタンの意味は?
A: もしアップルが次のソフトウェアアップデートでJailbreakを阻止して(ありがちです)、しかもうっかりそのアップデート版をインストールしてしまった場合、二度とJailbreakできなくなる可能性があります。なぜか?最近、アップルではJailbreakした端末がアップグレードしたりダウングレードしたりすると、オフィシャルなサーバーに対して認証させるようにしているからです。
そのため、このボタンでは、Jailbreakに不可欠なセキュリティホールのある古いバージョンのiPhone/iPadソフトウェアに戻せるようにしているのです。アップルでは、JailbreakできないOSにアップグレードしたデバイスに関してはダウングレードできないようにロックしています。
Cydiaでこのボタンを押すと、SHSH blobというものがリモートで保存されます。SHSH blobは、アップルのサーバーからユーザーのデバイスに送られるGoサインみたいなものです。もしその後ソフトウェアをダウングレードしたくなったとき、Cydiaのサーバーで保存しておいたSHSH blobを送ると、iTunesはそれをアップルから正式に送られてきたGoサインと認識してくれます。ダウングレードに関しては、アップルが次のアップデートを出すまではとりあえず心配ないでしょうが、アップグレード後にはまたこのガイドも書きかえる必要があるでしょう。ちなみにこのプロセスについて詳細はCydiaを作ったSaurikさんのブログで読むことができます。

…というわけです。
で、結局なにをするかというと、上記のSaurikさんのページによれば

74.208.10.249 gs.apple.com

という一行を、C:\Windows\System32\drivers\etc\hostsの一番下に追加すればいいそうです。ちなみにこのhostsというファイルはデフォルトでは読み込み専用だと思うので、プロパティで読み込み専用のチェックを外してから編集してください。これによって、iTunesがアップルと通信してるつもりで別のところと通信する(と思う)んですが、アクティベーションプロファイルのバックアップをしたことない人にもこれが有効かは不明です。とりあえずは参考まで。


そして、僕の事例での唯一で最大のハマリどころはここ。

3: 『iOS 3.1.3』を復元する

………ここでRecBootを使おう。RecBootを開き、 Exit Recovery Modeをクリックすると、数秒でダウングレードした『3.1.3』で、iPhoneが立ち上がる。………

テキトーにやってたらRecBootでExit Recovery Modeを押して何分待ってもiPhoneが立ちあがりませんでした。
なのでちゃんと書いてあることは全部やろう、と改心しました。

  1. .NET 4.0をインストール
  2. libusbをインストール
  • NET 4.0をインストール

よくわかんないけどたぶんインストールされてるんじゃないかとたかをくくっていたが、
[コントロールパネル > プログラムの追加と削除]で探したら見つけられなかったのでインストールした(もしかしたら見つけられなかっただけでほんとは入ってたのかもしれないけど)。
「net 4.0 インストール」とか適当にググったらでてくるはず。

  • libusbをインストール

まず、RecBootのExit Recovery Modeは、RecBootの圧縮されたアーカイブを展開した中の"iRecovery.exe"というやつを使うらしい。
そして、そのiRecovery.exeを動かすために、libusbというのが必要らしい。
…ここまで把握して、libusbでググってsourceforgeのページからそれらしきものをダウンロードしたが、どうもインストーラがうまく動いてないような感じだった。
要はiRecovery.exeが動く環境をつくればいいんでしょ!と思ったので

http://www.zaksenterprises.com/View-details/iPhone-Files/32-iRecovery-windows.html

からiRecoveryをダウンロード。
これを展開した中にlibusb-win32….exeというインストーラがあるので実行。
無事インストーラが動いたので、その後にRecBootのExit Recovery Modeボタンをクリックすると
iPhoneがぴろりっとリカバリーモードから戻ってきてくれた。めでたしめでたし。


********

いかがでしょう。
困ってる方々に少しでも手助けできたらと思って書いてみました。
もしかしたら抜けがあるかもしれないので質問してください。
9割くらいはググれって答えしかできないかもしれませんが。
あとVistaWin7のことは全然わからないのでごめんなさい。

それではこれにて終了させていただきます。
長々とお付き合いくださりありがとうございました。