タグ別アーカイブ: JailBreak

iPad 3G US版/iOS3.2.2をLimera1nでJailbreakしたまとめ

iPad WIFI+3G US版(iOS3.2.2)を昨日(2010年10月10日)リリースされたLimera1n RC1 Beta2を使ってJailBreak出来たので備忘録です。環境によって出来ない方もいらっしゃるみたいですから、文鎮化した場合に備えて記録しておこうと思います。

注意喚起情報
以下に紹介する方法はJailBreakが必要になります。JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社の施したセキュアな枠組みを無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。さらに、JailBreakされたiPhone/iPad/iPod touchにAppStore以外で配信されるアップル社が承認していないサードパーティー製のアプリケーションをインストールする行為は、その安全性が保証されておらず悪意のあるプログラムが混入している可能性もあり、未知なる危険を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

普段はMacBookを使用しておりますが、Limera1nはWindows版のみのためWindows機も使いました。

  1. まずMacでiPad WIFI+3G版をiOS3.2.2にアップデート(iTunesは10.0.1)
  2. Windows機(Win7)でLimera1nをダウンロードし、デスクトップに保存。
  3. Windows機のiTunesは10.0.1、iPadはUSBハブ使用せずに直挿し。
  4. ituneshelperもそのままなのでiTunes起動状態でLimera1nを実行。
  5. Limera1nの指示通りにHOME、PWRボタンを操作してDFUモードに入れる。
  6. exploiting…
  7. “Done”となりJailBreak終了(次のメッセージ)。iPadの画面は真っ黒。

    limera1n

  8. OKボタンをクリックして閉じる。
  9. Windows機側のiTunesに「リカバリーモードのiPadが見つかりました」のメッセージボックスがでた状態でUSBケーブルを外す。
  10. そのままMac側にUSB接続するとロック画面に復帰。解除するとLimera1nのアイコンが真っ白の状態で出来ています(下の図)。
    ※まだRespringコマンドがないのでリブートまたは言語設定の変更するとアイコンがちゃんと表示されます。


limera1ned

JailBreak完了後の作業

  • Limera1nを実行してCydiaをインストールします。
  • DiskAidでroot領域にアクセスするためにCydiaからafc2addをインストールします。
  • iFileをインストール
  • TerminalはCydia版は実行直後に落ちるのでdeb版をインストール
  • OpenSSHをインストール
  • Terminalからroot/mobileのパスワードを変更
  • /etc/ssh/sshd_configにallow userを追記

諸注意
今のところJailBreak関係アプリ、Tweakは3.2.2に非対応が多いので注意。SystemVersion.plistでフェイクする方法もありますが、どういう不具合が発生するか不明です。

[UPDATE3]【Kindle3要JB】USB/WIFI接続からrootでログインするハック

USB接続からKindle3のシステム内にrootでログインするハックです。おそらく、ほとんどの方には興味がない内容かもしれませんが、これを利用するとフォントやスクリーンセーバー変更以外もいろいろとシステム内部を変更することが可能になります。手元にはKindle3 WIFI版(シリアル番号B008)のため、Kindle3 WIFI+3GのUS版またはUK版については実機での確認が出来ていません。

JailBreakが必要になりますので、当該リスクについては「Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)」をご一読ください。このハックは重複インストールしても文鎮化しないように工夫されておりますが、このハックを利用するとシステム内部を変更することができてしまいますので、その意味ではあまり知識のない方がシステム関係ファイルを操作してしまうと文鎮化するリスクが一気に高まります。

なお、このエントリが当該ハックのすべてを網羅しているわけではありません。またハックファイルの内容が日々アップデートされていますので随時更新を予定しています。

iPhoneからでもWIFI経由でKindle3にログインが可能
IMG_0330

インストール手順
1. Fonts & ScreenSavers hacks for Kindle 2.5からkindle-jailbreak-0.3.N.zipをダウンロードします。解凍するとインストーラー、アンインストーラーが解凍されますので、機種に応じたインストーラーをKindle3のマス・ストレージに置いてSettings>Update Your Kinldeで適用します。Kindle3 WIFI版は”k3w”のものを使用。適合しないインストーラーは、「Update Your Kindle」が非活性状態のため選択できないはずです。そうなった場合は違う機種のものを入れてしまっている可能性がありますので確認してください。

2. 同じサイトからkindle-usbnetwork-0.23.N.zipをダウンロード、解凍、適用してください。

3. これでインストールが完了し、マス・ストレージには”usbnet”のディレクトリが出来ています。必要なファイルは全てこの中に格納され、必要に応じてシステム内部にシンボリックリンクが設定されています。

アンインストール手順
同梱されているアンインストーラーをKinlde3のマス・ストレージに置いて「Update Your Kindle」するだけです。完全に消去する場合は、マス・ストレージの”usbnet”ディレクトリを削除します。

何ができるのか?
Kindle3のシステム内部にrootでログインするためには、シリアルコンバーターやリード線でドングルを自作してシリアル接続する必要がありましたが、このハックによりUSB接続またはWIFI接続から簡単にrootでログインすることが可能になります。このハックはKindle3に対応した他、周辺機能に改善が加えられています。次のような特長があります。

  • USB/WIFI接続でtelnet、sshの利用が可能
  • SFTP接続がサポートされているのでCyberduckやWinSCPも利用可能
  • usbNetworkモードのオン、オフが可能
  • rsycn、htopがバンドル
  • 公開鍵認証が可能
  • usbNetworkモードの優先設定

バンドルされたhtopを実行してみたところ(iPad上で)
IMG_0147

