iPod touch 2.0でスクリーンショットをとる方法

無事iPod touchも2.0になりましたね。1.1.4のころからスクリーンショットをキャプチャーするソフトはありましたが、2.0から標準で装備されることになりました(参考文献[1])。
操作も簡単で、スリープボタン(本体上のボタン)をおしながら、ホームボタン(画面の下の丸いボタン)をポチとするだけ。ホームボタンは短くおしましょう。両方のボタンを長押しすると電源を切る画面になっちゃいます。

すると画面が一瞬白くフラッシュして、キャプチャーした画面が「Photos」の「Saved Photos」に入ります。

iPod touch 2.0

図1. 「Photos」の

iPod touch 2.0

図2. 「Saved Photos」に入ります

そして、キャプチャー画像の一覧から所望の画像を選んで、

iPod touch 2.0

図3. キャプチャー画像の一覧からひとつ選んで…

左下の矢印が飛び出すアイコンをクリックすると、

iPod touch 2.0

図4. 左下のアイコンをポチッと押すと…

(1)壁紙にする (2)メールで送る (3)電話帳の写真にするの3通りの操作が選べます。

iPod touch 2.0

図5. 3種類の操作が選べます

iPod touchから取り出す場合は、メールとしておくればいいですね。メールとしておくるのは無線LANの接続と、iPod touchの「Mail」のセットアップが必要です。ここでは詳しくは書きませんが、ごく簡単です。

iPod touch 2.0

図6. こうやってメールで送れます

うーん、なかなか便利。jailbreakしていれるスクリーンショットのソフトだと、スクリーンショットをとったあとに画像を転送するのがsshdを起動しておかなくてはいけなかったりして面倒だったのよね。iPod touch 2.0はMailが標準装備ですからいいね! しかし、便利は便利なんだけど、何枚もキャプチャーしたら、いちまいづつメールで送るのもめんどくせー、デジカメみたいにぜんぶまとめてガッと本体に転送できませんかね? とおもったら、なんと!

iPod-with-iPhoto

図7. iPhotoにiPod touchが!

iPhotoを起動してみると、iPod touchがデバイスのところに現れました。これでデジカメみたいにガッと転送できそう! 便利! でもなんか、キャプチャー画像が空白になってる…一抹の不安がこころをよぎります。大丈夫か? えいっ、「Import All…」!

Unreadable files...

図8. 「Unreadable files」! なんで!

がーん、なんかエラーで取り込めない…便利だと思ったのにー。実ははじめの1回だけ画像の取り込みがうまくいったのですが、その後はずっとこんな感じでできませんでした。うーん…? のちほどiPod touchをリストアしてもう一度試してみます。

2008.7.17追記

家のマシン(iTunesとシンクロしているマシン)につないでみたら、ふつうにiPhotoに読み込むことができました。デバイスのところではあいかわらず空白ですが、画像そのものは無事転送できました。なんだろ?

iPhoto and iPod touch

図9. ふつうに転送できました

参考文献

  1. 「iPhone 3G」のスクリーンショットをキレイに撮る方法, iPhone・iPod touch ラボ, 2008

iPod touch 用ファームウェア2.0がリリース?

本日、iPhone 3Gが発売になりましたが、それと同時に旧iPhone/iPod touch用のファームウェアのバージョン2.0がリリースされるそうです。iPhone用は無料だけど、iPod touch用は有料($9.95)とのこと(参考文献[1])。

いま「iTunes 7.7」にiPod touchをつないで、ファームウェアの「Update」ボタンを押したら、2.0があると表示が出ました。

iPod touch 2.0

図1. iPod touch Firmware 2.0 デタ

この状態で「Update」ボタンをおすとこんなダイアログが出ます。

iPod touch 2.0 on iTunes Store

図2. iPod software 2.0 買いますかー

曰く、「iPod用の新しいソフトウェアバージョン2.0を買うことができます。iTunes Storeで詳しいことをみますか?」みるみる! もちろん! で、「Learn More」をポチ。すると…

could not complete...

図3. ええええ

なんかエラーだ! まだ買えないみたい… ^^; はやくしてー! しかも何度かやってたら

oh no, not you again!

図4. なんで1.1.4にもどるの!

また「1.1.4が最新です」にもどってしまった! オウノーノットユーアゲイン! とミックジャガーも言ってますよ!
というわけで、2.0がちゃんとインストールできるようになるまで、youtubeをお楽しみください。どんなわけだ。

2008.7.11 23:58現在、最新ソフトウェアのバージョンは2.0になったり、1.1.4になったりを繰り返しています。インストールできるようになるまでにはしばらくかかりそうな予感…

2008.7.12 1:36現在、しばらくまえからAppleのiPod Touchのページに「Software Updateを購入」というリンクが表示されているようです。ただし、これもiTunesからUpdateを試みたときととおなじ結果になります。うーん。まだー?

