一時、ブームを呼び起こした電子Bookですが、だいぶ長く放置して今まで忘れていました。旅行に持っていくこともあったのですが何気に紙の本のほうが良いのです。整理したときに出てきたので少しメンテナンス(hacking)してみました。このKindle 3はARM11なのでDebianは入りそうはないので、もしかしたらOpenWrtならchrootで入るかも知れません。しかし入れたところであまり使いみちなさそうなので、Hackingがどの程度できるのか調べてみました。

USBNET – ストレージモードからUSBNETを使えるようにします。telnetとsshが使えます。sshが使えたところで特に何もできません。HOMEでdelキーを押してから、

;debugOn

次に、delキーをおしてから、

~usbNetwork

とするとUSBNETにが使えるようになります。ちなみに~helpにするとヘルプコマンドがでます。Kindle側は192.168.2.2/24で固定です。

カスタムFont – これが一番役に立つと思います。Kindleのフォントはあまり綺麗でないので入れ替えることができます。

カスタムScreensaver – お気に入りの壁紙をKindleのスクリーンセイバーにできます。

kindlepdfviewer – マルチドキュメントビュワーです。PDFのほかにマンガのCBZファイルを見るのに重宝します。

ほかにもあるのですが特に興味もないのでこのくらいにしておきます。無料のeBookはProject GutenbergかManyBooks.netからmobiフォーマットのファイルをダウンロードします。かなりの蔵書数があるのでこのサイトだけでいいコレクションが出来上がります。

実はKindleはオリジナルファームウェアのほかに中国版というのがあります。

このドゥオカンと呼ばれるファームウェアを入れると中国語(PRC)の音読ができるので中国語の勉強ができます。

Kindle + Simpsons Comics = Kinpsons?

追記:CBR、PDFの変換はcalibreを使うと簡単です。

Kindleとコミックスは相性がよいのでSimpsons Comicsを入れてみました。日本の場合は役人の頭がおかしいのでリンクは貼らずにファイル名だけ記載しておきます。(→NEWS:違法ダウンロード対象拡大に漫画家ら反対 国会内で集会)

  • Simpsons Comics (1-219) (1993-2015) GetComics.INFO

このファイルはCBZ、CBR、PDFの混成ファイルになっています。そこで標準のKindleのビューワーはCBRファイルは読めないのでCBZファイルに変換します。kindlepdfviewerでは試していませんが見れる可能性はありますが、扱いやすいようにCBRとPDFをCBZ形式に変換します。CBRからCBZの変換は次のサイトのスクリプトを使います。

少しスクリプトを変更して次のようにしました。

#!/bin/bash
# Author: Alon Ivtsan
# License: GPL3+

