Kindle3/3.1でPDF形式ファイルのダウンロードが可能に【Kindle JB】

02 28, 2011
Kindle JailBreakにFreeDownloadハックが登場しています。Kindle Software Version 3.1で動作確認済みですが3.0.xでは未確認です。Kindleが内部ブラウザからダウンロードできるのは拡張子が".azw"、".prc"、".mobi"、".txt"に限定されており、PDF等の他の拡張子をもつファイルはダウンロードすることが出来ませんが、このハックを使えば可能になります。

03Kindle-Aozora


このハックを利用すると、Kindle3の内部ブラウザからオンラインストレージサービスの代表であるDropboxにアクセスしてPDFファイル等をダウンロードできるようになります。まだ使用していない方は非常に便利なサービスですので利用してみてはいかがでしょうか。
Dropbox(このURLから登録しますとわたしと登録した方に無料上限の2GBに250MBの容量が追加できます。どうぞよろしくお願いします。)

注意喚起情報
シリアル接続できない方のKindle JailBreakハックは非常に危険ですのでリスクについて理解されている方のみ読み進めてください。
参考:Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)

インストール方法
まず、Kindle3をyifanlu氏のJailBreakハックを適用しておく必要があります。次に、以下のサイトからFreeDownloadハックのアップデータをダウンロードして、自分の機種にあった".bin"ファイルをKindleのUSBストレージのroot(/mnt/us)において、Settingsから"Update Your Kindle"にて適用します。

MobileRead Forums - FreeDownload hack


FreeDownload設定ファイルの編集
ハック適用後、FreeDownload設定ファイル(freedownload.conf)はUSBストレージのfreedownloadディレクトリ(/mnt/us/freedownload)にありますので必要に応じて編集します。Windowsのテキストエディタで編集する場合は文字コード(UTB-8)や改行コード(LF)に注意してください。次のような設定が可能になっています。変更を適用するにはKindleをリブートする必要がありますので忘れずに。

ALLOWED_EXTENSIONS='pdf epub rtf zip cbz mp3'
→ダウンロード可能にする拡張子です。

DOWNLOAD_DIR=documents/Downloaded
→ダウンロードする先を指定します。指定したディレクトリはダウンロードする前に自分で用意しておきます。

DOWNLOAD_DIR_mp3=music
DOWNLOAD_DIR_aax=audible

→拡張子が"mp3"、"aax"の場合は個別にダウンロード先を指定することができます。

RESUME_DOWNLOADS=yes
→同一ファイル名がある場合に上書きするかどうかを設定します。"no"の場合に上書きします。

#AUTO_UNZIP=yes
→ダウンロードしたファイルがzip形式の場合、自動的に解凍するかを設定します。オンにする場合はコメントアウトの"#"を削除します

#LOG=yes
→ダウンロードのログを残します。freedownload.logに記録されます。


DropboxからPDFをダウンロードする
オンラインストレージのDropboxを利用している方にはその便利な世界が容易に想像つくと思います。Kindle3からも利用できたら便利ではありませんか?さすがにKindle3のローカルストレージと同期することはできませんが、Dropboxに置いたファイルをダウンロードすることなら可能です(ハックなしでもダウンロード可能なファイル種類は上述のとおりです)。

最近、雑誌のスクラップや文庫本のPDF化に凝っていまして、Dropboxに置いて共有できないかを考えてみました。このハックを使うとKindleにもダウンロードして閲覧することができました。

同期したPDFファイルを母艦からDropboxに格納しますが、保管場所はあらかじめ用意されている"Public"フォルダにする必要があります。他の方に公開して共有している場合には注意してください。Share a folderで共有設定したフォルダではダメです。

Kindle3の内部ブラウザを起動し、Enter URLから"http://www.dropbox.com"にアクセスしログインします。このときMobile Modeになっている場合は、Standard Modeに切り替えます。Publicフォルダに移動して、ダウンロードしたいファイルをクリックします。画面下にダウンロードするファイル名が表示されます。

00Kindle-Dropbox


この状態はまだダウンロードが開始しておらず、続いて次のようなハックがない状態と同じエラーメッセージが表示されます。落ち着いて、OKボタンをクリックしてください。ダウンロードが開始します。

01Kindle-Dropbox


HOME画面に戻ると、さきほどダウンロードしたファイルが表示されます。ちなみに、内蔵ブラウザの起動が面倒なのでMobipocket eBook CreaterでDropboxのURLを記述したhtmlをビルドしてKindleのdocumentsディレクトリに入れておくとHOME画面からカンタンにアクセスできて便利になります。