利用方法
USB接続すると”USB Drive Mode”になりますので、解除してHOME画面にします。DELキーを押すと画面下には検索バーがでますので、Symキーで特殊文字を組み合わせて”;debugON“と入力し、つづけて”~usbNetwork“と入力します。これでUSB接続モードに入りました。あとはtelnet、sshなどでターミナルソフトから接続するだけです。

初めて利用する場合には、まずrootのパスワードを変更します。Kindle3は購入時の状態でrootパスワードが設定されていますが、デフォルトのパスワードはハッシュのためそのままでは役に立ちません(詳しいひとであれば解析が可能なのでしょうか?)ので、自分のパスワードに変更しておく必要があります。これをサポートするため、USBNetハックのtelnetはパスワード認証をバイパスしてrootでログインできるようになっています。

[root@kindle root]# mntroot rw
[root@kindle root]# passwd

これでパスワードを変更しておきます。telnetは初回だけのログインに使用したほうが良いと思います。USBケーブル接続時であれば、外部からの侵入の心配は殆どありませんが、公衆無線LAN等のように不特定多数のユーザがアクセスするネットワークでは、IPアドレスだけでrootでのログインを許してしまいますのでWIFI接続時にtelnetを利用出来る状態は非常に危険です。詳しくは後述いたします。

USB接続の場合
ターミナルソフトからtelnetやsshコマンドでIPアドレス192.168.2.2に接続します。このとき、USB接続元の母艦側は192.168.2.1に設定されている必要があります。Windowsマシンの場合、RNDISのネットワークドライバのインストールが必要かもしれません(Kindle2iでは必要だったようです)。

WIFI接続の場合
ターミナルソフトからtelnet、sshコマンドで母艦側と同一ネットワーク内にあるKindle3に割り当てられているIPアドレスに接続します。Kindle3側のIPアドレスを確認するには、Settings画面で711コマンドを使用します。Settings画面でSymキーが利用できませんので直接数字を入力することができません。Alt+U、Alt+Q、Alt+Qで入力すると、WIFI接続情報が確認できます。

SFTP接続する場合
USB経由、WIFI経由のいずれでも母艦からKindle3にSFTP接続が可能です。IPアドレスはUSB経由か、WIFI経由かで異なります。

Cybderduckで接続したところ
mac-kindle3-cyberduck

usbNetwork接続の優先設定
通常、Kindle3を母艦とUSB接続するとUSB Drive Modeに切り替わり、母艦の外部ストレージとしてマウントされますが、USBNet接続を優先させることができます。こうすることで起動時から”;debugOn”と”~usbNetwork”のコマンドを入力することなくWIFI経由で接続が可能になります。またUSB経由Ethernet接続であればUSBケーブルで接続したときに、ドライブモードに入らずに直ちにtelnet/sshできるようになります。

設定方法は予め用意されている”DISABLED_auto”というファイルを”auto”にファイル名を変更して再起動するだけです。もとに戻すときには”auto”以外のファイル名に変更して再起動で通常のドライブモード優先に戻すことができます。USBNetモードの優先状態でドライブモードに入れる場合は、検索バーに”;debugOn”、”~usbNetwork”を入力します。またUSBNetモードに切り替えるには”~usbNetwork”を入力するだけです。

注意事項
WIFI経由での接続は非常に便利ですが、公衆無線LANを利用する場合はセキュリティに気を配ってください。設定次第では容易にログインを許す可能性があります。不特定多数が接続できるような場所では以下のような予防措置をお勧めします。

telnetの利用を制限する
このハックはtelnet接続する場合、認証がなくroot権限、かつmntroot rwの状態でログインしてしまいます(←Ver0.24で改善されました)。telnetは暗号化なしに通信するためセキュリティの面で不安が残りますので、初回ログインしてrootパスワードを変更を済ませた後はWIFI経由によるtelnetを不許可にしておくべきです。このような制限を施すには、このハックで用意されている”/mnt/us/usbnet/etc/config”という設定ファイルに K3_WIFI=”true” を設定します(デフォルトはfalse)。母艦側のエディタで編集するのもよいのですが、文字エンコードや改行コードの問題が生じぬよう、ターミナルソフト上でそのままviエディタを使って編集する方が良いと思います。

使用後はusbNetworkモードをオフにする
検索バーに再び”~usbNetwork“と入力することでusbNetworkモードを解除できます。または、ターミナルソフト上から”/mnt/us/usbnet/bin/usbnetwork”と入力してもusbNetworkモードのオン・オフの切替が可能です(オンにするにはシリアル接続経由のみ可能)。USBケーブルを接続している場合は、USB Drive Modeに切り替わりますので、USBケーブルを抜き差しすることなく母艦側で外部ストレージとして認識させることが可能です。

念のため、”;debugOff“としておくとよいと思います。。以前はusbNetworkモードをオフにする場合はリブートするしかありませんでしたが、大変便利になりました。

シリアル接続との違い
USBNetハックはWIFI接続が可能という点ではシリアル接続よりも便利です。しかしながら接続の確実性という点ではシリアル接続が有線のため安心ですし、このハックではリカバリーモード、ubootモードに入ることができませんのでシリアル接続が必要になります。また、リブート時にはKindle側で電源を完全にオフにしますのでWIFI接続が解除されてしまいますから、再接続するまでのログを確認することが出来ません。

また、シリアル接続は文鎮化したKindle3をリカバリーできますが、このハックは正常に起動したKindle3の状態で初めて利用可能になりますので、上記の点を含めシリアル接続を代替するものではないことに注意してください。