appstore

図5. 「Software Updateを購入」するためのリンクはあるけどちゃんと動作しない!

2008.7.12 8:35現在、iTunes Storeが「temporally unavailable」だというエラーは出なくなりましたが、しかしあいかわらずiTunesストアには接続できません。まだー?

2008.7.12 18:52現在、ようやく買えるようになったみたい。13時半ごろには買えるようになってたみたいですね。

1200yen

図6. iPod touch 2.0 Software Update 1200yen…

1200円ですって。9.95ドルのはずだが…まあそんなもんか。さっそく購入!

downloading

図7. ダウンロード中

おーっ、2.0!

iPod touch 2.0

図8. iPod touch 2.0

なんだかずいぶんかかりましたが、ようやく2.0になりましたー。

参考文献

  1. iPod touch ソフトウェア 2.0 流出、無料でインストール可能?, Engadget日本語版, 2008
  2. Apple – iPod Touch – App Store

ZiPhone 2.5でiPod touch 1.1.4を簡単jailbreak

先日1.1.1にもどらなくなっちゃったので1.1.3のままただの音楽プレーヤー(?)として使っていたiPod touchですが、ファームウェア1.1.4もでて、しかもそのままjailbreakできるソフトがあるとのことなのでさっそく試してみました。脱獄するにはまず、ファームウェアを1.1.1にもどしてー、そのためにはiTunesをふるいのにもどしてー、とか、たいへん面倒くさい! 1.1.4のまま脱獄できるなんて、便利ですね。そのためにはZiPhoneというソフトを使うのですが、なんかiPod touchの個体によってはうまくいかないのもあるそうです。とりあえずうちのは問題ありませんでした。うまくいかない問題はZiPhoneの作者のかたが現在解析中とのこと。

ではまず、iPod touchを1.1.4にしておきます。普通にiTunesでアップデートすればOKです。

そのつぎに、ZiPhone’s blogのページでZiPhone 2.5をダウンロードします。ちょっとわかりにくいですが、広告の下、本文の上あたりに「Download ZiPhone」というリンクがあるのでそれをポチとして、出て来たページでWindows版なりMac版なりをクリックします。なんか足し算みたいな絵になってます。ただし、MacのSafariだとうまくダウンロードできませんでした。tbzという拡張子がわからないみたいで、なかみがブラウザに表示されちゃいます。わたしはしょうがないのでFirefoxをつかってダウンロードしました。LeopardのSafariだと問題なくダウンロードできるという報告もあります。

ダウンロードしたファイルはこんなかんじ。

tbz.jpg

図1. tbzファイル

このアーカイブをダブルクリックすると展開できます。できない場合はSTUFFIT EXPANDERをインストールしましょう。展開できるとこんな感じになります。

ZiPhone.jpg

図2. ZiPhone.app

これをダブルクリックすると、ZiPhoneが立ち上がります。

ZiPhone2.jpg

図3. ZiPhone起動

あとはiPod touchをつないで、「Jailbreak」というボタンを押すだけ。数分でJailbreak完了! スプリングボードにインストーラーがあらわれるのであとはお好きにして下さい!

iPod touch 1.1.4 jailbroken

図4. iPod touch firmware 1.1.4 脱獄完了!

いやはや、かんたんすぎる!

参考文献

  1. ZiPhone’s Blog
  2. 1.1.4 Jailbreakを実現するZiPhone 2.5リリース, ipod plus, 2008

iPod touchを1.1.3にしたら1.1.1にもどれなくなった!

先日の1.1.3 Jailbreakにかいたとおり、install.shのなかをみて手動でrootfsのイメージを作ってみました。で、iPhucでファイルシステムを書こうとしたらかけない。あれっ、とおもったが、まあもう一度1.1.1にもどして、tiffexploitからやればいいかなー。じゃあまあ、そのまえに一度1.1.3にしてみよう。

なんておもったのが、うんのつきだったか、一度1.1.3にしてみたiPod touchをひととおりいじってみて、ふーん、ということで、また1.1.1にもどそうと思い、iTunes立ち上げてiPod touchとMacをケーブルで接続した状態からスリープボタン+ホームボタンながおし。ふつうにiPod touchをリストアモードにしました。で、いつものように(?)opt+レストアボタンクリックで1.1.1のファームウェアを選択してリストア開始。ところが!

I can't restore my iPod touch to firmware 1.1.1 anymore

図1. cannot be restored!

こんな表示が出て1.1.1に戻らない! 1.1.2もだめ! 1.1.3ならOK。どういうことだー。Mac OS X 10.4.11、iTunes 7.6です。こまった…どうしよ? ^^;

iPod touch 1.1.3のjailbreakが可能に!