for FILE in *{.cbr,.CBR}
do
[ -e "$FILE" ] || continue
echo Converting $FILE to cbz format.
DIR="${FILE%.*}"
mkdir "$DIR";
unar ./"$FILE" -o "$DIR";
pushd "$DIR";
D2=`ls -d */`;
mv "$D2"/* . && rm -rf "$D2";
[ -f ../"$DIR".cbz ] && rm -f ../"$DIR".cbz
zip -r ../"$DIR".cbz *;
popd;
#zip -r "$DIR".cbz "$DIR";
rm -r "$DIR";
#Remove or comment out this line if you want to keep cbr files
#rm "$FILE";
echo Conversion of $FILE successful!
done

PDFからCBZは次のスクリプトを使います。

Ubuntu Bionicはちょっと問題があってpdftkパッケージがありません。そこで次のサイトを参考にpdftkをインストールします。またImageMagickはPDF変換がデフォルトで禁止されているので次のように修正します。

/etc/ImageMagick-6/policy.xml

<policy domain="coder" rights="read|write" pattern="{PS,PDF,XPS}" />
sudo apt install git default-jdk-headless ant \
    libcommons-lang3-java libbcprov-java

Simpsons Comicsのディレクトリに移動します。

git clone https://gitlab.com/pdftk-java/pdftk.git
cd pdftk
mkdir lib
ln -st lib /usr/share/java/{commons-lang3,bcprov}.jar
ant jar

テスト:

java -jar build/jar/pdftk.jar --help

この新しいツールに合わせてスクリプトを変更します。このスクリプトは1つのPDFのしか処理できないのでバッチ化するといいです。(後から気がついたのですがオリジナルがPDF→CBRですがzipコマンドを使えばPDF→CBZにできます)

#!/bin/bash
#
# PDF2CBR
#
#

PDFTK="pdftk/build/jar/pdftk.jar"

echo "Creating pdf directory..."
mkdir "$1_pages"
cd "$1_pages"

echo "Splitting .pdf file into individual pdfs..."
#pdftk ../$1 burst
java -jar ../$PDFTK ../"$1" burst

echo "Removing PDFtk report"
if [ -e doc_data.txt ]; then
        rm -f doc_data.txt
fi

PAGE_COUNT=`ls | wc -l`
echo "$PAGE_COUNT pdfs generated."

echo "Converting each .pdf page to .jpg..."
for file in *.pdf
do
#       convert -density 150 -quality 100 "$file" "${file%*.pdf}.jpg"
        convert -density 100x100 -quality 100 "$file" "${file%*.pdf}.jpg"
#       convert "$file" "${file%*.pdf}.jpg"
        rm -f "$file"
        let PAGE_COUNT--
        echo "$PAGE_COUNT pages left."
done

#echo "remove .pdf from filenames"
#for file in *.jpg
#do
#       mv "$file" "$file.jpg"
#done

echo "Creating .rar file..."
for file in *.jpg
do
    rar a "$1.rar" "$file"
done

echo "Renaming .rar to .cbr format..."
mv "$1.rar" ../"${1%.pdf}.cbr"

echo "Removing used directory and remaining garbage..."
cd ..
rm -Rf "$1_pages"
if [ -e "$1.cbr" ] ; then
        echo "File $1.cbr generated."
fi

echo "All done! Good reading!"

ファイルをすべてCBZに変換できたところで最後の難関はファイルサイズです。3.9GBあるので最大3GBのKindle 3には入りません。そこでSimpson親父なみのウルトラC的解決をめざします。例のスクリプトを編集します。
cbz4kndle3.sh

#!/bin/bash
# Author: Alon Ivtsan
# License: GPL3+

for FILE in *{.cbz,.CBZ}
do
[ -e "$FILE" ] || continue
echo "Adjusting $FILE for Kindle format."
DIR="${FILE%.*}"
mkdir "$DIR";
unzip ./"$FILE" -d "$DIR";
pushd "$DIR"
#mogrify  -strip -quality 75 -colorspace gray ./*{.jpg,.JPG};
#mogrify  -resize 480x736 -strip -density 50 ./*{.jpg,.JPG};
mogrify  -resize 480x736 -strip ./*{.jpg,.JPG};
[ -f ../"$DIR".cbz ] && rm -f ../"$DIR".cbz
zip -r ../"$DIR".cbz *;
#zip -r "$DIR".cbz "$DIR";
popd;
rm -r "$DIR";
#Remove or comment out this line if you want to keep cbr files
#rm "$FILE";
echo Conversion of $FILE successful!

done

ファイル変換が済んだらKindleをUSBでPCに接続してUSBストレージのルートディレクトリにcomicsディレクトリを作成してファイルをコピーします。
見る場合はShift+P+Dでビューワーを起動します。

Another Reset to Factory Defaults

一旦アップデートするとロールバックできません。デバイスをリセットしても蔵書が消えるだけです。アップデートしたときに間違ったバージョンのjailbreakアプリを入れたために次のエラーがでて復帰ができなくなりました。

Found another jailbreak aborting...
U006

そこでオリジナルのFWを入れてみます。かなり複雑な手順なので次のサイトの通り正確に進めていきます。

リンク先のpastebin pageからkernel-3.0.2 (factory)とmmcblk0p1-3.0.2 (factory)をダウンロードして解凍します。ファイルの拡張子をimgからbinに変えます。

つぎにリンク先の Freescale Advanced Toolkit(ATK)をダウンロードしてWindowsPCにインストールします。大事なことはドライバーの関係上32ビット版のWindowsにインストールします。もしかしたらnokia suiteのシリアルドライバーが使えるかも知れませんが、確証がないので古いXPのPCを引っ張り出してそこにインストールします。起動するときは管理者権限が必要とあったのでアイコンを右クリックして管理者モードで立ち上げます。

つぎにKindleをUSBケーブルでPCにつなぎます。そしてスイッチを30秒程度長押しして、(-)ボリュームボタンを1秒程度押して、スイッチを押さえたままボリュームボタンを離します。するとPCが「ピコッ」と電子音がなるので、デバイスを認識した合図なのでスイッチを離します。

ATKを立ち上げて手順通りに進めます。mmcblk0はサイズが大きいので数時間程度かかります。リカバリーが成功してブートできたらアマゾンのサイトからアップデート用ファイルをダウンロードして次のファイルを順番にアップデートします。

Update_kindle_3.1_B008.bin
Update_kindle_3.3_B008.bin
Update_kindle_3.4_B008.bin
Update_kindle_3.4_3.4.2_B008.bin

アップデートが完了したらjailbreakをインストールしてほかの作業を進めます。

Silent Movie( geekmaster kindle video player)

無声動画のアプリケーションです。動画ファイルをコマンドラインかKual Launcher(/mnt/us/extensions/Videos/menu.json)に登録して使います。無声動画なので字幕付きの動画を変換するといい感じになります。

変換する動画は次のスクリプトで作成します。

ffmpeg_sub.sh mp4ファイル subtextファイル

#!/bin/sh

ffmpeg -i "$1" -vf subtitles="$2" \
     -pix_fmt gray -f rawvideo -s 800x600 -r 7.7  - |./raw2gmv | \
     gzip > "${1%*.mp4}.gmv.gz"

(※)raw2gmvはサイトにあるソースコードをコンパイルして使います。: gcc -o raw2gmv raw2gmv.c

Another eBook reader

標準のeBook readerのほかにFBReader、Cool ReaderとKOReaderがあります。FBReaderはKindle3版は開発が止まっているよなので、Cool Readerをインストールしてみました。cr3-kindle-2012-10-04.zipとcr3runner.zipをダウンロードして、サイトの手順どおりにインストールします。

KOReaderは次のサイトからkoreader-kindle-legacy-arm-kindle-linux-gnueabi-vxxxx.xx.zipをダウンロードしてインストールします。インターフェースが良く出来ていて、ユニークな機能としてNight Modeがあります。

新しいeBook readerがインストールされたところで、ついでにフォントも追加してみました。

このサイトからフォントをダウンロードして/mnt/us/linkfonts/fontsにコピーします。eBookのsettingsでフォントを変更します。

Image viewer

KindleをUSB接続してrootディクトリ(/mnt/us)にpicturesというフォルダーを作ります。そのディレクトリの中にサブフォルダーを作ります。そのフォルダ名がKindleのBook名になります。そのフォルダーに画像(jpg,png,gif)を入れてAlt+Zでライブラリを更新します。USB接続を外してKindleからアクセスします。

参考