2008年08月13日

ブログがiPhone対応になりました

暑い日が続き、体がかなりバテ気味。これまでの仕事の大きな幾多の山が終わってほっとしたせいか、一気に疲れが出てきた。メインマシンの方もかなり暑さのためか不調で、恐らくは電源ユニット周りがやばい、という感じでもう大変・・・。それはともかく、不規則極まりない生活を続けていたせいだろうが、今週は稼働率70%ぐらいで生活リズムを整えていこうと思う。ちょっと自分の時間ができたので、とりあえずブログのiPhone対応が完了した。

と言っても、iPhone用にサイト全体を最適化する気力も時間もさすがにない(笑)。利用したのは、crema designの「iPhoneテンプレートfor MT」だ。このテンプレートは、MITライセンスで無償公開されており、Google Codeで公開されている「iui(User Interface (UI) Library for Safari development on iPhone)」というオープンソースのライブラリを利用しているのが特徴だ。このライブラリはiPhone/iPod touch用のWebアプリケーションのインターフェース用のライブラリである。

iPhoneテンプレートfor MTの導入は実に簡単だ。10分もあれば終わってしまう。方法はread.meに詳しいので割愛するが、Movable Typeユーザなら知っているであろう、あの、地獄のようなスタイルシートのカスタマイズだのインデックステンプレートの作成だのを、一切やらなくていい!というのがポイントだ。サイトを再構築すれば、あっというまにiPhone用ページの出来上がり。これはすばらしい。ページデザインはちょっと味気ないが、RSSリーダ的に見せるのならこれで十分だ。

というわけで、iPhone、iPod touch用ページはできたのだが、ここにiPhoneユーザをどうやって誘導するか、が問題だ。ブラウザのUser-Agentの文字列で判定し、強制的に飛ばしてもいいのだが、それだとiPhoneからオリジナルサイトにアクセスする手段を絶たれる。そこで考えたのが、JavaScriptでダイアログを表示し、アクセス時にどちらかを選べるようにする、という方法だ。内容はこんな感じ。

<script type="text/javascript">
<!--
if (navigator.userAgent.indexOf('iPhone') != -1) {
  if(confirm('iPhone向けのページを表示しますか?')){
   location.href = "http://www.aerovision.jp/mercurius/i/"; }
}
//-->
</script>

これで、userAgentの文字列に「iPod」や「Windows CE」などを加えておけば、iPhoneやtouch、WM端末からアクセスした時だけダイアログが表示され、「OK」をクリックすればモバイル向けのサイトに飛ぶ。ちなみに、iPhone用ページのURLは「http://www.aerovision.jp/mercurius/i/」だ。ついでに、過去アーカイブ用のブログも「http://www.aerovision.jp/mercurius-old/i/」という形でiPhone対応にした。あとは・・と、さすがにブログ以外のメインページの方は、BiND2の対応に期待したいところだが・・・。

  

投稿者 ikeda : 02:16 | コメント (0) | トラックバック

2008年03月25日

iPod touch 1.1.4 Jailbreak

3月売の進行が終わったら、4月に向けた単行本、雑誌、ムック、そしてオンライン媒体の進行が佳境に入り、もー仕事が終わったら仕事だぜ、という感じの毎日で全然休みが取れません。などと贅沢な事を言う暇もなく、多重進行の中、来月発刊のiPodムックのJailbreak関連の検証なども進めております、とそれはさておき、最近のアクセスランキングトップの記事が「iPod touch 1.1.3 Jailbreak」で、かな〜りのアクセス数に驚いています。この記事は既にして古く、今はもっとエレガントにJailbreakできますので、関係者(?)向けの覚え書きとして、エントリに残しておきます。まぁわかる人以外は「何のこっちゃ」でしょうが、そこは来月売のムックをお楽しみに・・ということで。