02Kindle-Dropbox


著作権が発生する著作物の自炊に関しての取り扱いについては十分ご注意ください。
参考:アゴラ 池田信夫 - MobileMeもDropboxも違法である

追記:Kindle2ハックでPDFダウンロードが出来た頃との違い
Kindle3はwebkitベースのブラウザに変更され、ダウンロード可能ファイルの設定方法も変更されてしまい、Kindle2のときのようなnetfront.ini設定ファイルの編集では指定できなくなっていました。
スポンサーサイト



Posted in Kindle

[UPDATE1]【速報】Kindle Software Version 3.1が早くもJailBreakされる

02 24, 2011
先日、Kindle3に向けたSoftware Version3.1がリリースされ、一昨日アマゾンからOTA配信を開始する旨の公式アナウンスがあったばかりです。「JailBreak済みKindle3WIFI版のソフトウェアを3.1にアップデートしてみた」でまとめた後にアップデータによるハックは出来ないためスーパーハッカーのJailBreakハックを待つしかないことを確認しところに、昨日、当ブログのコメント欄にJailBreak可能であるとの情報を知らせていただきました。(情報Thx>7942さま)

早速、JailBreakハックを適用してみましたのでご報告いたします。結論から言うと、JailBreakされ以前と同じusbnetworkハックを適用することができました。今のところ問題ありませんが、確認できたことは順次追記していく予定です。

注意喚起情報
シリアル接続できない方のKindle JailBreakハックは非常に危険ですのでリスクについて理解されている方のみ読み進めてください。
参考:Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)


まずJailBreakするためのアップデータをダウンロードします。
使用上の注意はコチラを参照してください。必ず読んでください。
Kindle 3.1 Jailbreak

アップデータは上記フォーラムにもリンクがありますがコチラかダウンロード可能です。
Kindle Jailbreak

解凍して自分の機種にあったインストーラーをKindle3のUSBストレージのroot("/mnt/us/")に置き、Settingsメニューから"Update Your Kindle"を実行します。完了するとKindleのHOME画面が起動します。USBストレージのrootに”ENABLE_HACK_UPDATES”というファイルがあるはずです。このファイルの存在チェックにより適用するアップデータの提供元がAmazonなのかサードパーティなのかをコントロールします。存在する場合はハックを適用するようになります。解除する場合はこのファイルを削除してKindleを再起動します。またハックを適用したい場合は中身はブランクのこれと同じファイル名を用意して再起動するだけです。

今回のJailBreakハックはリリースされたばかりですがバージョンが既に0.1から0.3まで上がっています。徐々に機能が改善されており、今後も上がる可能性がありますので、急がない方はもう少し様子を見たほうが良いかもしれません。

念の為にSoftware Version 3.0.3で適用できていたusbnetworkハックを適用してみたところ、JailBreakハックなしでは失敗していたものの、無事成功し動作しました。
参考:【Kindle3要JB】USB/WIFI接続からrootでログインするハック


参考までにyifanlu氏のkindle-JailBreak 0.3のハックを適用したところのシリアル接続で取得したログです。