変更履歴—
[2010年10月1日]初回利用時にはtelnetでパスワード認証をバイバスしてログインのうえパスワードを変更することを追記
[2010年10月3日]
・Ver0.23になってUSBNetモード優先が正常動作するようになったので追記
・htopコマンドのカラー対応の画像差し替え
[2010年10月17日]
・Ver0.24の修正
・telnetでもread-only状態でログインするよう修正されたので追記

[UPDATE2]Kindle3はやはり日本語ハックが必要なのか?

Kindle3は公式に日本語表示対応(フォント埋め込みしていないPDF形式を除く)していますので、Kindle2/DXで日本語表示のために必要とされていたJailBreak/フォントハックは不要かと思っていました。InstapaperからMOBI形式ファイルを取得してKindle2で表示させる方法(KindleとInstapaperの絶妙な組み合わせ)について、Kindle3での動作確認をしていたところ、残念ながら一部の日本語が文字化けして表示されていました(フォントハック済Kindle2では正しく表示されていることを確認しています)。

IMG_0262

Kindle2にはネイティブのフォントには日本語が組み込まれていなかったため、FontForge等で既存フォントファイルに日本語フォントを合成して自作したもので日本語を表示させていました。Kindle3には次の日本語フォントが用意されています。

  • HeiSeiMaruGoth213_E.ttf
  • HeiSeiMaruGoth213_E_Bold.ttf

Kindle3の英語フォントには日本語で用意されている”plain”と”bold”のほかに、”italic”と”bold italic”があります。今回の文字化けがたまたまMOBI形式ファイルがおかしいために生じたのか、Kindle3内部で代替フォントを適用する変換がおかしいのかわかりませんが、ある条件下では文字化けが発生してしまうようです。


instapaper-font-bake-article

解消方法は、Kindle3の英語フォントに日本語も組み込んでフォントファイルを自作する、またはfont.propertiesの設定を修正してでごまかすかでしょうか。いずれにしてもノーマルなKindle3では不可能ですから、今のFWですとroot化したKindle3が必要となります。ちょっとハードルが高そうです。一番よいのは米AmazonがFWアップデートで対応してくれることなのですが。。。

Updated on October 7, 2010-----
Instapaperから取り込むmobiファイルを表示させると一部文字化けしてしまいますが原因がわかりました。Kindle3からは日本語フォントが実装されていますが、mobiファイル側で指定するフォントに日本語が含まれないため文字化けが発生してしまいます。以下の作業はシリアル接続環境をお勧めします。USBNetworkハックでも可能ですが文鎮化した場合にリカバリーができなくなりますのでご注意ください。作業の前にfont.propertiesはバックアップをとりましょう。

フォントに関する設定ファイル
/usr/java/lib/font.properties
フォントファイルの格納場所
/usr/java/lib/fonts/

Instapaperのインデックス部分の文字化け(一番上の写真)
mobiファイル側ではSerifフォントを参照しており、Kindle側ではfont.propertiesにてCaecilia系フォントを指定していて、日本語が含まれていないため文字化けします。特にここで指定されているのはboldなので、font.propertiesにてserif.1とserif.boldをHeiSeiMaruGoth213_E_Bold.ttfに差し替えれば文字化けは解消します。

Instapaperの本文部分の文字化け(スクリーンショット画像)
同様にmobi側で日本語が含まれないフォントを指定しているために文字化けが発生するようです。インデックスとは異なり、Sans Serifフォントで使用されているHelvetica系フォントです。italic boldなので、font.propertiesのsansserif.3とsansserif.italicboldをHeiSeiMaruGoth213_E_Bold.ttfに差し替えれば文字化けが解消します。

残念ながら、現時点のKindle3には日本語フォントは平成丸ゴシックのplainとboldしかありません。従ってitalicやitalic boldを表現することができません。最低限文字化けしないようにすることは可能ですが、アルファベットも平成丸ゴシックになってしまい洋書を読むのに雰囲気が台無しになります。フォントを自作したくなってしまいますね。

Updated on October 8, 2010-----
KindleのアプリケーションはJava プラットフォームなので物理フォントと論理フォントが存在します。物理フォントは実際のフォントライブラリであり、論理フォントは Java プラットフォームで定義されているSerif、SansSerif、Monospaced、Dialog、DialogInput の 5 つのフォントファミリです。このマッピングを行っているのが”font.properties”であり、物理フォントはfontsディレクトリに格納されています。

Serif Font
Caecilia_LT_65_Medium.ttf
Caecilia_LT_75_Bold.ttf
Caecilia_LT_66_Medium_Italic.ttf
Caecilia_LT_76_Bold=Italic.ttf

SansSerif Font
Helvetica_LT_65_Medium.ttf
Helvetica_LT_75_Bold.ttf
Helvetica_LT_66_Medium_Italic.ttf
Helvetica_LT_76_Bold_Italic.ttf

Monospaced
KindleBlackboxRegular.ttf
KindleBlackboxBold.ttf
KindleBlackboxItalic.ttf
KindleBlackboxBoldItalic.ttf

Dialog
Helvetica_LT_65_Medium.ttf
Helvetica_LT_75_Bold.ttf
Helvetica_LT_66_Medium_Italic.ttf
Helvetica_LT_76_Bold_Italic.ttf

DialogInput
Helvetica_LT_65_Medium.ttf
Helvetica_LT_75_Bold.ttf
Helvetica_LT_66_Medium_Italic.ttf
Helvetica_LT_76_Bold_Italic.ttf

Kindle3の上記の物理フォントライブラリには日本語が含まれておらず、HeiSeiMaruGoth213_E.ttf、HeiSeiMaruGoth213_E_Bold.ttfが用意されております。他の言語もありますので、どのように上記のフォントに差し替えて適用しているのかわかりませんが、ロケール設定かCharsetで識別しているのかもしれません。