iPhone/iPod touchの1.1.3がでてしばらくたちますが、参考文献[1]によると、ついにjailbreakが可能になったようです。詳しくはJailbreak-1.1.3.tar.gzをダウンロードしてお試しください。私はいま手順をみているところです。参考文献[2]も参考にするといいかも。

参考文献

  1. Dev Team’s 1.1.3 jailbreak for iPhone / iPod touch now available, engadget, 2008
  2. Leaked 1.1.3 Jailbreak, George’s Blog, 2008

08.1.28追記

install.shをみるとほとんどたいしたことはしてなくて、

  1. 1.1.3ファームウェアの取得、復号、マウント
  2. fstabの変更、Install.appのコピー
  3. 変更した1.1.3ファームウェアを現行のファームウェアに上書きコピー

ぐらいのようです。いつの間にかファームウェアを復号するためのキーが発見されていたんですね。
よく考えればファームウェアが復号できないから苦労していたのであって、キーがわかってればなんてことないような…?
install.shではほかに/binを全部コピーしたりとなんかイマイチな部分もあるので、あとで手順をまとめてみたいとおもいます。

iPod touchアプリケーションインストールガイド 簡単版

自分のiPod touchにアプリケーションをインストールしてしまったので、最近の状況にフォローしていなかったのですが、作業なしの一発超簡単監獄破り法が発表されていたみたいです。普通の方はこちらでインストールするといいでしょう。システムに穴をあける方法を知りたいひとは従来のインストール方法でドウゾ ^^;

このあたらしい方法は本当に簡単です。必要なものは

  • iPod touch (firmware 1.1.1)
  • iPod touchをつなげる無線LANの環境

だけです。iPod touchのファームウェアは第45週製造分から1.1.2になっているそうです。1.1.2のかたはそのままでは監獄破りできませんので、1.1.1にもどす必要があるとおもいます。もどす方法は…またのちほどかきます ^^; ファームウェアのバージョンは「設定」→「一般」→「情報」でみられます。

Version 1.1.1 (3A110a)

写真1. Firmware 1.1.1

firmware 1.1.1のかたは監獄破り法は、iPod touchのSafariで「http://jailbreakme.com/」をみるだけ。すると下のほうに「Install AppSnapp」というのがあるので、タッチします。

Install AppSnapp

写真2. 「Install AppSnapp」をタッチ

あとは画面の指示に従うと、Safariが終了し、アプリケーションのアイコンがならぶ画面にもどります。そこに進行状況が表示されるので、しばらく待ちます。2分ぐらいかな。

jailbreaking

写真3. 進行中

終了すると、「ロック解除」のスライダーがでるので、スライドして解除します。すると!

Installer!

写真4. Installer.app!!

インストーラが追加されるので、あとはアプリケーションを追加し放題です! やった!

ただし、iPod touchはディスク(ではなくてフラッシュですが)がふたつのパーティションにわけられていて、アプリケーションの入るディレクトリが狭いシステム領域(300MB程度)になっています。そのため、すぐディスクがいっぱいになって、アプリケーションをたくさんいれられません。/Applicationを広いほうのパーティションにうつす必要があります。

準備するものは以下のふたつで、Installer.appでインストールしてください。

  • BSD Subsystem
  • Term-vt100

両方ともInstaller.appの「System」の中にあります。BSD Subsystemのほうは6.6MBとちょっと大きいですが、がんばってインストールしておきます。インストールできたら、スプリングボードに表示される「Term-vt100」をタップして起動。iPod touch上でターミナルが開きますので、次のように入力します。ちょっと長い?

# mkdir /private/var/Applications
# cd /Applications
# tar cf - * | (cd /private/var/Applications ; tar xf -)
# cd /
# rm -rf /Applications
# ln -s /private/var/Applications .

これでほんとうにアプリケーション入れ放題になりました。おたのしみあれ。

参考文献

  1. “Instant Jailbreak for iPhone and iPod touch”, tuaw.com, 2007
  2. iPod touchアプリケーションインストールガイド 手動版, がんちゃんのブログ, 2007

iPod touchアプリケーションインストールガイド


2007.11.15追記:
現在はもっと簡単なインストールの方法が発表されています。技術的興味のあるかた以外はiPod touchアプリケーションインストールガイド簡単版を読まれることをお勧めします。


ついにiPod touchの監獄破りも成功しiPod touch dev wikiガイド記事が出たようなので、わたしも試してみました。メモを残しておきます。環境はMac OS X 10.4.10です。Windowsのかたはこちらを使うとよいでしょう。Windows版に関しては、筆者は試しておりません。

jailbroken

写真1. アプリケーションインストール後。NESエミュも入ってる!