#################################################
# 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@kindle root]#
[root@kindle root]#
[root@kindle root]# system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
INIT: Switching to runlevel: 3
system: I K05framework:def:stopping booklet framework
com.lab126.powerd failed to access property state (0x3 lipcErrNoSuchSource)
system: I K06browserd:def:Stopping Browser Daemon
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 18951)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I mntroot:def:Making root filesystem read-only
system: I S50updater:def:updater started
system: I S50updater:def:Waiting for wand to shutdown
system: I S50updater:def:wand shutdown complete
system: I S50updater:def:read bundle line [/mnt/us/update_jailbreak_0.3_k3w_install.bin]
system: I S50updater:def:Applying update /mnt/us/update_jailbreak_0.3_k3w_install.bin
system: I S50updater:def:Size of update: 3751 bytes
system: I S50updater:def:Version before update: 031-S1-055870
system: I _otaupexec:def:processing update /mnt/us/update_jailbreak_0.3_k3w_install.bin
4+0 records in
4+0 records out
system: I _otaupexec:def:version is "FC02"
32+0 records in
32+0 records out
57+1 records in
57+1 records out
system: I _otaupexec:def:update image checksum OK
57+1 records in
57+1 records out
jailbreak.sig
payload.sig
loader.sig
update loader.sig .dat
update loader.sig .dat.sig
system: I mntroot:def:Making root filesystem writeable
ota_install: I def:update::backup Amazon keys, just in case
ota_install: I def:update::create jailbreak init script
ota_install: I def:update::copy the keys
ota_install: I def:update::start script
system: I jailbreak:def:update providers changed, switching keys
system: I mntroot:def:Making root filesystem writeable
ota_install: I def:update::done
system: I _otaupexec:def:update complete
system: I S50updater:def:OTA update successful for /mnt/us/update_jailbreak_0.3_k3w_install.bin
system: I S50updater:def:Version after update: 031-S1-055870
system: I S50updater:def:Deleting OTA bundle file "/mnt/us/update_jailbreak_0.3_k3w_install.bin"
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70cmd:def:starting CMD daemon
system: I S70wifid:def:starting wifid
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 92%
Wed Feb 23 08:57:44 2011 INFO:battery charge: 92%
Starting lipc-daemon: system: I S90tmd:def:Starting Transfer Manager Daemon
system: I S90cron:def:starting crond
system: I S94browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=7064150:boot time before framework starts, in milliseconds
start.sh: starting framework
system: I mntroot:def:Making root filesystem read-only

system: I S96boot_finished:def:Boot finished script received framework booted event
system: I S96boot_finished:fwboot:time=7104190:boot time after framework starts, in milliseconds
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device - rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 031-S1-055870
Sat Feb 5 19:07:33 PST 2011
system: I loginfo:devswota::OTA Kindle 3.1 (~~otaVersion~~)
com.lab126.wan failed to access property localTimeOffset (0x3 lipcErrNoSuchSource)
system: W loginfo:ltofailwandoff:cannot retrieve local time offset - wand not running
com.lab126.powerd failed to set value for property wakeUp (0x8 lipcErrNoSuchProperty)
system: I ckimage:def:skipping kernel check
system: I governor:def:switching to ondemand governor
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
/usr/sbin/tinyrot : Signaling syslog
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 348kb
system: I tinyrot:def:Removing /var/local/log/messages_00000283_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 319kb
system: I tinyrot:def:Removing /var/local/log/messages_00000284_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 291kb
system: I tinyrot:def:Removing /var/local/log/messages_00000285_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 272kb
system: I tinyrot:def:Removing /var/local/log/messages_00000286_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 228kb

----[UPDATE 2011/3/6追記]
Kindle JailBreakハックが0.3から0.4へバージョンアップしています。オフィシャルとカスタムアップデータをユーザ側でコントロール(/mnt/us/ENABLE_HACK_UPDATES)する必要がなくなりました。バージョン0.3適用済みでもそのままバージョン0.4で上書きしても構わないようです。詳しくはコチラを参照してください。参考までに適用ログです。


system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
INIT: Switching to runlevel: 3
system: I K05framework:def:stopping booklet framework
com.lab126.powerd failed to access property state (0x3 lipcErrNoSuchSource)
system: I K06browserd:def:Stopping Browser Daemon
system: I browserd:def:Stopping Browser Daemon
Killed
system: I browserd:def:Starting Browser Daemon
system: I usbnetwork:def:usbnet is already stopped
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 12001)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I mntroot:def:Making root filesystem read-only
system: I S50updater:def:updater started
system: I S50updater:def:Waiting for wand to shutdown
system: I S50updater:def:wand shutdown complete
system: I S50updater:def:read bundle line [/mnt/us/update_jailbreak_0.4_k3w_install.bin]
system: I S50updater:def:Applying update /mnt/us/update_jailbreak_0.4_k3w_install.bin
system: I S50updater:def:Size of update: 3660 bytes
system: I S50updater:def:Version before update: 031-S1-055870
system: I _otaupexec:def:processing update /mnt/us/update_jailbreak_0.4_k3w_install.bin
4+0 records in
4+0 records out
system: I _otaupexec:def:version is "FC02"
32+0 records in
32+0 records out
56+1 records in
56+1 records out
system: I _otaupexec:def:update image checksum OK
56+1 records in
56+1 records out
jailbreak.sig
payload.sig
loader.sig
update loader.sig .dat
update loader.sig .dat.sig
system: E _otaupexec:def:signature verification failed on "/tmp/.update-tmp.13468/update loader.sig .dat"
system: E _otaupexec:def:signature verification failed
system: E S50updater:def:OTA update failed (1)
system: I S50updater:def:Deleting OTA bundle file "/mnt/us/update_jailbreak_0.4_k3w_install.bin"
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70wifid:def:starting wifid
system: I S70cmd:def:starting CMD daemon
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S82usbnet:def:usbnet is disabled
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 76%
Sun Mar 6 20:58:22 2011 INFO:battery charge: 76%
system: I S90cron:def:starting crond
Starting lipc-daemon: system: I S90tmd:def:Starting Transfer Manager Daemon
system: I browserd:def:Stopping Browser Daemon
Killed
system: I S94browserd:def:Starting Browser Daemon
system: I browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=7815080:boot time before framework starts, in milliseconds
start.sh: starting framework
system: I mntroot:def:Making root filesystem read-only