日本語が文字化けする原因として考えられるのはmobi等に変換されファイルの本文以外の特定箇所が多言語ファイルに差し替える対象から漏れているために発生してしまうのではないかと思います。この事象がバグなのか分かりませんが、Kindle Storeで日本語書籍の取扱いも噂されており、これが事実とすればこの事象については改善してもらわないとクオリティとしては許容できないような気がします。

続きを読む [UPDATE2]Kindle3はやはり日本語ハックが必要なのか?

Kindle3 WIFI版のroot奪取で四苦ハック!?

Kindle3のシリアル接続まではできていましたが、rootのパスワードがわかりませんでした。海外サイトでroot取得の方法が紹介されていたので挑戦してみましたので、次回のための備忘録としてまとめました。詳細な手順は @ytsuboi さんの「Kindle 3のshellにroot権限でアクセスしてみた」、@ichinomoto さんの「新型 kindle3G + Wi−Fi でもrootを取得」を参考にしてください。お二人にはいろいろとサポートしていただきました。この場を借りて改めて御礼申し上げます。

01root-login.png

注意喚起情報
メーカ保証対象外となるリスクがあるほか、故障の原因となる可能性があります。

root奪取までの道のり

  1. イメージファイルをダウンロードする
  2. minicomからYMODEM転送するためのコマンドをインストールする
  3. Kindle3のシリアル接続した状態でKindle3を再起動しubootモードに入る
  4. 母艦からYMODEMでイメージファイルを転送する
  5. イメージファイルでブートする
  6. 必要なコマンドをいくつか実行
  7. パスワード設定ファイルのrootのパスワード部分を消去

カンタンなようでそもそもubootて何?YMODEMとか知らないし。。。というレベルなので結構大変な作業です。特に、4)と6)です。

MacPortsでインストールした外部プログラムをminicomからYMODEMとして呼び出すわけですが、転送が何度も失敗します。なにが原因かわかりませんがアップロードして(したつもり)、”uboot> bootm 0x84000000″としても”Bad Magic Number”とエラーが出てしまいます。うまく転送できたかどうかもわかりませんでした。

転送が失敗した例 Total Sizeが0 Bytesになっています。

02ymodem-upload-failed.png

転送には時間がかかりますので固まったと勘違いしないようにします。転送が完了したようでも何も反応しなくなる場合もありました。そういう場合はKindle3をリセットしてubootに入るところからやり直します。

転送が成功した例 Total Sizeが2212380 Bytesになっています。

03ymodem-upload-success.png

うまく転送できたら、イメージファイルでブート(”uboot>bootm 0x84000000″)します。カーソルは”boot: I def:rbt:Device Reboot Encountered:”で改行したところで止まります。中途半端かもしれませんが、コマンドプロンプトは出ていませんが、この状態から入力します。

04boot-imagefile.png

ここからは時間との勝負になります。一定時間経過するとタイムアウトしてしまうのでコピペで入力した方が楽です。わたしの場合はタイムアウトすることに気がつかず、何度かKindle3をリセットからやり直しになってしまいました。イメージファイルの転送もその都度必要になるようですから、失敗すると全ての作業が一からやり直しになります。

04command-success.png

ただし、mkdir /root だけは一度だけ実行すれば次回からは不要になるようです。実行しても既に存在しますというエラーメッセージが出てしまいます。タイムアウトになるのは正確な時間はわかりませんが、感覚的には1分未満ではないかと思いますので本当に時間がありません。そのためたった1行のコマンド入力省略でもありがたいことなのです。

あとはviエディタで/etc/shadowにあるrootのパスワードを削除します。viエディタは通常のテキストエディタではありませんから事前に使い方を確認しておくとよいでしょう。移動はカーソルキー、削除は”x”、保存して終了は”:wq”です。

これで完了ではありません。sync、exitの入力が完了するまで安心しないでください。とにかく時間がありませんので迅速かつ正確に作業していく必要があります。あとは色々とログが流れていって止まりますのでKindle3をリセットします。すると、kindle login: でユーザ名にrootを入力してEnterキーを押すと…

[UPDATE1]Kindle3の自作シリアル接続アダプタを作ってみた

Kindle3のシリアル接続は既に端子が発見されていました。rootで入る方法があるようですが、わたしにとっては非常に敷居の高いややこしい方法としてMobileReadのフォーラムで紹介されていました(シリアル接続からubootで入りメモリの0x84000000エリアにブートイメージをアップロードする方法)。その前にシリアル接続を簡単にする自作アダプタができたので作り方を備忘録的にまとめました。

注意喚起情報
メーカ保証対象外となるリスクがあるほか、故障の原因となる可能性があります。

シリアル接続アダプタの作り方
Kindle3 WIFI版を分解の巻のとおり、シリアル接続用の端子はライト付カバーの給電コネクター部分にありますので、Kindle2と違って外部から接続端子にアクセスすることができます。この場所に挿し込むアダプタを作ります。


IMG_0233

材料は次のとおりです。
・エクステンション基板ICB-072(サンハヤト、1.25mmピッチ)
・SIMカードホルダー(SIMカード取り外し後のもの)
・リード線
・両面テープ


IMG_0237

エクステンション基板は秋葉原の千石電商にて770円(税込み)で購入しました(作業した結果1.27mmピッチの方がフィットするような気がします)。接続端子4本のうちシリアル接続は3本ですから、3本分だけ切り取ります。穴の方にリード線を半田付けします(我ながら仕上げがキタナイ(涙))。