まずはじめにNiacinさんとDreさんが発見したTIFFのぜい弱性を使って、iPod touchのルートディレクトリにリードライトアクセス権を確保します。方法は簡単で、iPod touchのSafariを使って、http://jailbreak.toc2rta.comにアクセスするだけです。うまくいくとSafariが消えて、アプリケーションがならんでいるはじめの画面(スプリングボード)にもどります。

偉大なるNiacinさんとDreさん、あなたたちの貢献がなければ以下の手順はまったく無意味でした! ちなみにNiacinさんは更なる開発のための費用を募っておられます。ご寄付はNiacinさんのブログからどうぞ。Paypalですから、クレジットカードも使えます。わたしも微力ながら協力させて頂きました。微力=10ドル。ちょっとケチくさかったですか ^^;;

この段階で、MacとiPod touchをUSBケーブルでつなぐといいでしょう。つなぐとiTunesが立ち上がって、次のようなダイアログが出ますが、このダイアログはキャンセルを押しておくといいでしょう。

ipodtouch-setup.jpg

図1. このダイアログが出たらキャンセルを押す

iTunesでiPod touchをみると、なんとわずか300MBしか認識していません。この段階では、この状態が正常です。あとでなおります。

ipodtouch-hacked.jpg

図2. 容量300MB

iPHUCとその仲間たちをダウンロードします。ちょっとわかりにくいですが、上記リンクへ行き、一番下にある表の「Free」を押し、次の画面で表示される数字とアルファベットを入力して「Download from xxx」というボタンを押せばオッケーです。デスクトップにでもダウンロードするといいでしょう。ダウンロードしたファイルはzipなので、おなじくデスクトップで解凍しておきます。すると「Desktop – Jailbreak」というフォルダができるはずです。フォルダの中にはiphucとfstabというファイルと、iphonefsというフォルダがあるはずです。なお、このiPHUCはIntel Mac用なのでMacがPowerPCのひとはPowerPC用iPHUCをダウンロードしてください。zipファイルを解凍するとPowerPC用のiPHUCが現れるので、先ほどの「Desktop – Jailbreak」の中の「iphuc」と置き換えておきます。

次に「アプリケーション→ユーティリティ」にある「ターミナル」を起動します。MacPortsをご利用になっていて、すでにreadlineライブラリがあるひと以外は、このファイルをダウンロードして、zipファイルを解凍します。そしてターミナルで次のように入力。

$ sudo cp ~/Desktop/opt/local/lib/libreadline.5.2.dylib /opt/local/lib/

ちなみに筆者のマシンにはreadlineが入っていたのでこのプロセスは試していません。できたら、ターミナルでiphucを起動します。インテルマシンのひとは小文字で「iphuc」、PPCのひとは「iPHUC」ですので要注意。

$ cd "~/Desktop/Desktop - Jailbreak"
$ ./iPHUC
CFRunLoop: Waiting for iPhone.
notification: iPhone attached.
AMDeviceStartService 'com.apple.afc': 0
(iPHUC) /:

iPod touchの中味を取り出します。iPHUCのぷろんぷとに続いて次のように入力。

(iPHUC) /: getfile /dev/rdisk0s1 iphonefs/rdisk0s1 314572800
File size: 314572800
Reading 33554432 bytes, 281018368 bytes remain
Reading 33554432 bytes, 247463936 bytes remain
Reading 33554432 bytes, 213909504 bytes remain
Reading 33554432 bytes, 180355072 bytes remain
Reading 33554432 bytes, 146800640 bytes remain
Reading 33554432 bytes, 113246208 bytes remain
Reading 33554432 bytes, 79691776 bytes remain
Reading 33554432 bytes, 46137344 bytes remain
Reading 33554432 bytes, 12582912 bytes remain
Reading 12582912 bytes, 0 bytes remain

所要時間は約2分でした。これが終わるとiPHUCのあるフォルダの下のiphonefsフォルダの下に、rdisk0s1という300MBのファイルができます。このファイルに「.dmg」という拡張子をつけます。「本当に変更していいの?」とかきいてくるので、本当に変更します。

iphonefs.jpg
iphonefs2.jpg

図3. rdisk0s1ファイルの変更前と変更後

変更したら、rdisk0s1.dmgをダブルクリックしてマウントします。「Snowbird3A109a.UserBundle」という名前のドライブがマウントされます。

bundle.jpg

図4. Snowbird3A109a.UserBundle

この「Snowbird3A109a.UserBundle」のなかの「etc」フォルダの下にある「fstab」ファイルをiPHUCといっしょにはいっていた「fstab」ファイルで置き換えます。ファインダーで操作してもいいし、ターミナルで次のように入力してもどちらでもOKです。

$ cp ~/Desktop/Desktop - Jailbreak/fstab /Volumes/Snowbird3A110a.N45Bundle/etc/

