« [Windows Mobile]CeGCC 4.3.0 initial testリリース | Main | [Mac OS X]iTunesの自動ローカライズ機能で日本語表記にされた「ジャンル」を修正するAppleScript »

2008.03.29

[iPod touch]iPod touch 1.1.4のJailbreak後に発生するトラブルを回避

ここの情報は最早古いです。

1.1.4に復元した後、Mac OS X用のiLibertyX 1.51一発で片がつきました。

更新履歴


2008.03.31追記2:当初、「1.1.1→1.1.1 Jailbreak→(更新)→1.1.2→1.1.2 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という手順で書いていましたが、1.1.2を経由する必要が無いことが分かったので書き換えました。
2008.03.31追記:ZiPhone3.0で1.1.4から直接Jailbreakしてみましたが、やはりキーボード使用時のフリーズが発生しました。BSD Subsystemが自動的に入りますが、それによって音楽/動画再生ができなくなることはありません。Cydia Packagerは、インストール時にBSD Subsystemのファイルを削除するとのことなので問題無いかと思いますが、Cydia PackagerのCore Utilities+αの方が品質が高いという事実は変わりませんし、BSD Subsystemの項目がInstall.appの「Uninstall」に残るので、iJailbreakでJailbreakしてCydia Packagerをインストールした方がいいのではないかと思います。

前口上

iPod touchは1.1.2のままで粘ってきたんですが、世間様が1.1.3〜1.1.4に移行しているようなので、遅ればせながら1.1.4にしてみました。

僕の環境と方針

OSはMac OS X Leopard (Power PC)です。 iPod touchは16GBで、2007年10月に買ったものです。 iTunesは7.6.1にアップデートしてしまったので、それを使うことにしました。

1.1.4のJailbreakにおいてはSoft Jailbreakは避け、ZiPhone/iJailbreakを使ってするという方針に決めました。
この記事を書いているのは、ZiPhoneが2.6b、iJailbreakが0.6の時代です。
以降のバージョンないしは、新しい選択肢の出現で状況は変わっていくでしょう。

1.1.4 Jailbreak後にトラブルが発生している模様



ZiPhoneがiPod touch 16GB/32GBに対応していない間はJailbreakそのもので引っかかる人が多かったようですが、ZiPhoneがiPod touch 16GB/32GBに対応してからは、Jailbreak後に、以下の二つのトラブルで悩まされる人が出ているようです。

  • キーボード使用時にフリーズする
  • 音楽/動画が再生できない

何を隠そう自分もその両方にハマった口です。
方々のブログを拝見しながら試行錯誤した末、解決した感じなのでまとめてみます。

上記二つのトラブルは、それぞれ以下のような因果関係で起こっているようです。

かなり断定的に書いていますが、私が知りうるのは私の環境のみです。
あなたの環境で挙動が違ったらごめんなさい。

キーボード使用時にフリーズする



このトラブルは1.1.1→1.1.1 Jailbreakを経由していない環境で起きるようです。

例えば、「復元」でインストールしたまっさらの1.1.4をJailbreakした環境では、キーボード使用時にフリーズします。

下記のような段取りでJailbreakした1.1.4ではフリーズが発生していません。

1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak

音楽/動画が再生できない



このトラブルは、BSD Subsystemをインストールした後、最初の再起動後から発生するようです。
BSD Subsystemをインストールしなければ発生しません。

BSD Subsystemは2.1でも1.1.4下での動作が怪しく、トラブルを引き起こす元凶になってしまっています。
とはいえBSD Subsystemは半ばインストールするのが常識となっていますし、実際無いと困ります。

そこで登場するのが「Cydia Packager」。
これ自体はInstaller.appの代替品ですが、インストールするとBSD Subsystem相当のCore Utilities等が併せてインストールされ、BSD Subsystemの代替として機能します。

Cydia PackagerプロジェクトはInstaller.app、BSD Subsystemの不完全さを憂いており、それらより品質が高く、リプレースできるものであることを指向しています。

まとめ




  • 「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という順序で1.1.4をJailbreak

  • Jailbreak後は「BSD Subsystem」はインストールせず、代わりに「Cydia Packager」をインストールする

この2点に注意すればトラブルが回避できた、ということになります。

iTunes 7.6.1下でのダウングレードとDFU Mode

1.1.4に「復元」してしまった場合は、1.1.1からやり直さなければなりません。

