2012年12月11日

Kindle Paperwhiteを脱獄(Jailbreak)・スクリーンセーバーをカスタマイズする方法

ついに、日本で発売されたKindle Paperwhite(ファームウェア 5.3.x)でも脱獄(Jailbreak)が可能になったてご存知ですか?

kago_gray

今日はその手順と合わせてスクリーンセーバーをカスタマイズし、自分だけのKindle Paperwhiteを作ってみます。

ちなみに僕は(X)Ubuntu 12.04、Kindle Paperwhite 3G版を使って作業しますよ。

まずはKindle Paperwhite(5.3.0, 5.3.1)を脱獄(Jailbreak)


Mobilereadのページへアクセスし、脱獄(Jailbreak)用実行ファイルをダウンロードします。

 
K5 Kindle Paperwhite Jailbreak (5.2.0 - 5.3.1) - MobileRead Forums

上記ページで少し下にスクロールすると、kpw_jb.zipファイルへのリンクがあります。

k5jb18


このファイルをダウンロード・解凍しておきます。

k5jb1

さあ、準備は出来ました。 Kinlde Paperwhiteをパソコンに接続しましょう。

k5jb19

Kindleがストレージ(ドライブ)として見えるので、jailbreak.sh、MOBI8_DEBUGファイルをKindleの直下にコピーします。

k5jb8

続いて、jailbreak.mobiをdocumentsフォルダにコピー。

k5jb9

ここまで出来たらKindleをパソコンから取り出してみましょう。 怪しげな本がホーム画面に現れるはずです。

k5jb20

タップして開くと、クリックを促されるので”JAILBREAK”をタップ。

k5jb21

さらに何故か画面左上を2秒以上長押しするように指示されるので、言われた通りに長押しします。

k5jb22


すると、脱獄が始まり何度かメッセージが表示されます。

k5jb23

最後に”JAILBREAK SUCCEEDED”と表示されれば無事完了。 画面をタップしてホーム画面に戻りましょう。

k5jb24


”jailbreak-log”という名前の本がありますが、これは削除してもOK。

k5jb25


脱獄したKindle PaperwhiteへSSHでアクセス、スクリーンセーバー画像の保存場所を変更する


何の変哲も無いように見えますが、既に脱獄は完了しています。 ここからKindleをUSBNetworkモードに変更して、SSHでログインします。

まずは、USB接続しストレージとして認識されたKindleの直下に”ENABLE_DIAGS”という名前でファイルを作ります(中身は空)。

k5jb10


この状態でKindleを取り外し、本体メニューを使ってKindleを再起動します。
(メニュー > 設定 > メニューとタップし、表示されるリストから再起動を選択)

k5jb26


再起動したKindleはDIAGモードで動作します。

k5jb27

ここから、N) Misc individual diagnostics > U) Utilitiesと進むと、次のような画面が表示されるので、Z) Enable USBnetをタップしましょう。

k5jb28

これでKindleへUSBケーブル経由でネットワーク接続できるようになります(IPアドレスは192.168.15.244)。 
画面下のExitをタップして、一つ前の画面に戻っておきましょう(ここ重要)。

k5jb29

すると、パソコンからはKindleはUSBネットワーク・インタフェースとして見えるようになります。

僕は(X)Ubuntuで作業しているので、端末(ターミナル)からifconfigコマンドを実行するとこんな風に見えます。

ifcnofig usb0
usb0      Link encap:イーサネット  ハードウェアアドレス 42:7e:3e:xx:xx:xx  
          inet6アドレス: fe80::407e:xxxx:xxxx:xxxx/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:20 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:0 (0.0 B)  TXバイト:4744 (4.7 KB)

KindleにSSH接続したいので、usb0インタフェースに適当なIPアドレス(ここでは192.168.15.1)を設定し、

sudo ifconfig usb0 192.168.15.1 netmask 255.255.255.0

pingを送信・応答があることを確認しておきます。

ping 192.168.15.244
PING 192.168.15.244 (192.168.15.244) 56(84) bytes of data.
64 bytes from 192.168.15.244: icmp_req=1 ttl=64 time=1.51 ms
64 bytes from 192.168.15.244: icmp_req=2 ttl=64 time=0.339 ms
64 bytes from 192.168.15.244: icmp_req=3 ttl=64 time=0.347 ms 

Macを使っている方は以前にKindle 4 NTで説明した手順を参考にして下さい。

Kindle 4(Non Touch/Touch)で脱獄無しにスクリーンセーバーを変更する方法

ここでTips。 今回の脱獄方法ではKindleとのネットワーク接続が頻繁に切断・再接続を繰り返すことがあります(少なくともUbuntuでは)。

一度切断するとPC側に設定したIPアドレスが無効になり、放っておくとSSH接続がタイムアウトになってしまいます。
↑(Page up)キーで素早く”sudo ifconfig usb0 192.168.15.1 netmask 255.255.255.0”を再入力できるよう、SSH接続は別の端末(ターミナル)で行いましょう。

話はそれましたが、早速、次のコマンドで端末(ターミナル)からKindleへSSH接続してみましょう。

[email protected]'s password: 

パスワードは mario (何時も思うんですけど何でmarioなんだろ・・・)。 

[email protected]'s password: 
#################################################
#  N O T I C E  *  N O T I C E  *  N O T I C E  # 
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################
[root@[192_168_15_244] root]# 

