[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状態でログインするよう修正されたので追記