system: I S96boot_finished:def:Boot finished script received framework booted event
system: I S96boot_finished:fwboot:time=7852200:boot time after framework starts, in milliseconds
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device - rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 031-S1-055870
Sat Feb 5 19:07:33 PST 2011
system: I loginfo:devswota::OTA Kindle 3.1 (~~otaVersion~~)
com.lab126.wan failed to access property localTimeOffset (0x3 lipcErrNoSuchSource)
system: W loginfo:ltofailwandoff:cannot retrieve local time offset - wand not running
com.lab126.powerd failed to set value for property wakeUp (0x8 lipcErrNoSuchProperty)
system: I ckimage:def:skipping kernel check
system: I governor:def:switching to ondemand governor
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
/usr/sbin/tinyrot : Signaling syslog
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 555kb
Posted in Kindle

InstapaperのKindle用mobi形式ファイルの自動配信サービスが神な件

02 11, 2011
InstapaperのKindle用mobi形式ファイルの自動配信サービスが神な件 | 代助のブログ

あたらしいブログへ引っ越しました。こちらへどうぞ。

Posted in Kindle

JailBreak済みKindle3WIFI版のソフトウェアを3.1にアップデートしてみた

02 10, 2011
Kindle3にEarly Preview版のSoftware Version3.1の配信が開始されましたので早速ダウンロードしてアップデートしました。Twitter上では「気がついたらアップデートしていた」というツイートも見受けられたのでOTA配信も開始されている可能性があります。

Amazonのリリースによれば、今回の主なアップデートは以下のような内容を含んでいます。
・Public Note
・Real Page Number(1,2ヶ月後)
・Before You Go
・New Newspaper and Magazine Layout

この辺の詳しい説明はじっくりKimdle3を使い込んでいる方にお任せするとして、わたしはJailbreakでハックしているKindle3WIFIの3.1へのアップデートについて情報共有させていただきます。

ここから先はKindleを普通に使っている方の参考にはなりません。

注意喚起情報
JailBreakハックしてシリアル接続できない方は、今回のアップデートを見送った方が無難のように思います。海外のKindle Forumサイトではアップデートはできたがアンインストールできないなどの事象が報告されていますし、他にどの様な影響があるか不明です。リスクについて理解されている方のみ読み進めてください。

Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)


アップデート前のわたしのKindle3の状態
今回アップデートしたのはKindle3WIFIのソフトウェアバージョン3.0.3です。JailBreakハックのうえusbnetworkのアップデータを適用していました。また、多看(Duokan)をインストールしている状態です。あとは、シリアル接続によりTerminal経由で直接、"/opt/amazon/screen_saver/600x800/"にあるスクリーンセーバー画像を自分で用意した画像に差し替えていました。

アップデートの失敗
WIFI版専用アップデータをダウンロードし、Kindle3のUSBストレージにコピー。KindleからSettings>Update Your Kindleを実行します。今回のアップデートは2回に分けて適用されますが、"stage 1 of 2"で失敗してしまいました。レンガになることなく、3.0.3のままで通常起動はしますので、3.1にアップデートできない状態です。

02kindle3-310.jpg


03kindle3-310.jpg


アップデートで失敗する原因
通常のKindleとの相違点をひとつづつ取り除きながら、Update Your Kindleを繰り返します。まずDuokanを外しても症状は変わらず。次にusbnetworkハックをアンインストールしても同じく失敗しました。シリアル接続してアップデートのログをとっていましたので、確認したところ(最初からログで原因を分析すればよかったのですが面倒なので想像の範囲で原因を推測していました)どうやら適用したハックが原因ではなかったようです。

ログを見ると必ずつぎの部分で失敗し、その後、通常の3.0.3のブートが開始されています。