よーし、ログイン完了。 ここからの作業はできるだけ急ぎましょう。 前述しましたがSSH接続がブツブツ切れることがあるからです。

1)ストレージを書き込み可能な状態に変更。
[root@[192_168_15_244] root]# mntroot rw
system: I mntroot:def:Making root filesystem writeable

2)システム・パーテイションを利用可能(マウント)な状態へ
[root@[192_168_15_244] root]#  mount /dev/mmcblk0p1 /mnt/base-mmc

3)スクリーンセーバー用フォルダを普段パソコンから見える場所(/mnt/us配下)にコピー
[root@[192_168_15_244] root]# cp -pr /mnt/base-mmc/usr/share/blanket/screensaver /mnt/us/screensaver

4)オリジナルのスクリーンセーバー保存先を別の名前に変更(バックアップ)
# mv /mnt/base-mmc/usr/share/blanket/screensaver /mnt/base-mmc/usr/share/blanket/screensaver.org

5)代わりに先ほどコピーしたスクリーンセーバー用フォルダへのリンクを作成
[root@[192_168_15_244] root]# ln -sfn /mnt/us/screensaver /mnt/base-mmc/usr/share/blanket/screensaver 

6)システム・パーテイションのマウントを解除
[root@[192_168_15_244] root]# umount /mnt/base-mmc

7)SSH接続を切断
[root@[192_168_15_244] root]# exit
Connection to 192.168.15.244 closed.

ここまで出来たら、再びKindleの画面に戻り、DIAGモードのトップ・メニュー(最初に表示された画面)に移動します(Exitで一つ前の画面に戻る)。 

本来ならここでD) Exit, Reboot or Disable Diagsと移動するんですが、このままだと、Disable Diagsを実行した際に”device_info.xml not found”と怒られてしまうので、一度だけS) Device Settingsを選択・表示しておきます。

k5jb30

やっと終わり。 トップ・メニューからD) Exit, Reboot or Disable Diagsを選択し、次の画面でD) Disable Diagnosticsをタップ。

k5jb31

もし、この時点でもDisable Diagnosticsに失敗する場合は、一度R) Reboot Systemも試してみましょう。

最後にQ) To continueをタップすればKindleの再起動が始まります。

k5jb32


オリジナルのスクリーンセーバーを用意・作成する


ふう、ここまで長かったですね。 最後に楽しい時間が待っています。 再起動したKindleをパソコンに接続すると、screensaverというフォルダが見えるはずです。

k5jb14

diagnostic_logs、USBnet.xmlは削除して大丈夫。 screensaverフォルダの中には見慣れた画像がありますね。

k5jb15

ここに同じ名前で、758x1024サイズのpng画像を用意すればスクリーンセーバーをカスタマイズできる訳です。

例えば、このあたりから画像ファイルをダウンロードして、

Kindle Wallpapers

Gimpなどの画像加工ソフトでサイズを758x1024に変更してあげます。

k5jb33

もちろん、758x1024のサイズ+モノクロでオリジナルの画像を作ってもOK。

k5jb34

bg_medium_ss00.png~bg_medium_ss19.pngとしてscreensaverフォルダに保存しましょう。

自分だけのKindle Paperwhiteが出来るはずです!

k5jb35


注意事項


この方法で脱獄したKindle Paperwhiteは端末をリセット(工場出荷状態)しても完全には元には戻りません。
また、脱獄した状態では正式なサポートを受けられない可能性もあります。

クリーンな状態(DIAGモードなどが無い状態)になるには次のアップデート(5.3.2以降)まで無理と考えた方が良いでしょう。
※僕は5.3.0、5.3.1で試しましたが、5.3.0から5.3.1へアップデートした際にはクリーン(標準的)な状態に戻りました。

尚、screensaverフォルダを削除するとスクリーンセーバーが表示されなくなります。

元に戻す場合は、SSH接続後、次のコマンドを実行します。

[root@[192_168_15_244] root]# mntroot rw
[root@[192_168_15_244] root]# mount /dev/mmcblk0p1 /mnt/base-mmc
[root@[192_168_15_244] root]# rm  /mnt/base-mmc/usr/share/blanket/screensaver
[root@[192_168_15_244] root]# mv /mnt/base-mmc/usr/share/blanket/screensaver.org /mnt/base-mmc/usr/share/blanket/screensaver
[root@[192_168_15_244] root]# umount /mnt/base-mmc

あくまで自己責任ですが、Kindleをカスタマイズして楽しみたいGeekな人は是非どうぞ。


それでは、より良いKindleライフを!



MAKERS―21世紀の産業革命が始まる
NHK出版 (2012-10-25)
売り上げランキング: 18

世界の最強戦闘機Top45
世界の最強戦闘機Top45
posted with amazlet at 12.12.11
株式会社ユナイテッド・ブックス (2012-10-31)
売り上げランキング: 29

Posted by netbuffalo at 07:00│Comments(0) kindle | モバイルデバイス


コメントする

名前
 
  絵文字
 
 

'); label.html('\ ライブドアブログでは広告のパーソナライズや効果測定のためクッキー(cookie)を使用しています。
\ このバナーを閉じるか閲覧を継続することでクッキーの使用を承認いただいたものとさせていただきます。
\ また、お客様は当社パートナー企業における所定の手続きにより、クッキーの使用を管理することもできます。
\ 詳細はライブドア利用規約をご確認ください。\ '); banner.append(label); var closeButton = $('