Nyadgets!

ガジェットやらでライフをハックするブログ

Kindle Paperwhite (初代) Official Firmware 5.4.4.2 でフォントを入れ替えてみた!

こんにちま!

というには久しぶりすぎるような気がしますが、皆様こんにちま! にゃるらコト岡村 直樹(27)です。 ここ数ヶ月、Nyadgets! を URL を変えたりしたまま放置とかしてました。マジすまんこ。

で、そのお蔭様というかなんと言うか、更新放置で、無事アクセス数が減りつづけております。本当は全然良くないんだけれども。 ま、放置してしまったモノはしゃーないので、これからぼちぼちと更新を再開したいと思っております。 いや本当に。エイプリールフールとかではないですからね。っていうかもう昼だし。

ま、そんな話は良いとしてですね(ぉぃ)、本日は、

  • Kindle Paperwhite (初代) の Official Firmware 5.4.4.2 で、フォントを本当に変えてみた!

という話を書きたいと思います。

つーことで、本編、始めます。

1. 参考にしたページと作業環境

ぶっちゃけ参考にした以下の通り:

で、作業環境は、

  1. Kindle 本体: Kindle Paperwhite (初代) Official Firmware 5.4.4.2 (non-Jailbreak)
  2. Kindle へのファイルコピーなどに使用したPC : OSX Yosemite on Macbook Air mid 2011
  3. Kindle のシステムファイルの修正に使用した環境: Ubuntu 14.04 docker container on CoreOS

という感じです。はい。

まあ、三番目がちょっとフツーではない感じですが、正直、今回のハックのためだけに Linux なり Windows なりを用意するのが面倒だったため、 今回の一部作業を、最近個人的用途(主にIRC Bouncer関係)のために構築してあった CoreOS ホスト上の Ubuntu 14.04 のコンテナで行いました。

そのため、どっちかっていうと今回のハックの作業方法は、Linux とか OSX とかの、 主に黒い画面に親しみが有るヒト向けになってしまっています。が、その辺りは気にしない方向でお願いします。 :^)

2. 実際に行なった手順

1. まず、Kindle PaperView (初代) の Firmware を最新の 5.4.4.2 にする

この辺りの作業方法は、

を参考にしますた。

2. 次に、おもむろに Kindle を PC (僕の場合Macbook Air) と接続し、Kindle から ja.font を取り出す

これはまあ僕の場合だと、OSX で隠しフォルダを表示するのがめんどいとかなんとかで、Terminal.app を使い、

$ cp /Volumes/Kindle/system/fonts/ja.font ~/Download/

という感じでコピーしました。

で、次。

3. そして、Kindle から取り出した ja.font を CoreOS に scp し、作業用の Ubutnu 14.04 docker container にマウントする

はい、ここからどう考えても一般向けでは無くなってきましたが、ここでの作業は、大体、

# とりあえず作業用のディレクトリを CoreOS 上に作る
$ ssh core<CoreOS IP> mkdir -p /home/core/tmp

# 次に Kindle からコピーしてきたファイルを CoreOS に転送
$ scp ~/Download/ja.font core@<CoreOS IP>:/home/core/tmp/

# あと、今回入れ替えに使うフォントファイルも転送
# なお、KoboMaru.ttf は <http://www49.atwiki.jp/kobotouch/pages/20.html> 経由で入手可能
$ scp ~/Download/KoboMaru.ttf core@<CoreOS IP>:/home/core/tmp/

# CoreOS にログイン
$ ssh core@<CoreOS IP>

# 作業用の Ubuntu 14:04 の Docker Container を立ち上げる
$ docker run --name kindle_work -ti -v ~/tmp:/root ubuntu:14.04 /bin/bash

という感じになります。はい。

で、次。

4. そして Ubuntu 14.04 Docker Container に作業に必要なソフトウェアをインストールし、 Kindle のシステムファイルをハックする

この辺りの作業は、僕が参考にした、

辺りの作業そのままなのですが、手順としては、先程の Ubuntu 14.04 docker container 上で、