ota_install: I def:patch:patchinfo="/opt/amazon/screen_saver/600x800/23_feedback_600.gif":patching file
bspatch: /opt/amazon/screen_saver/600x800/23_feedback_600.gif: No such file or directory
ota_install: C def:patch:patchinfo="/opt/amazon/screen_saver/600x800/23_feedback_600.gif":patch failure
system: E otaup:def:image update failed
webupdate: I def:webupdate::attempting to remove update file : update-06-536720111-558700031.bin
webupdate: C def:webupdate::failed to apply update : update-06-536720111-558700031.bin


つまり、Terminalから直接スクリーンセーバーの画像を差し替えていたことが原因でした。シリアル接続経由でオリジナルのスクリーンセーバーの画像を全て戻して再度実行したところうまくいきました。ログを確認するとこの画像のみの差し替えパッチなので全てを戻さなくても正常に完了したと思います。

01kindle3-310.jpg


アップデートが完了すると、Settings画面から右下のバージョンが"3.1(558700031)"となっていることが確認できます。最後にはJailBreakハックだけ適用した状態でアップデートが完了したことになりましたが、レンガになることなく成功しました。

今回、原因となった画像はKindle Software Version3.0.3から若干変更が加えられていました。Kindle3はWIFI版、3G-US版、3G-UK版と3種類ありますが、この画像にはユーザからのフィードバック送信先としてメールアドレスが記載されています。従来は一つのアドレスでしたが、Version3.1からはUKカスタマー専用のメールアドレスが設置されたようで、この影響で書き換えるべきファイルが見当たらずエラーになっていたということになります。


Version3.0.3の"23_feedback_600.gif"
23_feedback_600_303.jpg


Version3.1の"23_feedback_600.gif"
23_feedback_600_310.jpg


これは完全に推測になりますが、おそらく多看(Duokan)やusbnetworkが入った状態でも3.1にはあげること自体はできた可能性が高いです。最初からログを見てれば、いきなりDuokanやusbnetworkに手をつけることもなかったはずですが・・・無論、その後どのような不具合が生じるのかはわかりません。

今後、Kindle Software Version 3.1のレビューやJailBreak適合状況など確認していきたいと思います。
Posted in Kindle

[UPDATE2]多看 (Duokan) が Kindle3に魔法をかける

11 11, 2010
多看といわれるKindle2/3で動作する中国語OSを試してみました。名前だけは以前から知っていたのですが単純にKindle3を中国語化するハックという程度の認識しかありませんでしたが、実際使用してみるととにかくすごい機能が盛りだくさんでした。チャイナパワーはスゴイですね。

多看(Duokan) for Kindle3 のホーム画面
duokan02.jpg


読み方はわかりませんが、英語では"Duokan"なので、「ドゥオカン」と発音するのでしょうか。サイトが中国語のために機能や不具合、アップデート内容、豊富な機能を理解するのなかなか難しいですが、英語に翻訳してくれているサイトもあるのでそちらを参考にできます。インストールは簡単にできますがアップデータを使ったハックのため、不具合が生じて文鎮化する可能性もありますので興味のある方は下記のサイトを参考にして自己責任で試してみてください。

このハックはNiLuJe氏らの実績あるハックと異なり環境構築や文鎮化防止対策の程度がはっきりしません。いまのところアンインストーラーも実装されていないようでリスクは高いです(起動ログの下に追記)。シリアル接続環境がない方、あるいはusbNetworkハックでコマンドラインから修正することができない方は自重された方がよいと思います。

オフィシャルサイト:http://www.duokan.com
英語の翻訳サイト:Duokan is now available with an english GUI
英語のFAQ:Duokan FAQ

メニューは英語表記に変更が可能ですから、英語に変更します。驚いた機能は表示可能なフォーマットにEPUB、DOC形式が追加されていたこと。実際に試してみましたが、画像データがややポジションがズレる場所もありますが、内容を確認する程度なら全く問題ありませんでした。フォントサイズはもちろん、濃さも調節可能です。中国語なら読み上げも可能です。日本語TTSを入れてしまえば日本語での読み上げも可能なのかもしれません。

もうひとつ。PDFファイルの余白トリミングが可能なことです。電子書籍への関心の高まりから、書籍を裁断してスキャンして電子ブックリーダーに取り込む、いわゆる「自炊」する方が増えているようですが、Kindle3で表示させる場合は、原稿の余白のトリミングが課題だったりします。