これをサポートするための台座としてSIMカードホルダーをハサミで切り抜きます。厚さが0.6mmでちょうどよく強度と加工しやすさからこれを使いました。プラ板は手元に0.5mmのものがありましたが、差し込んでも緩んでしまいバネ板にうまく当たらず接触が悪くなりましたので却下しました。

台座にエクステンション基板を接着する前にKindle3本体左下のライト付きカバーの給電コネクタの穴に出し入れしながらフィット感を確認します。同時にUSBシリアル変換モジュールに接続して、エクステンション基板がそれぞれKindle3側のTX/RX/GND端子にうまく当たって認識しているかも確認します。

問題ないようであれば両面テープで台座とエクステンション基板を接着します。接着剤を使用してもよいと思いますが、あまり厚みが出てしまうと挿し込んだ時に窮屈になってしまいますので注意してください。


IMG_0236

絶縁処理をしようとテープを一旦巻いたのですが、窮屈すぎて外してしまいました。これから自作される方はその辺も踏まえて台座の厚さや幅を考えていただいたほうが良いと思います。

Updated on October 17, 2010 —
その後、改良版を作成していますので追記いたしました。アダプタの形状を差込口の幅にあわせていましたが、Kindle側の端子とアダプタ側端子の接触を安定させるためにT字型としました。

Kindle3側のシリアル端子のピッチとアダプタ側のエクステンション基板のピッチが微妙にあわないので、ちょっと斜めに入ったりするだけで接触できなかったり、本体を持ち上げた拍子にズレてしまい接続が途切れる場合があり不安定でした。これをT字型にすることで非常に安定するようになりました。さらに、エクステンション基板の絶縁と固定・強度補強を兼ねて絶縁テープを施しています。


DSC00030

続きを読む [UPDATE1]Kindle3の自作シリアル接続アダプタを作ってみた

iPhone/iOS4.0.1にドコモのキャリアロゴを表示する方法

JailBreakのうえアンロックしたiPhoneにドコモSIM(FOMAカード)を挿すだけではステータス・バーに”NTT DOCOMO”というそっけないテキスト文字が表示されるだけである。これを画像に差し替えてみた。


R0010866

参考:iPhone4をドコモSIMで使ってみたけどSoftBankがいいかな

注意喚起情報
以下に紹介する方法はJailBreakが必要になります。JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社の施したセキュアな枠組みを無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。さらに、JailBreakされたiPhone/iPad/iPod touchにAppStore以外で配信されるアップル社が承認していないサードパーティー製のアプリケーションをインストールする行為は、その安全性が保証されておらず悪意のあるプログラムが混入している可能性もあり、未知なる危険を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

また、SIMロックを解除して他キャリアで利用する場合、加入プランやAPN設定内容によっては高額のパケット通信代が請求されることがあります。利用後にオンライン明細等でパケット通信代を確認するなど注意が必要です。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

SIMを挿しただけではテキスト文字が中途半端に表示されるだけ
IMG_0004

iOS3.xまでは必要なかったと記憶しているが、iOS4.0.1では(JailBreakのうえアンロックされたiPhoneにて)CommCenterにパッチを当てなければならない。パッチファイルは以下のサイトからダウンロードし、OpenSSH等でiPhoneにコピーしiFile等でインストールする。完了したらデバイスをリブートする。

パッチ公開サイト:Native Tethering on iOS 4.0.1 through Commcenter Hacking
※iOS4.0.1用のパッチファイルのため他のバージョンでは正しく動作しないと思われる。

次に、Cydiaから”NTTdocomo Carrier Bundle”をインストールする。NTTドコモはアップル社のキャリアパートナーではないので、iPhoneにはドコモのキャリア情報の設定ファイルがバンドルされていない。このファイルがあるとSIMを差し替える都度自分で設定情報を入力しなおす手間が省けて便利。
※2010/8/17現在ではバージョンが0.9-1。

CommCenterのパッチを優先したのは、逆にNTTdocomo Carrier Bundleだけをインストールした状態でドコモSIMを挿したところ設定画面のネットワーク項目を開いたところで何も反応しなくなり、SoftBankの黒SIMを挿しても症状が改善しないという怖い目に遭ったから。原因を特定できていないので再現するか不明。
※WIFI環境があればCydiaから削除、通信環境がなければTerminalからdpkgコマンドで削除できる。

そしてドコモSIMを挿してRespringすればキャリアロゴが変更されているはず。自分の好きな画像に変更する場合は、/System/Libarary/Carrier Bundles/docomo_jp.bundleというディレクトリにDefault_CARRIER_NTTdocomo.pngとFSO_CARRIER_NTTdocomo.pngという画像ファイルがあるのでこれを差し替えればよい。もしiPhone4の場合はRetinaディスプレー対応の画像を用意する必要がある。
Default_CARRIER_NTTdocomo@2x.png
FSO_CARRIER_NTTdocomo@2x.png
と、同じディレクトリに”@2x”の付いたPNGファイルを入れておくとコチラが優先して表示される。自分の場合はドコモのロゴ画像をPhotoshop Elementで加工して自作した。高さは40ピクセル。


R0010867

ちなみにUS版iPadのキャリアロゴを変更するのにドコモのキャリア表示情報をUnkown.bundleに追記した方法を試してみたが、残念ながら反映されなかった。
参考:iPad WIFI+3G US版にdocomoのキャリアロゴ画像を表示する

動作環境
iPhone3GS iOS4.0.1
iPhone4 iOS4.0.1
ccp401_1.1-3_wortel.deb
NTTdocomo Carrier bundle 0.9-1

[UPDATE2]脱獄するためにはJailBreakが必要なんですか?

