Apple TV 2G 4.2 ビルド(8C150) の Jailbreak


昨日、PwnageTool による jailbreak をするのにこだわったかというと、aTV Flash のβ2 が出たので、それを使うために、jailbreak のためのカスタムファームウェアを作る必要があったからです。
aTV Flash の開発元 fire core のサポートを読むと、β2 は Apple TV 4.1 と 4.2 で互換がある(というかApple TV 4.1(iOS 4.2.1)=Apple TV 4.2をいっているのか)、手順は単純じゃなく制約もあるが Apple TV 4.1(iOS 4.2.1) で、jailbreak できるような記述があったので、インターネットを彷徨い、とりあえず jailbreak することができました。

ちょっと紛らわしいのが Apple TV のファームウェアバージョンは、

  • Apple TV 4.1 – OSビルドバージョン 4.???(8M89) -> Apple TV 4.1
  • Apple TV 4.1 – OSビルドバージョン 4.2.1(8C150) -> Apple TV 4.2

となっており、12/13現在 PwnageTool-4.1.2 で正式サポートされているのは、ビルド(8M89) のもので、ビルド(8C150)の最新ファームは、正式にサポートしていません。

しかし、ビルド(8M89)のカスタムファームウェアを Apple TV に焼き込んで jailbreak するには、ビルド(8M89) の ECID が必要ということで、当然現在では ビルド(8C150) の ECID しか取得することができません。困った…。という訳です。

注意!!!
これはいわゆる “tethered jailbreak” と呼ばれるもので、Apple TV 起動時に Mac への USB 接続が必要です。一度電源を切ると再度、Mac に接続して再起動しなければなりません。(スリープでは問題ないので、リセットするか、電源ケーブルを抜かなければOK)

以下、Apple TV 4.2 ビルド(8C150) にした Apple TV 2Gen を PwnageTool-4.1.2 を使って jailbreak する方法です。私は 12月上旬に買った Model MC572J/A で正常に動作している(ようにみえます)が、全く動作保証はありません。
また、必ず作業前に ECID を取得して、オリジナルファームウェアに戻れるようにしてから作業を開始してください。

