iPod Touch 16GB 1.1.3/1.1.4 jailbreak の備忘録
Posted by yoosee on Gadget at 2008-03-04 18:00 JST1 iPod Touch 16GB firmware 1.1.3/1.1.4 を jailbreak する
そこらに手順はあふれているが、jailbreak 前後で幾つかはまったので備忘録として記録しておく。早く ZiPhone のようなワンクリックな方法が使えるようになればいいのに。(2008-03-16追記: ZiPhone 2.6b の CLEAR/FIX NVRAM 機能追加で下記の問題は解決され、ZiPhone による iPod touch 16/32GB (1.1.3, 1.1.4) の jailbreak が問題なく可能になった模様。)
最初は ZiPhone 2.4 で試したのだが、再起動後に
BSD root: md0, major 2, minor 0と言う悲しい呪文の無限ループになってしまった。どうやら現行の ZiPhone は iPhone 8GB モデル用に作られているようで、殆どの 16GB, 32GB モデルではフラッシュストレージのレイアウトが違うためにインストール後の boot で失敗してしまうらしい。ここからの復帰はHow to make an iTouch with "BSD root: md0, major 2, minor 0" Work Again の通り、iPod touch を Home+電源ボタン押下のリカバリモードで起動して復旧をかける。
iTunes から 1.1.4 に復旧した後、 1.1.1 に落としてから jailbreak する方法に切り替えた。これに関してはほぼ Jailbreak 1.1.1->1.1.2->1.1.3まとめ の通りで、1.1.4 から 1.1.1 へダウングレードした上で jailbreakme.com にて jailbreak する。1.1.1 への復旧は iTunes で「Shift+復元」から 1.1.1 farmware を普通に選択するだけでは駄目で、iPod touch をリカバリモードにする必要があった。
最終的にとりあえず 1.1.3 jailbroken まで上げ、BSD SubSystem や OpenSSH 、MobileFinder 等の必須アプリを幾つか導入した。
2 Jailbreak後の作業
jailbreak した 1.1.3 で幾つかアプリをインストールしているとlow disk spaceとのエラーメッセージ。ssh で login して df を叩くと
Filesystem 512-blocks Used Avail Capacity Mounted on /dev/disk0s1 614400 614400 0B 100% / devfs 30 30 0 100% /dev /dev/disk0s2 31103856 2061400 29042456 7% /private/varなるほど、root partition が 300MB しか無く、Install 先はそのパーティションにある /Applications なので問題になるらしい。とりあえず /Applications だけ /private/var/ に逃す。
# cp -rp /Applications /private/var/ # rm -r /Applications # ln -s /private/var/Applications /Applicationsこれでいいはずが、Installer を起動してパッケージ操作しようとすると
Main script execution failed!などと怒られる。このエラーの発生原因は幾つかあるようだが、私の場合はどうも permission の問題らしい。基本的に 1.1.3 以降ではアプリケーションが mobile:wheel 権限で動くため、Installer は root suid されている必要があるらしい。見てみると
# ls -l /Applications/Install.app/Installer -rwxr-xr-x 1 root wheel 116252 Mar 3 22:06 /Applications/Installer.app/Installerと言うことで u+s する
# chmod 4755 /Applications/Install.app/Installer # ls -l /Applications/Install.app/Installer -swxr-sr-x 1 root wheel 116252 Mar 3 22:18 /Applications/Installer.app/Installerこれでとりあえず問題なく動くようになった。cp -rp しているんだから permission も preserve されていそうなもんだが、なにか操作をミスしたのかもしれない。