キーボードの"Aa"を押した際のメニュー
duokan09.jpg


ターゲットマークを左上→右下の順番で決定してトリミングできる
duokan10.jpg


インストールするとノーマルのKindleとのデュアルブートが可能になります。中国語でとっつきにくいのですがこれはアツイですね。スクリーンセーバーやフォントの変更も可能なようですし、いろいろといじりがいありそうです。参考までに本体をリブートしてから多看を起動した際のログは以下のとおりです。

----begin----
Welcome to Kindle!

kindle login: root
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@kindle root]# reboot
WARNING: could not determine runlevel - doing soft reboot
(it's better to use shutdown instead of reboot from the command line)

Broadcast message from root (ttymxc/0) (Wed Nov 10 10:54:17 2010):

The system is going down for reboot NOW!

Broadcast message from root (ttymxc/0) (Wed Nov 10 10:54:17 2010):

The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signasystem: I K04framework:def:stopping booklet framework
system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
system: I K06browserd:def:Stopping Browser Daemon
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K19userstore:def:Found BOOTUP flag file
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 10926)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I K90video:def:stopping eInk HAL lifeguard
system: I K98sdtime_stop:sdtime:time=6970:shutdown time in milliseconds
system: I K99syslog-ng:def:stopping syslog-ng
system: I mntroot:def:Making root filesystem read-only
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device - rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 111-shasta0.7-053672
Sun Oct 10 13:48:23 PDT 2010
system: I loginfo:devswota::OTA Kindle 3.0.3 (~~otaVersion~~)
lipc-get-prop[12130]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: Co)
lipc-get-prop[12130]: C def:dbusi::Failed to init dbus
lipc-get-prop[12130]: E def:open::Failed to open LIPC
com.lab126.wan failed to open lipc for localTimeOffset event
system: E loginfo:ltofailunknowerror:cannot retrieve local time offset - unknown error
/usr/sbin/tinyrot : Signaling syslog
killall: syslog-ng: no process killed
system: W tinyrot:def:Failed to HUP syslog
killall: syslog-ng: no process killed
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 148kb

Rebooting in 1 second...

Restarting system.
EXT3-fs error (device mmcblk0p1): ext3_find_entry: reading directory #12184 offset 0
EXT3-fs error (device mmcblk0p1): ext3_find_entry: reading directory #12184 offset 1


U-Boot 1.3.0-rc3-lab126 (Jul 31 2010 - 01:08:40)

CPU: Freescale i.MX35 at 532 MHz
Board: MX35 Luigi [ POR]
WDOG_WCR = 0xff31
WDOG_WMCR = 0x0
Board Id: SP1B000000000000
S/N: B008XXXXXXXXXXXX
DRAM: 256 MB
Using default environment