用意するもの

  • Apple TV と電源ケーブル(jailbreak した後、電源を抜かないで設置出来る場所に挿した物)
  • 最新の iTunes
  • Mac と Apple TV を繋げる USB ケーブル(MicroB<->USB A-Type)
    Mac と USB そして 電源ケーブルを同時に繋ぐ必要があり、その電源ケーブルは jailbreak 後抜けないことを考慮してください。
  • AppleTV 4.2 ipsw(ファームウェア) AppleTV2,1_4.2_8C150_Restore.ipsw
  • PwnageTool-4.1.2(http://blog.iphone-dev.org/post/1359246784/20102010-event)、4.1.3 は使わないでください
  • 4.2_tethered_appletv.zip(Google で “jailbreaker AppleTV2 4.2″でサーチすればその手のサイトがでてくるので、説明の最後の方に Download リンクがあります。例えばここ)

PwnageTool 4.1.2 の基本的な使い方は、こちらの方のブログPwnageTool 4.1.2を使ってAppleTV 2GのカスタムiOS4.1を作成しjailbreakがとても分かりやすいです。私も参考にさせて頂きました。

  • Step-1
    ダウンロードした 4.2_tethered_appletv.zip ファイルをデスクトップに解凍します。デスクトップに tethered というファルダが作成されます。
  • Step-2
    PwnageTool 4.1.2.dmgを開きアプリケーションをアプリケーションフォルダにコピーします。
  • Step3
    ターミナルをクリックして開きます。以下のコマンドを入力します。
    cp -r ~/Desktop/tethered/AppleTV2,1_4.2_8C150.bundle /Applications/PwnageTool.app/Contents/Resources/FirmwareBundles/

    cp ~/Desktop/tethered/Info.plist /Applications/PwnageTool.app/Contents/Resources/CustomPackages/CydiaInstallerATV.bundle/Info.plist
  • Step-4
    PwnageTool を起動して、AppleTV2,1_4.2_8C150_Restore.ipsw に対してカスタムファームウェアを作成します。基本は、上記のブログの手順を行ってください。

    手順通りに進めて、Apple TV を DFU モードにします。

    デスクトップに AppleTV2,1_4.2_8C150_Custom_Restore.ipsw が作成されているはずですので、そのファイルを tethered フォルダに移動させます。
  • Step-5
    ターミナルへ戻って以下のコマンドを入力します。
    unzip -j ~/Desktop/tethered/AppleTV2,1_4.2_8C150_Custom_Restore.ipsw Firmware/dfu/iBSS.k66ap.RELEASE.dfu kernelcache.release.k66 -d ~/Desktop/tethered/
  • Step-6
    Apple TV に ~/Desktop/tethered/AppleTV2,1_4.2_8C150_Custom_Restore.ipsw を書き込みます。Apple TV に電源コードを繋がないで、USBケーブルのみで Mac に接続します。(正面のランプは早点滅になっているはず)、iTunes を起動すると Apple TV がデバイスとして見えるはずなので、選択して、optionキーを押しながら「復元」ボタンをクリックすると復元するファイルが見えるので、~/Desktop/tethered/AppleTV2,1_4.2_8C150_Custom_Restore.ipsw ファイルを選択して復元します。
    もし、Apple のリクエストに失敗する場合は、取っておいた ECID と TinyUmbrella で TSS Server を立ち上げてから「復元」を行います。復元が終了したら iTunes を終了します。
  • Step-7
    Apple TV と Mac を接続している USB を一度抜いてから再度差し込みます。前面ランプが早点滅で安定したら、電源ケーブルを接続します(以降、電源ケーブルを抜くことは出来ませんからご注意ください)。
  • Step-8
    以下のコマンドをターミナルから実行します。
    cd ~/desktop/tethered

    ./tetheredboot -i iBSS.k66ap.RELEASE.dfu -k kernelcache.release.k66

    Waiting for device to enter DFU mode
    Device must be in DFU mode to continue
    opening device xxxx:xxxx…

    などとメーセージがループします。
  • Step-9
    マニュアルで Apple TV を DFU モードにします(PwnageTool を使ってはいけません)。
    DFU Mode にするにはリモコンの
    • MENU ボタンを 7秒押し続けます
    • MENU ボタンを押したまま、Play ボタンを 7秒間押し続けます
    • ボタンの押下を止めます

    成功するとターミナルに以下のようなメッセージが表示されます。

    Initializing libpois0n
    No matching processes belonging to you were found
    Waiting for device to enter DFU mode
    Device must be in DFU mode to continue
    opening device xxxx:xxxx…
    Found device in DFU mode
    Checking if device is compatible with this jailbreak
    Checking the device type
    Identified device as AppleTV2,1
    Preparing to upload limera1n exploit
    Resetting device counters
    Sending chunk headers
    Sending exploit payload
    Sending fake data
    libusb:error [darwin_transfer_status] transfer error: timed out
    Exploit sent
    Reconnecting to device
    Waiting 2 seconds for the device to pop up…
    opening device xxxx:xxxx…
    Uploading iBSS.k66ap.RELEASE.dfu to device

    [==================================================] 100.0%

    libusb:error [darwin_reset_device] ResetDevice: device not responding
    libusb:error [darwin_close] USBDeviceClose: no connection to an IOService
    Waiting 10 seconds for the device to pop up…
    opening device xxxx:xxxx…Setting to configuration 1
    Setting to interface 0:0
    Uploading kernelcache.release.k66 to device

    [==================================================] 100.0%
    libusb:error [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)

これで、jailbreak に成功して Apple TV が起動しました。USB ケーブルを Apple TV から抜いて、電源ケーブルを繋いだまま、HDMIとテレビ(必要ならその他のケーブル)を繋ぎます。もし、失敗した場合や、電源を切ってしまった場合は、Step-7 から Step-9 を繰り返して Apple TV を再起動させます。

さて、Apple TV の場合、jailbreak しても、見た目は何も変わりません。ただ、ssh が動作するようになるので、Mac のターミナルから

ssh root@AppleTVのIPアドレス(例えば ssh root@192.168.1.1 など)
passwd:  alpine

で、root でログイン出来れば、jailbreak 成功です。root のパスワードは必ず alpine になるので、安全のため passwd コマンドで root のパスワードを変更した方が良いでしょう。

さて、次はちゃんと aTV Flash がインストールできるのか?。それはまた明日…。

記事元:Jailbreak Apple TV2 on iOS 4.2 with PwnageTool [HowTo]

4 Responses to “Apple TV 2G 4.2 ビルド(8C150) の Jailbreak”

  1. ohta より:

    appletvのOSが8M89か8C150か、どうすれば確認できますか?

  2. macman より:

    こんにちは。Apple TV のメインメニューから「設定」->「一般]->情報を選択し、その画面で、決定ボタンを2回押すと、「ソフトウェアバージョン」の部分が「OS ビルドバージョン」になりビルドバージョンが確認できます。

  3. lupin4 より:

    Step-8から出来ません
    教えてください

  4. macman より:

    こんにちは。ターミナルから順次コマンドを入力すれば良いのですが…。この記事の方法は結構めんどくさいです。Step-6まで出来ているのなら、http://www.love-mac.net/archives/01/4950.html を参考に、Seas0nPass で Boot tethered のみをすれば、Step-7〜9と同様のことが簡単に出来ます。
    ですので、 Seas0nPass の使用をお勧めします。

    1. Seas0nPass のダウンロード http://files.firecore.com/SP/Seas0nPass.zip
    2. Seas0nPass.zip を解凍して、Seas0nPass.app を実行する。
    3. Using Seas0nPass for a ‘tethered boot’ の Step-1〜3を実行する
    です。
    ‘tethered boot’ の手順は、
    1. Seas0nPass.app を起動させた状態で、AppleTV2 を USB ケーブルで接続します。遅い点滅から早い点滅になったら、電源ケーブルを接続します。
    2. リモコンの “MENU” と “Play/Pause” ボタンを同時に 7秒押して離します。
    3. Step-3 の画面 になれば成功です(電源ケーブルは抜かないでください)。
    お試しください。よろしくお願いします。

Leave a Reply