また、このファイルのdiffをとってみると次のような感じ。

$ diff -u /Volumes/Snowbird3A110a.N45Bundle/etc/fstab /Users/iwa/Desktop/Desktop - Jailbreak/fstab
--- /Volumes/Snowbird3A110a.N45Bundle/etc/fstab 2007-09-19 15:42:13.000000000 +0900
+++ /Users/iwa/Desktop/Desktop - Jailbreak/fstab        2007-10-09 02:29:54.000000000 +0900
@@ -1,2 +1,2 @@
-/dev/disk0s1 / hfs ro 0 1
-/dev/disk0s2 /private/var hfs rw,noexec 0 2
+/dev/disk0s1 / hfs rw 0 1
+/dev/disk0s2 /private/var hfs rw 0 2

ですから、わかるひとは「/Volumes/Snowbird3A110a.N45Bundle/etc/fstab」をこのように修正してもよいです。コピーなり修正なりが終わったら、ドライブ「Snowbird3A110a.N45Bundle」は取り出してあんまうんとしておきます。アンマウントできたら、iPHUCでiPod touchにかきもどしましょう。

(iPHUC) /: putfile iphonefs/rdisk0s1.dmg /dev/rdisk0s1
Writing 33554432 bytes, 281018368 bytes remain
Writing 33554432 bytes, 247463936 bytes remain
Writing 33554432 bytes, 213909504 bytes remain
Writing 33554432 bytes, 180355072 bytes remain
Writing 33554432 bytes, 146800640 bytes remain
Writing 33554432 bytes, 113246208 bytes remain
Writing 33554432 bytes, 79691776 bytes remain
Writing 33554432 bytes, 46137344 bytes remain
Writing 33554432 bytes, 12582912 bytes remain
Writing 12582912 bytes, 0 bytes remain

これも2分ぐらいかかります。この作業が終わったらiPHUCは使わないのでexitと打ち、終了させてよろしい。これができたらiPod touchを「ハードリセット」します。方法は「スリープボタン」と「ホームボタン」を同時に押し、しばらく押したままにします。すると電源を切るための赤いスライダーが出ますが、これは無視して、さらに押し続けると電源が完全に切れます。電源が切れたら、スリープボタンを長く押して電源をふたたびいれます。

次に、iPod touchにログインして操作するためにsshをインストールします。sshをインストールにはまず、iNdependenceというソフトをGoogle codeからダウンロードし、dmgファイルをダブルクリックしてマウントます。そして中に入っている「iNdependence.app」をダブルクリックして起動。起動したらウインドウがひらくので「Install SSH/SFTP/SCP」というボタンを押し、あとは画面の指示に従ってください。ここで、2、3度iPod touchのリセットが要求されますが、ハードリセットをしては「だめです」。画面の指示では単に「スリープとホームを押してリセットせよ」とでますが、ここではハードリセットではなく、電源を切るための赤いスライダーを操作して電源を切ってください。電源を切ったらスリープボタンを長くおして電源を再投入します。ハードリセットをするとSSHが正しく動作しないそうなので要注意です。

iNdependence.jpg

図5. iNdependence.app

SSHがインストールできたら、ターミナルからsshでiPod touchにログインしてみよう。次のように入力します。iPod touchのIPアドレスは、「設定」→「Wi-Fi」に出ている接続しているアクセスポイントの一番右にある「右矢印」をタップすると見られます。接続にあたって、(yes/no)?ときかれたらyesとこたえます。またiPod touchのルートのパスワードをきかれますが、パスワードは「alpine」です。

$ ssh -l root ipod.touch.の.IP.アドレス
The authenticity of host 'xxx.xxx.xxx.xx (xxx.xxx.xxx.xx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:...:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xx' (RSA) to the list of known hosts.
root@xxx.xxx.xxx.xx's password: alpine(実際には見えません)
-sh-3.2#

ぶじつながりました! sshはまたあとで使うのでそのままにしておけばいいでしょう。

sshのコネクションはそのままにしておいて、つぎは、iTunesにちゃんと接続できるようにiPod touchをなおします。簡単なのでsshでもできそうなんだけど、mvもlsもなくってできない! のでsftpでやります。sftpが使用可能なftpクライアントでiPod touchに接続します。CyberDuckというのがおすすめらしいですが、わたしは使ったことがありません。面倒なのでターミナルからsftpを使いました。以下のようにします。sftpのパスワードも「alpine」です。具体的には、/private/var/rootの下あるMediaというシンボリックリンクをMedia_symという名前に、またMediaoldというディレクトリをMediaという名前に変更します。