■Jailbreak方法
1. iPod touchのファームウェアバージョンを1.1.4にアップデートしておく
2. ZiPhone2.6bを入手する(http://www.ziphone.org/)
3. iPod touchを接続して「ZiPhone GUI」を起動。「iPod touch」をクリック。
  Mac版では「Jailbreak iTouch」ボタンをクリック。
4. Jailbreakが自動的に行われる
  もし、途中で「Spamming AT..」という表示で止まってしまったら
 「Advanced Feature」をクリックして「Fix NVRAM」をクリックして「3」を再度実行。
 Mac版では「File」メニューの「Clear NVRAM」を選んで再度実行。
5. Jailbreak完了!以上でPC、Macを使った作業は終了。

■Jailbreak後にまずやること
6. 最初にiPod touchでワイヤレス接続を行っておく。
  この操作を忘れるとInstallerのアップデートに失敗し、以降の
  ソフトのインストールができなくなる。
7. Installerを起動、Installer Update画面で「Update Now」をタッチ
8. 再度Installerを起動。Systemカテゴリの「BSD Subsystem」をインストール。
9. Sourceカテゴリの「Community Source」をインストール。

これらが終わったら、Jailbreakの定番ソフトをインストールしていくわけですが、「OpenSSH」だけは十分注意してください。というのも、今配布しているBSD Subsystemでは、Passwdコマンドでパスワードを変更すると、touchのメニュー(Spring Board)がクラッシュして使い物にならなくなります。つまりは、初期パスワード「alpine」のままSSHサーバをオープンさせるという、危険極まりない状況で使うしかないのです。

誰でもrootで侵入できるiPodに変身しているわけですから、個人情報などを入れて持ち歩くのはもってのほかです。特にメールデータは危ないですね。「AFPd」なども入れてると、もう最悪かもしれません。家の外でワイヤレスする場合、OpenSSHをアンインストールして出かけましょう(爆)。まぁ、cryptコマンドでパスワードを生成し、iPod touchに強引にパスワードファイルを入れてしまうという荒技もあるんですけど、結構面倒なのでお薦めはしません・・・というよりも、なんでpasswdコマンドがアホになってるせいで苦労せなあかんねん?という感じですな。

★追記
 Ziphone 3.0がリリース中です。
 基本は一緒ですが、BSD SubsystemとOpneSSH、Installerの最新バージョンが
 自動的にインストールされるように仕様が変わっています。
 また、Fix NVRAMは自動で行われるようになった模様です。

投稿者 ikeda : 00:58 | コメント (9) | トラックバック

2008年01月30日

iPod touch 1.1.3 Jailbreak

3月発刊の大きな仕事が進行中です。書き起こし、転載含めて来月、再来月と600P仕上げないといけません。昨年秋の超特急早出しLeopardムックのおよそ4倍という大修羅場な感じでありますが、色々と仕事のオファーを頂いた皆様。ホントに申し訳ありません。こんな最中ですが、とりあえずやらざるを得ない1.1.3 Jailbreakの方法について、自分用のメモエントリを入れておきます。DEVチームの1人がSDK公開前にフライング公開して内紛になり、いろいろなツールが出てかなり情報が混乱していましたが、事態は収束したようです。題して、iPod touch 1.1.3をMac OS XでJailbreakする方法です。

※この方法は古い情報です。
 現在のiPod touch 1.1.4を簡単にJailbreakする方法は
 このエントリに入れました。

1. JailBreak済みのファームウェア1.1.2のiPod touchを用意します。
 もし、純正1.1.3に正規の方法でアップデートしてしまった場合は、
 次の方法でダウングレードします。

[ダウングレード&1.1.2 Jailbreak版の作り方]

・iTunes 7.5のまま放置しているマシンを探します。
 なかったら、Leopardを外付けハードディスクにインストールして
 7.5の状態でアップグレードしないように放置します。7.6ではダメです。
 なお、iTunes 7.5 for Mac OS Xはここからダウンロードできます。

・iPod touch 1.1.1および1.1.2のファームウェアを入手します。
 iPod1,1_1.1.1_3A110a_Restore.ipsw
 iPod1,1_1.1.2_3B48b_Restore.ipsw

・iPod touchを接続し、iTunesを起動しておきます。
 パワーボタン/センターボタンを同時に押します。iTunesからiPodのアイコンが消えたら
 パワーボタンだけ手を放します。センターボタンはまだ手を放しません。
 「リカバリモードのiPodを見つけた」というダイアログが表示されたらセンターボタンの
 手を放します。あとは、Optionキーを押しながら「復元」をクリックし、
 1.1.1のファームウェアを指定して復元します。これでさらのiPod touchに戻りました。

・Pod touchで「http://www.jailbreakme.com/」にアクセスし、
 画面一番下の「Install AppSnapp」を選んでJailBreakを実行します。
 なお、設定で「自動ロック」をオフにしておかないと
 これ以降の作業が失敗することがあります。

・「Installer」がインストールされます。
  これをiPod touch上で起動して「Tweak」の「OkToPrep」をインストール。
  また「System」カテゴリの「BSD Subsystem」もインストールしておきます。

・iPod touchをMacに接続し、ファームウェアをiTunesで
  普通に1.1.2に「アップグレード」します(Optionキーを押しながら「アップグレード」
  を選び、iPod1,1_1.1.2_3B48b_Restore.ipswを選んでアップグレード)。

・Macから「http://conceitedsoftware.com/iphone/site/112jb.html」
 にアクセスして、「1.1.2-jailbreak.zip」をダウンロード。
 jailbreak.jarを実行します。この時、「Install SSH」のチェックは外した
 ままにしておきます。入れてしまうと後でアンインストールするのが面倒です。 
 iPod touchのメイン画面に再び「Installer」が現れます。これで
 iPod touch 1.1.2 Jailbreak版の完成です。

2. Installerから「System」カテゴリの「BSD Subsystem」をインストール
 しておきます。ついでに「Source」の「Community Source」も入れておきます。
 この時、最新のInstallerのアップデートを促すダイアログが出るので、
 画面指示に従ってアップデートしておきましょう。

3. Installerの画面下にある「Sources」をタップし、「Edit」をタップしてから
 「Add」をタップし、以下のリポジトリを追加します。
 「http://ipodtouchmaster.com/files/repo.xml」

4. 画面下の「Install」を選んでカテゴリから「1.1.3 Jailbreak+Apps」
 を選び、インストールします。終了まで数十分とかなり長時間かかります。
 作業終了後、iPod touchが再起動され、作業完了です。

5. Systemカテゴリにある「OpenSSH」をインストールします。
 Macのターミナルから「ssh -l root 」と
 入力し、Passwordは「alpine」と入力します。
 IPアドレスは、「設定」→「一般」→「ネットワーク」→
 「Wi-FI」を選び、接続中のリストの右側の矢印ボタンをタップして確認します。

6. SSHで接続したら、「passwd」と入力してReturnキー。
 その後に任意のパスワードを入れます。続いて
 「passwd mobile」と入力してリターン。任意のパスワードを入れます。

7. これで作業完了・・ですが、SSHサーバ稼働のまま外で使うのは危ないので
 必要がなかったら、OpenSSHをアンインストールしておくことをオススメします。

 なお、1.1.3ではシステム仕様が変わったため、動作しないソフトが結構
 あります。大変に痛かったのが、画面スナップショットを撮るための
 「ScreenShot」の最新版「1.3.0」が1.1.3対応を謳っていながら全然、
 動作しなかったことです。
 「Erica's Utility」をインストールして、SSHで接続し、「/tmp」
 ディレクトリで「snap」を実行する、という面倒な事をしないといけません・・・。

※1月30日、onceited Softwareから、新たに
 「Official 1.1.3 Upgrader」がリリースされました。
 Installerからインストールすることができます。
 基本的な手順はほぼ同じようです・・。

投稿者 ikeda : 00:16 | コメント (0) | トラックバック

2007年12月30日

iPod touchにアプリ入れまくり・・

 ようやく仕事が完全に収束し、さすがにこの数ヶ月全力疾走した疲れがどっと噴き出してきました。のんびり温泉でも、いやいや、レンタルビデオで一日中映画三昧しようか、などと思ってみたりするのですが、なぜか、今年やり残したことをやらねば・・と、懸案のiPod touchの研究課題に取り組むことにいたしました(笑)。いやぁ、久々のテクニカル(?)ネタですが、現在発売中のMac Fan 2月号の巻頭特集でも木下誠さんが詳細に解説をされていますが、本エントリではiPhone用アプリのインストールも補足しておさらいしていきます。

 iPod touchはご周知の通り、Windows Mobile端末のようにソフトを自由にインストールすることができません。これはiPhoneと同じくアップルの方針です(2月にはSDKが提供される予定で、雰囲気はかなり変わってきましたが)。システム領域はロックされており、改変できない仕様になっているのです。しかし、iPhoneで盛り上がる海外では研究が着々と進められ、ついにWebブラウザ「Safari」の脆弱性を突いて、iPhoneのシステム領域への侵入に成功したハッカーが現れました。

 iPhoneとiPod touchの仕様は基本的に同じです。この手法を使えば、iPhone用に開発されたアプリがiPod touchでも同様に動かせるわけです。これは俗に「JailBreak(監獄破り)」と呼ばれているわけですが、ブレークした後が大変でSSHで転送したりパーミッション変えたり面倒で面倒で、と思っていたら、それは大いなる誤解でした。この数ヶ月で状況はすっかり様変わりしていたのです。JailBreakするまではちょっと手間ですが、成功してしまえば、インストーラでほいほいと好きなアプリをインストールできるんです・・・。
 

具体的な方法はWebで情報をあさるとどっさり出てくるのですが、今はもう、ターミナルを使う必要もないし、どこからかiPhone用のファームウェアを持ってきてアプリを抽出してSFTPで転送、なんて面倒なことも必要ありません。ただし、JailBreakを実行するには、iPod touchのファームウェアバージョン1.1.1に戻して作業を進める必要があります。現行の1.1.2では脆弱性は封じられましたが、これも既にハックされております。流れとしてはこんな感じですね。Wi-Fi接続必須です。

(1)iPod touchのファームウェアを1.1.1にダウングレードする
 http://ipodtouchlab.com/hack/112-111.html

(2)JailBreak実行
  iPod touchで「http://www.jailbreakme.com/」にアクセスしてブレーク

(3)「Installer」がインストールされる。
  これをiPod touch上で起動して「Tweak」の「OkToPrep」をインストール

(4)iPod touchをMacに接続し、ファームウェアをiTunesで
 普通に1.1.2にアップグレードする

(5)Macから「http://conceitedsoftware.com/iphone/site/112jb.html」
 にアクセスして、jailbreak.jarを実行してtouchを再起動
 iPod touchのメイン画面に再び「Installer」が現れる

(6)Installerの「Sources」で「Add source」して
 「http://repo.us.to/」を追加。これでiPhone用アプリのインストールが可能に

(7)あとは、「Installer」を使って好みのアプリをインストールするだけ・・・
  ※追記:最初に「Community Source」と「BSD Subsystem」を
      インストールしておくこと。

 とこんな感じになるのですが、AFPサーバアプリも既に開発されておりまして、普通にMacからiPod touchにアクセスできてしまったりして、もう凄いことになっております。こんなに盛り上がっているとは思いませんでした。ハッキング手法も洗練され過ぎ! もはやハッキングの領域ではありません。もうアップルはこの事態を止められないという気がします。

 注意点としては、JailBreakしたiPod touchのシステム領域は保護されてませんから、Wi-Fi接続時にroot権限でアクセスされる危険があります。SSHをオンにしないよう・・。また、AFPサーバ有効時は、さらに危険であります。屋外では必ずオフにしましょう。マジで情報漏えいにつながります。ターミナルソフトをインストールして、passwdコマンドで「root」と「mobile」アカウントのパスワードを変更しておく事を推奨します・・。特に、公衆無線LANサービスを使う場合は、厳重注意です。

 

投稿者 ikeda : 02:58 | コメント (2) | トラックバック

2007年10月09日

BootCampを3ボリュームで運用

Macの「Bootcamp」を使うと、Mac OS XとWindowsのデュアルブート環境が実現します。しかし、Bootcampは2パーティションにしか分割できません。例えば、Mac OSの異なるバージョンを内蔵ドライブで運用しつつ、Windowsもネイティブで起動・・という3ボリューム運用はできません。しかし、ターミナルを使って「diskutil」というコマンドを使うと、簡単にこんな環境ができてしまいます。しかも、元々のMac OS Xを再インストールする必要はありません 。

1. 既にBootcampを使ってデュアルブートで運用している場合はWindowsデータの
 バックアップを取り、「Bootcampユーティリティ」を使って、Macボリューム
 のみに復元する(Windowsボリュームを削除してMac OS X v10.4のみにする)。

2. Command+Sを押しながらマシンを再起動してシングルユーザモードで起動する
 コマンドプロンプトで「sh /etc/rc」を実行する。

3. 「diskutil list /dev/disk0」と入力。パーティションマップが表示される。
  第2パーティション(disk0s2)のサイズを確認する。

4. 「diskutil resizeVolume /dev/disk0s2 ■■G "Journaled HFS+" mac ■■G "MS-DOS FAT32" ■■G」と入力して、パーティションを切り直す(「mac」「win」は任意のパーティション名)。■■に入る数字は、第2パーティションの合計サイズを分割した値。順番は「Macの第一ボリューム」「Macの第二ボリューム」「Windowsボリューム」だ。

5. 「shutdown -r now」でマシンを再起動する。

6. Command+Sを押しながらマシンを再起動してシングルユーザモードで起動する。
 コマンドプロンプトで「sh /etc/rc」を実行する。
 「diskutil list /dev/disk0」と入力。パーティションが正しくできていることを確認。

7. Windows OSディスクをマシンにセットし、「C」キーを押しながら起動。
 Windowsインストーラが起動し、インストール先選択画面が表示されたら
 「C:」で始まるパーティション(diskutilで指定したWindowsパーティションサイズ)
 を選んで、「NTFSファイルシステム」を選んでフォーマットしてインストールする。

8. Optionキーを押しながら再起動し、Macメインボリュームを選んで起動。
 「ディスクユーティリティ」を起動して、未フォーマットのMacボリュームを「消去」。
 ここに、新たにMac OSをインストールすればOK。

#Parallels Desktop for MacがインストールされたMacBookでは
 シングルユーザモードの画面が突然青バックになったまま復帰せず、
 操作不能になる現象が確認されています。Parallelsをアンインストール
 すれば、現象は収まるようです。

投稿者 ikeda : 00:17 | コメント (0) | トラックバック

2007年01月07日

自己証明書SSLサイトに対応する方法

 これは自分が忘れてしまわないための備忘録エントリです・・・(失笑)。レンタルサーバなど、SSLメールに対応しているところの中には、正規の認証局ではなく自己ルート証明書を使っているものがあります。その理由は至極簡単で、正規認証局のルート証明書を作るには結構なオカネが必要だからです(笑)。メールソフトでSSLを有効にすると、MacのMailではいちいち「証明書がヤバイ」というダイアログが出て非常にうっとうしいものです。Macヘルプを見たら嘘が書かれていて、このダイアログを消す方法を色々と模索しないといけなかった訳ですが、なんとかその方法を解明しました。Mac OS X用です。

こんなダイアログが出たら、誰でも「キャンセル」してしまうに決まってる。
今時悪事を企む奴が自己証明書を使う筈がないのです。


(1)サーバに入っている自己ルート証明書をゲット
 「ターミナル」で以下のコマンドを実行
 「openssl s_client -connect [SMTPサーバアドレス]:25 -showcerts -starttls smtp」

(2)表示された「-----BEGIN CERTIFICATE-----」から
 「-----END CERTIFICATE-----」までをテキストエディタなどにコピペ。
 2つ出てくるが、後の方がルート証明書。

(3)適当な名前で拡張子を「.pem」としてテキストで保存(改行コードはLF)

(4)作成したテキストの「情報を見る」で「キーチェーンアクセス」で開く
 「証明書の追加」ダイアログで「証明書を表示」をクリックして
 「ルート証明書」であることを確認。「X509Anchors」
 を選んで「OK」をクリックする。

(5)あとはマシンを再起動。Mailの環境設定のアカウントで
 SSLを設定。この時オリジナルドメインのサーバ名を指定している場合
 はレンタルサーバ会社が提供している元々のサーバ名に修正する。

以上で、うざったいダイアログなしで、SSL暗号メールが送受信できるようになりました。これなら、どんな場所でメールを送受信しても内容が外部に漏えいせず、安心ですね。よかったよかった。あ、ちなみに「.Mac」メールは標準でSSL対応ですが、証明書は正規認証局のものなのでこんな手間をかける必要はありません。

投稿者 ikeda : 02:01 | コメント (0) | トラックバック