米著作権局は2010年7月26日(米国東部時間)にデジタルミレニアム著作権法(DMCA)の見直しを発表し、合法利用の範囲を拡大した。発表された全6項目にはiPhoneという固有名詞こそないものの、iPhoneのJailBreakやUnlock行為に該当する項目があるという。 [Revised on August 1, 2010]発表された全6項目は米著作権局が米国議会図書館に宛てた”Recommendation”でその詳細が公開されている。全262ページのうちJailBreakとキャリアUnlockについてはApple社のiPhoneが名指しされ、およそ100ページ(P77〜P174)も割かれていた。

JailBreakとキャリアUnlockが合法と認められたが、JBerはこれをどう受け止めればよいのだろうか。米国権威当局のお墨付きを得たと希望の光と喜ぶべきか、それともこれが終わりのはじまりと将来を憂うべきなのか。

Cydia-3G

U.S. Copyright Office – Anticircumvention Rulemaking

対象項目の抜粋
(2) Computer programs that enable wireless telephone handsets to execute software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications, when they have been lawfully obtained, with computer programs on the telephone handset.
(3) Computer programs, in the form of firmware or software, that enable used wireless telephone handsets to connect to a wireless telecommunications network, when circumvention is initiated by the owner of the copy of the computer program solely in order to connect to a wireless telecommunications network and access to the network is authorized by the operator of the network.

そもそも今回の決定は、ある一定条件下で行われるJailBreakについてDMCA適用が免除されるに過ぎない。裏を返せばこの条件を満たさないJailBreakは合法ではないということだ。

アップルはどうするのか?これを機に対策を緩めたりすることはあり得ないだろうし、JailBreakされたiPhoneを保証対象に含めることも絶対にないだろう。むしろ初期不良の交換や返品、バッテリ交換プログラムなどの各種サポートについてJailBreakされたiPhoneはこれまで以上に排除に向けた取り組みを強化するかもしれない。友達紹介キャンペーンならぬJailBreakユーザー密告キャンペーン、AppleIDのアカウントロックなど。。。

今後、メディアにより「JailBreakが合法化」とセンセーショナルに伝えられることで、リスクを理解しないままJailBreakに至るユーザは増えることは想像に難くない。合法であるという(誤った)安心感とともに間もなくリリースされるJailBreakツールの手軽さからコモディティ化は急速に進むはずであり、JailBreakするユーザの急増は疑いようがない。その結果、トラブルに陥り、リカバリーの術を知らないユーザは、文鎮化させたiPhoneを片手に「もうしませんから」と泣き叫ぶことになるだろうが、時すでに遅しである。アップルはもちろんソフトバンクもJailBreakされたiPhoneをサポートなどしない。違法行為ではないが利用規約を破るような不心得者まで救済してしまってはルールを順守しているユーザーとの公平性が保たれないし、当初アップルが想定した利用範囲をはるかに超えてしまうため実質的にサポート・保証が不可能だからだ。

では今回の措置によって何か変わるのか?JailBreakがグレーとか違法ではないかと感じていたJBerにとっては合法という安心感が得られるという意味では評価できるかもしれないが、実態は何も変わらないのではないだろうか。いや、むしろアップルとハッカー達のチキンレースはこれまでどおり続くが、その傍らにはカラ騒ぎの結果、何のサポートも受けられず、保証もされない「自己責任」を突きつけられて耐え切れなくなった一般ユーザーが死屍累々と横たわるという不幸な結末を迎える可能性もある。

ともすれば極めてマイノリティな一部の主張を認めたことで、AppStore以外のアプリの流通、セキュリティの脆弱化、物理的損傷等を惹き起こしかねないJailBreakの拡散が助長されることでiPhoneのエコシステム全体を破壊させかねないのではないかと思ったりするのである。

以上、説得力のないJBerの戯言。

— Updated on July 28, 2010 —
やはりというべきか、アップル広報からJailBreakした場合は「製品保証を無効にする」ことを改めて強調したようだ。

Apple、守勢にまわる—「合法的だろうと脱獄したらやはり製品保証は打ち切り」

JailBreakが合法であるにもかかわらず利用規約等で保証対象外とした場合、訴えればどうなるか?経済的損失は小額であるため訴訟コストを考えると訴訟メリットが薄い。もっとも、訴訟理由がおカネではなくもっと尊い何かがあれば別だが。仮に裁判所で争ったところで、今回のDMCA適用除外は「JailBreakが一定の条件で合法」というだけで、メーカーに保証義務を課すものではないし、最強のアップル社リーガルチームがガチガチにガードを固めて来ることは間違いない。

また、この記事が言うように「守勢にまわる」「『iPhoneの動作が不安定になる』というくだりは事実ではない」というのは誤っている。この記者はJailBreakを理解していないのだろう。JBerであれば周知だろうが、そこそこの知識がないとJailBreakしたiPhoneを継続的に安定運用させるのは大変な労力を要する。だからこそ、アップルは「JailBreakは最良のiPhone体験を損なう」と主張しているのだ。ごく一部のJBerにとって快適(安定や信頼性があるという意味ではない)な環境が他の全ユーザにも同じように快適というわけではない(むしろ様々なトラブルに遭遇する覚悟が必要である)ことを認識する必要がある。

これからのメディアの捉え方に注目である。JailBreakの効果・メリットだけが大きく扱われ、そのリスクが同等、あるいはそれ以上に説明されるべきだが、それはなされない(知らないから説明できない)可能性が高い。これこそが悲劇の始まりと思えてならない。自由の代償とも言うべきか。

iPadの壁紙をWallpaperAutoChangerで楽しむ方法【要JB】