$ sftp root@ipod.touch.no.ip.address
Connecting to xxx.xxx.xxx.xx...
root@xxx.xxx.xxx.xx's password:
sftp> pwd
Remote working directory: /private/var/root
sftp> ls -l
drwxrwxrwx   16 root     wheel         578 Oct  1 15:27 Library
lrwxr-xr-x    1 root     wheel           1 Oct 15 22:22 Media
drwxr-xr-x    7 root     wheel         272 Oct 13 10:45 Mediaold   
sftp> rename Media Media_sym
sftp> rename Mediaold Media
sftp> exit

これでiTunesを開いてみると、元通りの容量になって正常に動作するはずです。

ipodtouch-normal.jpg

図6. 元通りの容量に!

それではいよいよ、Install.appをインストールして、おすきなアプリケーションのインストールの準備です。こちらからInstaller.appをダウンロードします。zipファイルを解凍してできた「Installer.app」をiPod touchの「/Applications」ディレクトリにsftpでコピーします。ftpソフトを使っているひとは普通にコピーして下さい。sftpコマンドを使っているひとはディレクトリを再帰的にputできないので次のようにします。

sftp> mkdir /Applications/Installer.app
sftp> lcd ~/Desktop/Installer.app
sftp> cd /Applications/Installer.app
sftp> mput * .
Uploading Default.png to /Applications/Installer.app/./Default.png
Default.png                                   100%   14KB  13.7KB/s   00:00    
Uploading Info.plist to /Applications/Installer.app/./Info.plist
Info.plist                                    100%  728     0.7KB/s   00:00    
Uploading Installer to /Applications/Installer.app/./Installer
Installer                                     100%  103KB 102.8KB/s   00:01    
skipping non-regular file InstallerPlugin.webplugin
Uploading ditto to /Applications/Installer.app/./ditto
ditto                                         100%   23KB  22.8KB/s   00:00    
Uploading icon.png to /Applications/Installer.app/./icon.png
icon.png                                      100% 4756     4.6KB/s   00:00    
Uploading newpackage.png to /Applications/Installer.app/./newpackage.png
newpackage.png                                100% 2584     2.5KB/s   00:00    
Uploading package.png to /Applications/Installer.app/./package.png
package.png                                   100% 2310     2.3KB/s   00:00    
Uploading source.png to /Applications/Installer.app/./source.png
source.png                                    100% 2414     2.4KB/s   00:00    
Uploading trusted.png to /Applications/Installer.app/./trusted.png
trusted.png                                   100% 2593     2.5KB/s   00:00    
Uploading updates.aiff to /Applications/Installer.app/./updates.aiff
updates.aiff                                  100%  166KB 165.6KB/s   00:01    
sftp> mkdir InstallerPlugin.webplugin
sftp> cd InstallerPlugin.webplugin
sftp> lcd InstallerPlugin.webplugin
sftp> mput * .
Uploading Info.plist to /Applications/Installer.app/InstallerPlugin.webplugin/./Info.plist
Info.plist                                    100% 1223     1.2KB/s   00:00    
Uploading InstallerPlugin to /Applications/Installer.app/InstallerPlugin.webplugin/./InstallerPlugin
InstallerPlugin                               100%   19KB  19.0KB/s   00:00    

さらにsshでiPod touchの/Applicationsディレクトリ以下のパーミッションを修正します。

-sh-3.2# chmod -Rf +x /Applications/

iPod touchの画面ロックをスライドして解除した状態で、sshからInstaller.appを起動してみます。

 
-sh-3.2# /Applications/Installer.app/Installer
>>> Copying /Applications/Installer.app/InstallerPlugin.webplugin 
copying file ./Info.plist ... 1223 bytes
copying file ./InstallerPlugin ... 19444 bytes
2007-10-15 23:37:40.296 Installer[56:d03] Updated plugin successfully installed.
2007-10-15 23:37:40.321 Installer[56:d03] No sources found, adding default source.
2007-10-15 23:37:40.586 Installer[56:d03] No lastRefreshDate found, performing initial refresh...
2007-10-15 23:37:44.907 Installer[56:d03] Sources successfully refreshed.

iPod touch側で、Installer.appが起動したのを確認したら、sshで Control-c を押してInstaller.appを終了しておきます。

このままだと、アプリケーションをインストールしてもssh経由で起動しなくては行けないハメになるので、スプリングボードの改造をインストールします。iPod touchのサファリでhttp://conceitedsoftware.com/iphone/beta/を開きます。するとインストーラに追加してよいか?というようなことをきいてくるので「Yes」をタップ。sshで/Applications/Installer.app/Installerを起動して、iPod touch側の画面右下にある「refresh」をタップします。すると先ほど追加したインストール元が反映されます。「System」カテゴリのところに「Trip1PogoStick」というのがあるはずなのでこれをインストールします。すると、スプリングボードに「Install」が追加されます!

