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キーを押すと…