# cd /root
# apt-get update
# apt-get install cramfsprogs
# cramfsck -x kvfont ja.font
# cp KoboMaru.ttf kvfont//kvfont/fonts/TsukuMinPr5-Medium.ttf
# mkcramfs kvfont ja.font.new

という感じで中身をいじった ja.font.new ファイルを作成、そして生成した ja.font.new ファイルと、 元の ja.font ファイルのファイルサイズの差分を計算し、

# dd if=/dev/zero of=dummy.data bs=1024 count=<差分>

という感じのコマンドでダミーデータを作成、そして

# cat ja.font.new dummy.data > ja.mod.font

というコマンドで二つのファイルをくっつけます。

で、最後に、くっつけ終った ja.mod.font ファイルを これまた scp で OSX の方に持ってきて、 タイムスタンプを元の ja.font ファイルと合せます。なおその際のコマンドは

# OSX の Terminal.app で
$ scp core@<CoreOS IP>:/home/core/tmp/ja.mod.font ~/Download/
$ ls -lT /Volumes/Kindle/system/fonts/ja.font
$ touch -t <YYYYMMDDhhmm.ss> ~/Download/ja.mod.font

という感じです。

で、最後。

5. 最後の仕上げ。 Kindle に ハックしたシステムファイルをコピーして再起動!

で、僕はココで手順を間違えてちょっとだけハマってたんですが、 この時の手順は、

  1. まず Kindle を機内モードにする
  2. 次に適当に本を開いてフォントに 筑紫明朝 を選択する
  3. そしてその後で Kindle を PC に接続
  4. その後次の様なコマンドでハックしたシステムファイルをコピー
    • $ cp -a ~/Download/ja.mod.font /Volumes/Kindle/system/fonts/ja.font
  5. コピーが無事終ったら、Kindleを再起動
  6. そして後にフォント選択で 筑紫明朝 を選択すると、先にハックして入れ替えたフォントになる
  7. なお、この際に 日本語フォントのアップデート などをすると、ハックが元に戻ってしまうので注意

という感じで作業を進めないと

  • フォント選択で Kindle がフリーズ → 再起動 → その状態のままフォント選択するとまた Kindle がフリーズ → 再起動 → るーぷ!!1

という状態に成ります。

で、もしこのループになってしまった場合には、ハックしたフォントファイルを元に戻し、 再起動なりをしてやると多分元に戻ります。

なお、この辺りの手順というか注意事項は、

を参考にしてくささい。

3. という感じで以上です

そして今の僕の Kindle の表示はこんな感じ:

正直言うと、今回のハックより、今回のハック記事を書くほうが疲れたんですが、 まあその辺りは AquaSKK がまだ手に馴染んでないのが原因じゃないかなーと思いまふ。

で、そんな感じで Kindle をハックしてみたよって話だったんですが、 まーこれ普通に開発者じゃない方にとってはちんぷんかんぷんな手順書だと思うので、 もし Windows をお持ちの方であれば、

を参考にやったほうが、手っ取り速いし、解り易いかと思います。

あと最後になってしまいましたが、この手のシステムファイルをいじる類のハックは、 最悪、 Kindle が文鎮に成る可能性があるので、その辺りのリスクを各自が負える範囲内で行なってください。 っていうか、決して安くない Kindle が文鎮化しても、僕は責任を負えませんから。

まーその辺りよく考えた上で作業を行なうコトを、僕はオススメします ;^)


というコトで、久しぶりの Nyadgets! の記事でした。

ちなみにこの記事、

を使って書いているのですが、

で文字数数えてみたら、この行の時点で5000文字超えてるので、 まーご苦労さんなこった、と自分のコトながら、ちょっと呆れてますです。はい。原稿用紙何枚やねんっていう。

あと最後にもう一度だけ言っておきますが、この手のデバイスのシステムをいじって云々する類のハックは、 最悪自分のデバイスが文鎮に成るリスクが有りますし、あと壊すとマズいモノで行なうと、後で泣きを見る破目になるので、 その辺りは各自の覚悟の上で行なってください。マジでお願いします。

というコトで、本日は以上です。お疲れ様でした。まる