作業は以上です。あとはスプリングボードから起動した「Install」アプリケーションでいろんなソフトをインストールしてみよう! 「Sources」の「Community Sources」をインストールすると、多くのインストール元が追加されて、インストールできるアプリケーションの数がとてもたくさんになりますよー。

参考文献

  1. iPod touchの監獄破り成功, がんちゃんのぶろぐ, 2007
  2. 監獄破りガイド, iPod touch dev wiki, 2007
  3. Life with Toc2rta

追記

まんがいち失敗してiPod touchがおかしくなった場合、つぎの手順でリストアが可能なようです。

  1. iPod touchの電源を入れてUSBケーブルをつなぐ。

  2. 「スリープボタン」と「ホームボタン」を押し続け、電源を切る(ハードリセット)。
  3. 電源が切れたらすぐさまスリープボタンを離す。ホームボタンは押したまま。
  4. 画面に水平線がたくさん出れば成功。iTunesを起動するとリストアが可能。

なお上記リストア手順に関しては筆者は未検証です。

iPod touchのハッキングに成功の模様

10月8日の記事「iPod touchにネイティブアプリケーションをインストールするための「監獄破り」の現状」に追記のかたちですこしだけお伝えしましたが、Niacinさんという方がTIFFを表示するためのルーチンのぜい弱性を利用して、iPod touch 1.1.1とiPhoneの1.1.1でルートディレクトリのリード/ライト権限を得ることに成功したと主張しています。またその動作を、engadgetが確認した模様。

1629:33:...

あまり詳しい原理は書かれていませんが、(私の想像もくわえて)まとめると、

  1. iPod touch/iPhoneはmobile safariを含む全てのプログラムがroot権限でうごいている。
  2. iPhone 1.02以前は違う方法でファイルシステムへのアクセスが確立しており、調査が可能だった。
  3. 1年半まえにPSPをハックするのに使われたのと同じlibTIFFのバッファーオーバーフローのぜい弱性が、iPod touch/iPhone 1.1.1にも含まれていた。
  4. 上記のぜい弱性を利用すると、コードを埋め込んだTIFF画像のようなものをmobile safariに表示させることで、そのコードを実行させることができる。
  5. (どういうコードを実行させるのかはわからないけどそのコードを実行させることで)iPHUC経由でファイルシステムへのリードライト権限が得られる。

というような感じのようです。engadgetの記事では、いったんファイルシステムへのリードライト権限が得られたあと、何らかの不明な原因でその権限が失われたらしいので、不安定なのかもしれません。

今晩中(現地時間の今朝遅く)には、libTIFFのぜい弱性をつくためのTIFF画像(みたいなもの)が公開される予定とのこと。たのしみー。それまでまてないみなさんは、iPod touch dev wikiのTIFF Exploitのページに書いてある、libTIFFの穴をつついてmobile safariをクラッシュさせるTIFF画像(のようなもの)をiPod touchでみてみるといいでしょう。Mac OS Xのfirefoxやsafariではなにもおきませんが、mobile safariでみると、mobile safariが落ちてしまいます。

しかしなんだろうね、いまどきlibTIFFのぜい弱性って言うのは…わざと残してあった? なわけないか ^^;;

参考文献

  1. Confirmed: Our exploit grants iTouch / iPhone 1.1.1 read/write access to root partition, toc2rta, 2007
  2. iPhone and iPod touch v1.1.1 full jailbreak tested, confirmed!, engadget, 2007
  3. iPod touch dev wiki

関連記事

iPod touchにネイティブアプリケーションをインストールするための「監獄破り」の現状

前回の「iPod touchにアプリケーションをインストールする方法(はまだ)」から10日ほどたちました。iPod touchハックの現状をまとめておきます。

118 hours 14 minutes 39 seconds

結果から言うと、現在でもiPod touchにアプリケーションをインストールすることは「できません」。ファームウェアにかけられている暗号の鍵が見つからないようです。ただ、最近TIFFを表示する機能にバッファオーバーフローのぜい弱性があるのが発見されたようです(参考文献[1])。これは1年半ほどまえにPSPをハッキングする際に使われたのとおなじような穴で、ある種の改造をくわえたTIFFを表示させることで任意のコードが実行可能になるというものです。現在はこちらの線でiPod touchの「監獄破り」が試みられている最中のようです。

その間、iPhoneではハック済みの1.02にあらかじめ細工を施しておくことで、1.1.1にアップデートしたあともファイルシステムの読み書きができるようにする方法が発見されています(参考文献[2])。でもこれはiPod touchではつかえないですね…

そもそもどうしてAppleはこんなに魅力的な製品を出しておきながら、SDKも出さないのか? 次期バージョンでCPUが現在のARMからIntelに変更されるからだとか、iPhone/iPod touch用のOS XはLeopardベースだから、LeopardがリリースされるまではSDKも出せないのだとか、いろいろなうわさがあるようです。はやいところSDKも公開されて、ちゃんとインストールできるようになって欲しいですね。