1.1.1へのダウングレードが必要になるわけですが、iTunes 7.6.1下では、「復元」でもiPod touchのファームウェアを1.1.3以下のバージョンにダウングレードできません。Jailbreak対策を考えてか、そういう制約が入っているからです。

iTunes 7.5にはそういう制約が無いので、iTunesをダウングレードするところから始める人も居ますが、僕はiTunesはそのままで、ZiPhoneでiPod touchを「DFU Mode」に移行させる手法を取りました。

「DFU Mode」とは何か? 僕もよく分かっていませんが、修復モードのより強力なもの、というイメージでしょうか。
「DFU Mode」になったiPod touchに対しては、iTunes 7.6.1は1.1.1へのダウングレードを許してくれます。

「DFU Mode」移行を使った1.1.1へのダウングレードの具体的な手順は以下の通りです。

  • 1.1.1のファームウェアをダウンロード
  • ダウンロードしたファイルに拡張子「zip」が勝手に付いていたら削除
  • ZiPhoneをダウンロードし解凍
  • iPod touchをMacに接続する
  • iTunesを起動
  • ZiPhoneを起動
  • ZiPhoneのメニュー「Mode→Restart in DFU Mode」を実行
  • iTunesがDFU Modeに突入したiPod touchを検出するので、Optionを押しながら「復元」ボタンを押す
  • 開いたファイルオープンダイアログから、さきほどダウンロードした1.1.1のファームウェアを指定

1.1.4から1.1.4 Jailbreakまで

後は1.1.4への「更新」、そしてJailbreakです。
1.1.4のJailbreakに使うのはZiPhoneかiJailbreakか、といった議論があり、ZiPhoneはフリーズを発生させるので、iJailbreakの方がいい、といった声も聞くのですが、前述のキーボードを使った際に発生するフリーズは、ZiPhoneでもiJailbreakでも起きます。

フリーズの発生は「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4」という段取りを踏んでいるかどうかで決まるので、どっちを使うかは関係ありません。

再度書いておきますが、今現在のそれぞれのバージョンはZiPhone2.6b、iJailbreak0.6です。
今後状況が変わる可能性は大いにあります。

僕は1.1.4のJailbreakにiJailbreakを使いました。

  • iJailbreakをダウンロード
  • iPod touchをMacに接続
  • iTunesを起動
  • 「更新」で1.1.4にアップデート(最新版が1.1.4以降になり、ファームウェア1.1.4を別途用意する必要が出た場合はここにあります)
  • iJailbreakを起動
  • 勝手に表示されるダイアログには適宜対応
  • 「Jailbreak」ボタンを押す

Jailbreakが終わったら、「Cydia Packager」をインストールします。

  • Installer.appの「Sources」タブで「Edit」ボタンを押し、さらに「Add」ボタンを押して表示されたダイアログに「http://apptapp.saurik.com/」を入力、「OK」ボタンを押します
  • 念のため、「Refresh」ボタンを押します
  • 「System」カテゴリの「Cydia Packager」をインストール
  • BSD Subsystemのインストールをチェックするパッケージのために「System」カテゴリの「Fake BSD Subsystem」をインストールしておくといいかもしれません

繰り返しになりますが、「Cydia Packager」と「Fake BSD Subsystem」をインストールすれば基本的に「BSD Subsystem」は必要無いので、「BSD Subsystem」のインストールは避けます。

「Erica's Ported Utils」も、最早お役御免かもしれません。
なぜならば「Cydia Packager」からインストールできるSQLite3はReadlineのサポートが入っていてコマンドライン編集ができますし、wgetをはじめとするネットワークツールでは名前解決ができます!
libresolvがインストールされ、/usr/lib/libc.dylibに含まれる壊れたgethostbyname()の代わりに、それを使って名前解決するようリンクされているのです。

「Cydia Packager」はAPTをベースにしたパッケージ管理ツールで、依存関係のあるパッケージを自動的に判断してインストールしてくれるので便利!

また、「Cydia Packager」からインストールできるRubyにはコマンドライン編集が利くirbが付き、なおかつrequireしても落ちません! GCにあった問題を解消しているそうです。
昨年の段階ではRubyがちゃんと動かないのはiPod touchのメモリが少ないせい、という話になっていましたが、そんなことはなかったわけですね。そうなるとRubyCocoaが欲しいところ。

|

« [Windows Mobile]CeGCC 4.3.0 initial testリリース | Main | [Mac OS X]iTunesの自動ローカライズ機能で日本語表記にされた「ジャンル」を修正するAppleScript »