1、注意!!!
Jailbreak?なにそれ?という人はお勉強してきてからにしてください。
Kindleが再起不能になって、文鎮以外の使い道がなくなる可能性があります。
以下、あくまで自己責任でお願いします。
なお、以下はLinux環境を前提としています
2、JailbreakとSSH接続〜Linux環境にて〜
①JailBreakをインストール
→DownしてKindleルートフォルダに置く
→USB切って、Setting開いて、Menuボタン→UpdateYourKindleをクリック
cf.ファームウェア3.1でJailbreak起動確認
②usbnetworkをインストール
→成功すると、USB接続した際のドライブのルートにusbnetフォルダができてる
→usbnet/etc/configファイルを編集、以下に修正
・K3_WIFI="true"
・K3_WIFI_SSHD_ONLY="true"
③ssh-keygen -t rsaでsshの鍵を作成
→以下、rootでやらないとエラー
→パスフレーズは入れても入れなくてもOK
→id_rsa.pubが生成されるので、コピーして、authorized_keysとリネーム、usbnet/etc/にコピー
④ssh接続
・Kindle外す
・Kindleで以下のように入力
;debugOn
~usbNetwork
;debugOff
・KindleIPアドレスを調べる:MENUキー>Settings>711
・PCから ssh キンドルのIP としてアクセス(rootで)
e.g. ssh 192.168.11.6
↓
・mntroot rw コマンド実行してファイルシステムを読み書きモードにする
・passwd コマンドでKindleのrootパスワードを好きなパスワードに設定する
↓
authorized_keysはもう削除してしまってもOK
cf.usbnetboot再インストールメモ
・フォルダ削除した場合、フォルダ作らないと再インストール失敗する
/usbnet/etc/terminfo
・リスタート
3、Kindle向けアプリの作成とか
3−1、標準のSDK
SDKダウンロードするのに審査があるってどう言うこと? 開発者舐めてんの?
3−2、C言語プログラミング
KindleはARMプロセッサなので、 同じくARMを使っている手持ちのNAS(TS-110。OSはLinux)にSSH接続して、 gccでコンパイル。そいつをKindleにSSHで転送。 →HelloWorldの動作確認。 クロス開発環境を構築したいが、うまくいかんかった・・・。以下、失敗メモ。
3−3、Java開発
①javaファイルをjavacコマンドでコンパイル ②Kindleに送る ③javaコマンドで実行。パラメータはファイル名から.classを除いたもの →HelloWorld動作確認。 cf.CDC環境
4、その他Kindle情報
4−1、豆知識
・SSH接続ができるようになれば、KindleにgFTPで接続可能 ・Linuxの端末から電子書籍ファイル転送 scp コピー元ファイル root@kindleのIPアドレス:/mnt/us/documents ↓ dbus-send --system /default com.lab126.powerd.resuming int32:1 で更新 ・JailBreakに内蔵のhtop(システムモニタのようなもの)→SSH接続して端末で実行可能 ・kindleから;debugon→~helpで入力できるコマンド一覧(プライベートショートカット) ・netwatchdを落とす(定期的にネットワークの接続を切りに行ってる?のをやめさせる) #/etc/init.d/netwatchd stop ・powerdを落とす(kindleがサスペンドに入るのをやめる。切ってる間は電池を食うようになるはずです) #/etc/init.d/powerd stop ・kindleは通常ランレベル5で起動 rc5.dのS95frameworkがjava環境の立ち上げスクリプト ・java -versionの結果 Product: Sun CDC Java Client phoneme_advanced-Core-1.3-b03 A2Z-SOW2-CR2-20100225-b01 (built on 05/Feb/2011 18:58 PST) Profile: Personal Basis Profile (Security Optional Package) 1.1.2 (Specification 1.1.2) JVM: phoneme_advanced-Core-1.3-b03 A2Z-SOW2-CR2-20100225-b01 (mixed mode) ・cat /proc/cpuinfoの結果 Processor : ARMv6-compatible processor rev 3 (v6l) BogoMIPS : 255.59 (以下略
4−2、Kindle内フォルダ情報
ソフト?:/opt/amazon/ebook/booklet スクリーンセイバー:/opt/amazon/screen_saver データ:/mnt/us/documents その他: /usr/local/bin → java /bin addgroup delgroup kill mount.util-linux rm true adduser deluser kill.procps mountpoint rmdir umount ash df ln mv run-parts umount.util-linux busybox dmesg login netstat sed uname cat echo ls nice sh usleep chgrp false lsmod pidof sleep vi chmod fgrep lsmod.26 pidof.sysvinit stat zcat chown grep mkdir ping stty chrt gunzip mknod pipe_progress su cp gzip mktemp ps sync date hostname more ps.procps tar dd ip mount pwd touch /usr/bin [ dosattr hexdump oil-bugreport telnet [[ dropbear htop openssl test alsamixer du i2cutil pango-querymodules tic amixer dump-and-kill-cvm iconv passwd time aplay dump-stack id pcprofiledump tload arecord env infocmp pgrep toe aserver.sh evtest infotocap picocom top audioServer expr install pkill top.procps awk fc-cache iozone pmap tput basename fc-cat jpegtran pmic tr browserd fc-list kdb pmon traceroute bsdiff fc-match kdb_static pmond tset bspatch find killall powerd tsl bunzip2 flash_erase last powerd_test tty bunzip2.bzip2 flash_eraseall last.sysvinit powertop tzselect bzcat flash_info lastb preload udevinfo bzcat.bzip2 flash_lock less preload_static udevtest bzcmp flash_unlock libol-config printf uflock bzdiff flashcp lipc-daemon process_update uniq bzegrep free lipc-get-prop pronounce unzip bzfgrep free.procps lipc-hash-prop proxy uptime bzgrep ftl_check lipc-probe pwdx uptime.procps bzip2 ftl_format lipc-send-event rdjpgcom utmpdump bzip2recover fusermount lipc-set-prop readlink vmstat bzless gasgauge-info lipc-wait-event realpath w bzmore gdb locale recEvent waitforkey catchsegv gencat logger renice wall chattr getconf logname reset wall.sysvinit ckimage getent lrz reset.ncurses watch clear glib-genmarshal lsattr rsync wc clear.ncurses glib-gettextize lsz say wget cmp glib-mkenums make_class scp which cramfsck gobject-query md5sum seq who crontab gst-feedback mesg showlog whoami curl gst-feedback-0.10 mesg.sysvinit skill wpa_cli curl-config gst-inspect mkcramfs slabtop wpa_passphrase cut gst-inspect-0.10 mkfifo snice wpa_supplicant cvm-dumpstack gst-launch mtd_debug sort wrjpgcom dbclient gst-launch-0.10 mtest sprof xargs dbscp gst-typefind mtrace sqlite3 xd dbus-cleanup-sockets gst-typefind-0.10 nanddump ssh xslt-config dbus-daemon gst-visualise-0.10 nandwrite startx xsltproc dbus-launch gst-xmlinspect nc strace-graph xtrace dbus-monitor gst-xmlinspect-0.10 niceaudio sumtool yes dbus-send gst-xmllaunch notifytph tack zic dbus-uuidgen gst-xmllaunch-0.10 nslookup tail dirname head ntpdate tee /usr/sbin alsactl dtpmgroam ip6tables netwatchd startWan usbserial chat ecu iptables otaup stopWan verbose checkpmond eips iptables-restore pcm syslog-ng volumd chpasswd eiputs iptables-save phd system_state wancontrol chroot eu iptables-xml pppd tinyrot wand closerun ewu jabberwocky pppdump tmd waninfo cmd factory_reset loginfo pppstats ttsd watchdogd crond fbset lsof rdate udevmonitor wifid dm feature mcsd rpcinfo update-passwd zdump dmdld iconvconfig mntroot setdate updatetime zic dropbearmulti idme mntus settz updatewait dropdtr idme_functions modemcmd shipping_mode usbnetwork /sbin adjtimex fsck.e2fsprogs insmod.26 mkfs.ext3.e2fsprogs sfdisk badblocks fsck.ext2 insmod.static mkfs.vfat shutdown blkid fsck.ext2.e2fsprogs iwconfig mklost+found shutdown.sysvinit bmiloader fsck.ext3 iwlist modinfo sln debugfs fsck.ext3.e2fsprogs iwpriv modinfo.26 start-stop-daemon depmod fsck.vfat killall5 modprobe sulogin depmod.26 fsp klogd modprobe.26 sysctl dosfsck generate-modprobe.conf ldconfig mount.fuse sysctl.procps dumpe2fs getty logsave pivot_root sysreboot e2fsck halt losetup poweroff telinit e2fsck.e2fsprogs halt.sysvinit lsmod reboot test_fsp e2image hwclock makedevs reboot.sysvinit tune2fs e2label ifconfig mkdosfs resize2fs udevcontrol eeprom.AR6002 ifdown mke2fs restart udevd fdisk ifup mke2fs.e2fsprogs rmmod udevsettle filefrag init mkfs.ext2 rmmod.26 udevtrigger freeramdisk init.sysvinit mkfs.ext2.e2fsprogs route udhcpc fsck insmod mkfs.ext3 runlevel wmiconfig