なんのかんのいっても、無力な筆者はとりあえずただハッカーさんたちの健闘を祈るばかりです ^^;

2007.10.9追記:

昨晩、Niacinさんという方がついにTIFF Exploitをつかってrootパーティションのリードアクセスに成功したようです(TUAWの記事Niacinさんのブログ)。現在rootパーティションをrwでマウントし直そうとしているところだそうです。詳しいことがわかり次第、お伝えしたいと思います。

参考文献

  1. TIFF Exploit, iPod touch dev wiki, 2007
  2. Liveblogging the big iPhone 1.1.1 hack, TUAW, 2007
  3. maclalala

関連記事

iPod touchがオカしい4つのポイント

よほどあわててリリースしたのか、iPod touchはちょっとおかしいところが多いのでリストアップしてみた! Firmware 1.1.1になってもなおってない4つのへんなところです。

第1話: 語尾を濁すiPod touch…なにか後ろめたいことがあるのか!

まずひとつめ。例の「iPhone is disabled」の表示はなおってちゃんと「iPod is disabled」になりました。

iPod is disabled

写真1. “iPod is disabled” 英語版

しかしこの画面、日本語表記だと「5分してからもう一度試してく…」になってます。これたてにしてもよこにしても続きはみられません。ちょっとおかしいよねー。続きが気になってしょうがない。「試してく…れなくてもいいです」「試してく…れなくっちゃいやん」「試してく…さいこりゃまたくさい」いったいなんなんだー。

iPod is disabled

写真2. “iPodは使用できません” 日本語版

ちなみにギリシャ語(?)でも「…」になってるみたい。あとの言語ではだいたい最後まで表示されてるっぽい。

iPod is disabled.

写真3. “もう一度試してく…” ギリシャ語版

第2話: 「世界時計」に隠された暗号の謎

というわけで2つめ。「世界時計」で「地名を検索し世界時計に追加します。」という機能があるんですが、ところどころ地名の翻訳がおかしい。おかしいというか、翻訳されてないし…

Armenia?

写真4. Armenia? アルメニア?

わたしが調べた限りでは下記のものが未翻訳でした。

  • バクー、Azerbaijan
  • エレバン、Armenia
  • ブリッジタウン、Barbados
  • Fremomt、米国
  • ベオグラード、Serbia and Montenegro
  • ブラチスラバ、Slovakia
  • アシガバード、Turkmenistan

このほかに「アブダビ、UAE」と「UTC」もありましたがこれはそのままでオッケーでしょう。しかしこれ、なんで翻訳されてないんでしょうね。旧ソ連と東側諸国、アメリカのカリフォルニアの町、大西洋の島国。なんかの暗号? なわけないか….

あとさ、おかしいのは「米国」と「英国」だけカタカナじゃないこと。「設定」→「一般」→「言語環境」→「地域に応じた書式」では「アメリカ合衆国」「イギリス」になってるのにここだけ「米国」「英国」なのはおかしい。どっちかにあわせなくちゃーだめでしょー。

第3話: ならないアラームの怪

というわけで、さらにいきます。次の写真のように同じ時刻に複数のアラームをセットします。

Alarm

写真5. 複数のアラームをセット

そうするとだ、一番上のアラーム(ここではアラーム1と命名)がまず鳴るが、すぐにやんで一番下のアラーム(同アラーム4)がなります。同時にアラーム4をとめるダイアログが出るのでそれを押してとめると、
次にその上のアラーム3が鳴ります。それもとめると次にアラーム2が鳴る。さらにとめると、アラーム1を
とめるダイアログが出るのですが、そのときには既にアラームが鳴っていない! 我ながら細かい!

第4話: 重力から解き放たれたダイアログ

そして、最後にちょっとかわいいやつをひとつ。かわいいのでもってるひとは試してみてー。iPod touchを操作中にはおおむねどの画面でも本体下側にある「ホーム」ボタンをダブルクリックすると、音楽のコントロール用のダイアログが出ます。次の写真みたいなの。

upside is up

写真6. 正常位

そのままよこにします。写真は横になります。ダイアログもいっしょに横になります。おーっ。すごい。

horizontal holding

写真7. 横臥位

さらに回転して逆のたて向きにする。そうすると写真はちゃんと回転してひょうじされる。おーっ。でもなにこれ、ダイアログは…

upside is down

写真8. …アララ?

ダイアログだけ逆向き!! なんなのー。写真だといまいちかわいさがわかりにくいので、動画をみてみるといいでしょう。

動画9. iPod touch回転

まあ、どれもFirmware 1.1.2では修正されそうだね…そのまえにサードパーティアプリをインストールできるといいなあ…