iPadの写真アプリを使えば撮りためた画像をデジタルフォトフレームとして楽しむことができる。とはいうものの、意外にその機能を使ってじっくり眺めるというのは最初のうちか人にホレホレするときぐらいで普段はそれほどない。せっかくの大画面がもったいない。そんな時に @hitoriblog さんのWallpaperAutoChanger for iPadを使えば普段からに楽しむことができる。

このアプリはiPadのホーム画面の壁紙を指定した時間間隔、アンロック時、アプリ終了時などのタイミングに応じて自動で切り替えてくれるアプリケーション。詳しくは”iPadの壁紙を自動的に切り替える WallpaperAutoChanger”を参照。

注意喚起情報:JailBreakを伴います。自己責任でどうぞ。

WinterBoardでDockとアプリのアイコンを調整した後
IMG_0098

壁紙のテーマをディレクトリで管理する
常に同じ画像を切り替えるのも退屈してしまうので、気分に合わせてテーマ分類する。WallpaperAutoChangerの設定画面には”Pool Directory”という設定項目があり、デフォルトでは”/var/mobile/Media/Wallpapers”が指定されている。これを利用してサブディレクトリにテーマ毎に画像を分類する。例えば次の通り。
/var/mobile/Media/Wallpapers/Senna:アイルトン・セナ関連画像
/var/mobile/Media/Wallpapers/Landscape:風景画像
分類の方法はお好みで。気分にあわせ設定画面から切り替え画像のテーマを設定できる。


IMG_0099

WinterBoardを使ってホーム画面をカスタマイズする
ホーム画面にはアイコンが並び、ドックが配置されている。画像を楽しむにはこれらが邪魔をする。そんな時にはWinterBoardでアイコンやドックを透過してしまうとよい。
余談だがiPadでWinterBoardを使う場合にはiPhoneとは異なる部分が多く注意が必要。WinterBoardを使用せず実現できる場合もあるが、自分は復元が必要になるような不具合には遭遇していないし、カスタマイズの再現がカンタンなので必須アプリのうちのひとつである。

アイコンの透過
デフォルトで入っているテーマ”Dim Icons”をONにする。ただし、透過が弱いので”/Library/Themes/Dim Icons.theme/Info.plist”で設定されているIconAlpha値を0.5から0.4に修正する。これより小さい値にするとホーム画面でアイコンを識別しづらくなる。

Dockの透過
デフォルトで入っているテーマ”Transparent Dock”をONにしても透過されない。これはiPadがiPhone/iPod touchと異なりデバイスをタテにしたときのDock画像、ヨコにした時のDock画像の両方が必要になるから。SpringBoardの画像ファイルはiPhoneと同じ場所のようなので、そこからDock画像らしきファイルを探し出し、WinterBoardのオリジナルテーマを作成する(ディレクトリ名:”XXXXX.theme”)。

デフォルト画像は”/System/Library/CoreServices/SpringBoard.app/”にある次のファイル:
SBDockBGT-Landscape.png
SBDockBGT-Portrait.png
WallpaperIconDockShadowT.png

その他にもらしきファイルがあったが最低限これを透過させればよいと思われる。同じピクセルで同じファイル名の透過画像を作り自作テーマディレクトリの下(/Library/Themes/XXXXX.theme/Folders/SpringBoard.app)に置き、WinterBoardからこのテーマをONにしてRespringをかける。

WinterBoardでDockとアイコンの透過を調整する前:調整後は一番上の画像
IMG_0097

Categories/SBも組み合わせてアイコンを整理するとさらに効果的。もっともiPadにiPhoneのdBar[One]を適用することができれば壁紙を楽しむには最高のカタチになるかもしれない。見たい画像はたくさんあるけれど、iPadをデジタルフォトフレームとしてスライドショーで眺めるという手間と時間が億劫になってしまう。それを日常の操作の中で楽しむことを可能とするWallpaperAutoChangerは本当に素晴らしいアプリケーションだと思う。是非、Appleには標準実装してもらい。



動作環境
iPad WIFI+3G 16GB-USA iOS3.2 Spirit Jailbreak済み
WallpaperAutoChanger 0.3-1
WinterBoard 0.9.3211-1

[UPDATE1]Kindle 2.5.3 で日本語ハックが復活

Kindleの2.5.2(タイトルは2.5.3となっているがこれは誤りではない)へのバージョンアップにより書籍データをフォルダ管理したり、Twitter/Facebookとの連携、パスワードロックなど様々な機能が追加された。とはいえ、やはり日本で使用するにあたっては日本語表示が欲しい。というわけで、日本語フォントハックしたのでKindle2.3.4からKindle2.5.3へのアップデートとanti-bunchin、日本語フォントハックまでの備忘録。

注意喚起情報:文鎮化リスクは自己責任、シリアル接続環境推奨

Kindle2.5.3へアップデートした状態

2010-06-19 11.07.00

Kindle2.5.3をフォントハックした状態

2010-06-19 13.56.16

まず、Kindle2.3.4に施したハックを全てアンインストールしておく必要がある。導入していたフォントハックにはOTA経由でダウンロードされたアップデータの自動インストールを阻止するスクリプトが入っていた。他のハックが残った状態でOTA2.5.2アップデータが適用された場合、どういう影響があるのかわからないため、フォントハックを最後にした方が良い。次の順でアンインストールした。

update_uninstall_sudoku_k2i.bin
update_uninstall_qt_k2i.bin
update_news_auto_downloader_uninstall-k2i_0.3.bin
update_uninstall_usbnetwork-k2i.bin
update_anti_bunchin_uninstall-k2i.bin
update_ufssh_yt_uninstall-k2i.bin