In: serial
Out: serial
Err: serial
No ethernet found.
i.MX35 CPU board version 2.0
Net: No ethernet found.
Hit any key to stop autoboot: 0
## Booting image at 87f40400 ...
Image Name: Linux-2.6.26-rt-lab126
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2150840 Bytes = 2.1 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux................................................................................................
boot: W def:rbt:reset=watchdog:
2.6.26-rt-lab126 #5 Sun Oct 10 13:46:42 PDT 2010 armv6l
INFO:Using default keypad setting. (not passing "kb_rev" to module)
INFO:Loaded module /lib/modules/mxc_keyb.ko (22508 bytes)
Press [ENTER] for recovery menu... 0 /INFO:Partition table verified for /dev/mmcblk0
INFO:Checking for updates... (auto-pilot mode)
/dev/mmcblk0p4:
CHS=4/16/101575 size=3328409600 bytes
flag type first last lba first lba size
Partition p1:
0x00 0x0b 16 16 6500784
CHS: 0/1/1 -
Partition p2:
Partition p3:
Partition p4:
INFO:Setup loop device /dev/loop0 for /dev/mmcblk0p4 + 8192
INFO:No update*.bin found; no update needed.
INFO:no updates found.
BOOTING DEFAULT.
argc == 9
argv[0]: "kinit"
argv[1]: "console=ttymxc0,115200"
argv[2]: "mem=256M"
argv[3]: "panic=10"
argv[4]: "root=/dev/mmcblk0p1"
argv[5]: "ro"
argv[6]: "ip=none"
argv[7]: "quiet"
argv[8]: "lpj=2555904"
Running ipconfig
argc == 4
argv[0]: "IP-Config"
argv[1]: "-i"
argv[2]: "Linux kinit"
argv[3]: "ip=none"
IP-Config: no devices to configure
kinit: do_mounts
kinit: name_to_dev_t(/dev/mmcblk0p1) = dev(179,1)
kinit: root_dev = dev(179,1)
kinit: /dev/root appears to be a ext3 filesystem
kinit: trying to mount /dev/root on /root with type ext3
kinit: Mounted root (ext3 filesystem) readonly.
Checking for init: /sbin/init
Checking for init: /bin/init
Checking for init: /etc/init
Checking for init: /sbin/init.sysvinit
INIT: version 2.86 booting
system: I rcS:def:starting /etc/rcS.d/S02kdb
system: I S02kdb:def:Setting boot device to mmcblk0
kdb set: 'system/driver/filesystem/DEV_ROOT'
system: I rcS:def:starting /etc/rcS.d/S03udev
system: I S03udev:def:setting up virtual fs for hotplug event handling
system: I S03udev:def:starting the hotplug events dispatcher
system: I S03udev:def:synthesizing initial hotplug events
lipc-send-event[380]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: No)
lipc-send-event[380]: C def:dbusi::Failed to init dbus
lipc-send-event[380]: E def:open::Failed to open LIPC
lipc-send-event[380]: E def:fail:source=com.lab126.hal, event=usbPlugIn:Sending event failed
lipc-send-event[481]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: No)
lipc-send-event[481]: C def:dbusi::Failed to init dbus
lipc-send-event[481]: E def:open::Failed to open LIPC
lipc-send-event[481]: E def:fail:source=com.lab126.hal, event=audioHS:Sending event failed
system: I rcS:def:starting /etc/rcS.d/S04rootfsresize
system: I S04rootfsresize:def:No rootfs on /dev/mmcblk0p1 resizing needed
system: I rcS:def:starting /etc/rcS.d/S10filesystems
system: I rcS:def:starting /etc/rcS.d/S10hostname
system: I rcS:def:starting /etc/rcS.d/S10network
system: I S10hostname:def:setting device hostname
system: I S10filesystems:def:mounting filesystems
system: I S10network:def:initializing network configuration
system: I S10network:def:Installed Firewall
system: I rcS:def:starting /etc/rcS.d/S11chpriority
system: I rcS:def:starting /etc/rcS.d/S11video
Unknown HZ value! (76) Assume 100.
system: W S11chpriority:def:Cannot set priority for IRQ-7
system: I S11video:def:initializing eInk HAL for system use
system: I S11video:def:eink_debug=0
system: I S11video:def:Controller set to broads
system: I rcS:def:starting /etc/rcS.d/S20syslog-ng
system: I S20syslog-ng:def:starting syslog-ng
system: I rcS:def:starting /etc/rcS.d/S21init_time
system: I S21init_time:initboot:time=17220:boot time after init in milliseconds
system: I rcS:def:starting /etc/rcS.d/S45modules
system: I S45modules:def:loading module mwan
system: I S45modules:def:loading module g_file_storage
system: I S45modules:def:loading module fuse
system: I S45modules:def:loading module uinput
system: I S45modules:def:loading module mxc_keyb
system: I S45modules:def:loading module fiveway
system: I S45modules:def:loading module volume
system: I rcS:def:starting /etc/rcS.d/S50system
mount: mount point /proc/bus/usb does not exist
system: I rcS:def:starting /etc/rcS.d/S55scroll
system: I S55scroll:def:skipping; no luigi-based work to do here
system: I rcS:def:starting /etc/rcS.d/S70ethernet
system: I rcS:def:starting /etc/rcS.d/S70userstore
system: I S70ethernet:def:not enet
system: I S70ethernet:def:not usbnet
system: I S70userstore:def:Found SHUTDOWN flag file
system: I rcS:def:starting /etc/rcS.d/S79switch
Show menu
2
Run Kindle System
system: I mntroot:def:Making root filesystem writeable
mv: cannot rename '/etc/rc5.d/S96rundk': No such file or directory
system: I mntroot:def:Making root filesystem read-only
Run Prog
Press a Key . Key Code : 16 .
Run DK program
system: I mntroot:def:Making root filesystem writeable
system: I mntroot:def:Making root filesystem read-only
system: I rcS:def:starting /etc/rcS.d/S90video
system: I S90video:def:initializing eInk HAL for rootfs use
INIT: Entering runlevel: 2
system: I lifeguard:def:starting eInk HAL lifeguard
system: I S40diags:def:not starting Diagnostic Services
system: I S40diags:def:/mnt/base-us/ENABLE_DIAGS does not exist, forcing diagnostic disable
system: I S50battcheck:def:running
Wed Nov 10 10:55:48 2010 INFO:battery voltage: 4127 mV
Wed Nov 10 10:55:48 2010 INFO:battery charge: 97%
system: I S50battcheck:def:current voltage = 4127mV
Wed Nov 10 10:55:48 2010 INFO:battery charge: 97%
Wed Nov 10 10:55:48 2010 INFO:battery voltage: 4127 mV
Wed Nov 10 10:55:48 2010 INFO:battery current: -113 mA
system: I S50battcheck:def:gasgauge capacity=97% volts=4127 mV current=-113 mA
system: I S50battcheck:def:Waiting for 3460mV or 4%
system: I S50battcheck:def:battery sufficient, booting to normal runlevel
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70cmd:def:starting CMD daemon
system: I S70wifid:def:starting wifid
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 97%
Wed Nov 10 10:55:59 2010 INFO:battery charge: 97%
system: I S90tmd:def:Starting Transfer Manager Daemon
system: I S90cron:def:starting crond
Starting lipc-daemon: wlan0 (WE) : Wireless Event too big (33)
system: I S94browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
Update DK
cp: cannot remove '/etc/init.d/usb_switch': Read-only file system
system: I S95framework:def:logging reset type: soft
Run DK
Run DK
rm: cannot remove '/dev/viewinfodat1.txt': No such file or directory
rm: cannot remove '/dev/viewinfodat.txt': No such file or directory
do while /DK_System/ebook
killall: ebook: no process killed
start.sh: starting framework
1
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=46620:boot time before framework starts, in milliseconds
system: I mntroot:def:Making root filesystem writeable
system: I S99usbnet:def:usbnet is disabled
system: I mntroot:def:Making root filesystem read-only

DebugOff
switch usb state
use usb as storage
system: I mntroot:def:Making root filesystem read-only
sh: 0: unknown operand



Welcome to Kindle!

kindle login: system: I framework:def:stopping booklet framework
system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
/mnt/base-us/DK_System/system/key/keymap.k
rm: cannot remove '/mnt/base-us/DK_Mbp/download.dat': No such file or directory
REGISTER ????ニエ??
REGISTER ???????
Play thread running...
he chen prepare to out
Synth thread begin wait...
sh: syntax error: "(" unexpected
program: No such file or directory
program: No such file or directory
rm: cannot remove '/dev/activeevent': No such file or directory
rm: cannot remove '/dev/usbevent': No such file or directory
----end----

アンインストール方法について
中国語サイトが理解出来ないため、英語FAQでアンインストール方法を確認しますと、USBストレージにある"DK_System"、"DK_Documents"、"DK_Pictures"を削除してKindleをリブートするだけとあります。しかし、インストーラーを見ると、"/etc/rcS.d"、"/etc/rc5.d/"以下に起動スクリプトを追加していますので、クリーン・アンインストールするには、これらのディレクトリにある"S79switch"、"s96rundk"、"rundk.sh"、"S95dkupdate"も削除しなければなりません。これはシリアル接続環境、またはJailBreakしてusbNetworkハックを使うしかありません。

これらの起動スクリプトの中身をすべて確認したわけではありませんが、USBストレージにあるDuokan関連ディレクトリ以下のファイルだけを参照しているようですから、実質的にはこれらのスクリプトが残ってしまっても、関連ファイルが削除されていますのでKindle起動時には呼ばれても空回りするだけのため、問題が起こることはまずないと思います。もちろん、Kindle Software Versionのアップデート等で構成が変更になると影響が出る可能性は十分考えられますが。


動作環境
Kindle3 WIFI Software Version 3.0.3
Jailbreak Version 0.4 by NiLuJe
Duokan for Kindle3 Version 0.5.13.6613 (2010/11/06)

続きを読む »

Posted in Kindle
プロフィール

hondamarlboro

Author:hondamarlboro
ガジェット好きの普通のサラリーマン。持つことでテンションは最高潮となり、結局使いこなせずお蔵入りになることがしばしば。当ブログはコチラに引っ越しました。

最近のつぶやき

Twitter < > Reload

最新記事
最新コメント
カテゴリ
月別アーカイブ
RSS