フォントハックをアンインストールしてもUSBストレージの/mnt/us/system/fontsディレクトリ残っているが最終的にフォントハックで上書きされてしまうためあとで戻せるように母艦にバックアップしておく。

OTAアップデータは一向に落ちてこないので手動で2.5.2アップデータを適用することにした。Kindle Software Update Version 2.5 から手動でダウンロードして適用する。ここでダウンロードできるのはKindle Software Version2.5.2のアップデータである。実はこの後にVersion2.5.3も存在するため、Version2.5.2の状態でフォントハックするとどういう影響があるのかは不明である。

運良くKindle2.5.2にバージョンアップしたあとにOTA2.5.3が落ちてきてKindle2.5.3になっていた。2.5.3アップデータは公開されていないようなのでOTA配信を待つしかないと思われる。

Twitterでお世話になっている @ichinomoto さんがホームページで公開されている anti-bunchin と日本語フォントハック を導入した。現在は直接ハックをあてるのではなく、下準備としてKindleをjailbreakする必要があるとのこと。

まず、KindleをJailbreakする。2.5-jailbreak.zip をダウンロードしてZIP解凍後に update_jailbreak_k3i_install.bin を母艦経由でKindleのUSBストレージ(/mnt/us/)にコピーする。母艦との接続を解除しKindle側でSettings画面からメニューの”Restart”を選択する(通常のアップデータの適用は”Update Your Kindle”だがこの作業ではこのメニューが非活性化の状態でクリックできない)。

—Updated on June 19, 2010
どうやら私がJailbreakするためのアップデータを誤ってDXi用のものを適用してしまったようです。今のところ問題出ていませんが、Kindle2(Global Wireless)用は”update_jailbreak_k2i_install.bin”が正しいものです。これだとメニューには”Update Your Kindle”が活性化されクリックできる状態になります。

Jailbreakするとエラーが出るが問題ない

2010-06-19 13.07.25

インストラクションのとおりUpdateが失敗したというメッセージが出るが、落ち着いてKindleのキーボードの”R”を押すと正常に再起動する。

あとは @ichinomoto さんのホームページからアップデータをダウンロードしてひとつづつ適用してやるだけ。自分の好みのフォントがある場合は、フォントハックが完了した後に /mnt/us/system/fonts のディレクトリにコピーしてやる。ここでフォント名を間違ってしまうとノーマルブートしなくなるので注意。そのときは、anti-bunchin が発動してUSBネットワーク接続できる状態になるので母艦側のTerminal経由で修正すればよい。

@ichinomoto さんのフォントハックを適用したところ

2010-06-19 13.47.38

動作確認で anti-bunchin のUSBネットワーク接続機能を試してみた。ANTI_BUNCHIN_ENABLEというファイルをUSBストレージに置いてSettings画面のメニューからRestartすると、Kindle側は接続待機状態で起動するので母艦側のTerminalで”% telnet 192.168.2.2″として接続してやる。問題なく接続可能だった。

これでKindle2.3.4で出来ていた日本語表示が復活した。青空文庫はもちろん、日本語PDFやKindlefeeder.comで配信するRSSニュースも読むことが可能になった。素晴らしいハックを提供してくださった @ichinomoto さんに感謝、感謝です。

anti-bunchin を起動させたところ(1分経過あたりが見頃)

[UPDATED1]iOS4の登場で不要になるJailbreakアプリは?

6月7日のWWDCで次世代iPhoneハードのiPhone4と新OSの iOS4 が発表された。新しいOSにはホームスクリーンの壁紙を設定やマルチタスキングなどの新機能が実装される。Jailbreakはこれまでのexploitと同じかどうか知る由もないが、いずれ世界のハッカーたちが新しいハードでもOSでもこじ開けてくれるだろう。iPhone自体それだけで素晴らしいデバイスだが、さらに快適に使う(知的好奇心を満たす)ためにはやはりJailbreakしたくなる。今回のメジャーアップデートでJailbreakの必要性は低下しているはずなのでそんな観点で不要になるJBアプリ・ユーティリティを妄想してみた。

iPhone_SS

(アルファベット順)
BTstack Keyboard
iOS4で標準実装されるBluetoothキーボードのプロファイル(HID)は非常に強力。一方、このアプリは日本語変換に難ありだし、他のBTデバイスを遮断してしまうとか不便だった。

Categories/CategoriesSB
iOSではフォルダと言われる機能。フォルダ機能にアイコンこそ変更する機能はないようだが、アプリを重ねあわせるだけでフォルダが作成され、フォルダ名もカンタンに変更できるようになる。登録したアイコンを削除するのもカンタンにできてしまう。残念ながらCategories/SBは大変便利なユーティリティだったけどお役御免かな。

Rotation Inhibitor
iOS4ではローテションのロック機能が実装され、ロック状態がステータスバーにも表示される。これでこのトグルで固定させる必要がなくなった。これまではベットで横になってリーダーアプリやSafariでブラウズするときにはなにかと重宝したSBSettingsのトグルだった。

WordRgstr(for3.0)
iOS4には単語登録機能が実装された。SBSettingsから連絡先に登録するトグル。連絡先に登録しておくと変換候補に表示してくれることを利用したもの。変換の学習能力が低いiPhoneには必須ユーティリティだったなー。

Xpandr
これもWordRgstrと同じだけれど、連絡先に登録しておくわけではないという違いくらいか。
Cydiaに登録してあるPackagesの一覧を上から下に見ていった感じでは不要になりそうなアプリ・ユーティリティって意外にないのかもしれない。改めてまだまだJailbreakに頼らざるをえないという印象を受けた。
続きを読む [UPDATED1]iOS4の登場で不要になるJailbreakアプリは?