幾個關於 Kindle 3 firmware on Kindle DXG 的 Hack
Posted by tjwei on 星期一, 9月 12, 2011 with 4 comments
之前由 Yifan Lu 發布的 Kindle 3.X updater 實現了讓 Kindle DXG/2 也能使用 Kindle 3.x 的 firmware。這應該是很多人的願望,對一般使用者而言,也遠比我之前的 kindle 3 Open Source on DXG 實用。
但是有三個問題:
2 的問題,由於我之前沒裝 3.x 的軟體,所以只是根據一些討論串認定是 DRM 或者是 API 的問題。這看起來是相當合理的猜測。但後來從 mobileread 的討論串中,了解到一件很詭異的是,就是 KindleNote 這個 homebrew 在 2.5.8 的 DXG 可執行,在 K3.1+ 也可執行,只有在 DXG with 3.1+ firmware 才不能執行。這代表了有除了 API 和 DRM 之外的原因。(雖然 kindle active content 的 DRM 不用費什麼力氣就能解開。)
最後發現是硬體設定檔的問題,
然後在你的 kindle 裡
但是有三個問題:
- 3.x updater 並沒有更新 linux kernel 的版本,所以事實上只是讓 2.5.8 的 kernel 跑 3.x 的 user space 程式。所以會造成 powerd 等問題。
- Active contents 會失效。
- 無法 dual-boot 回 2.5.8。
2 的問題,由於我之前沒裝 3.x 的軟體,所以只是根據一些討論串認定是 DRM 或者是 API 的問題。這看起來是相當合理的猜測。但後來從 mobileread 的討論串中,了解到一件很詭異的是,就是 KindleNote 這個 homebrew 在 2.5.8 的 DXG 可執行,在 K3.1+ 也可執行,只有在 DXG with 3.1+ firmware 才不能執行。這代表了有除了 API 和 DRM 之外的原因。(雖然 kindle active content 的 DRM 不用費什麼力氣就能解開。)
最後發現是硬體設定檔的問題,
- 先 unzip K3 的 KindleDeviceServicesShasta-1.0.jar 和 DXG 的 KindleDeviceServicesTN-1.0.jar。
- 把 DXG 的 /res/* 和 DeviceCapabilityAdapterImpl$1.class copy 過來,覆蓋 K3 的相對應檔案。
- 把 DXG 的 maranda.keyboard.json 覆蓋 K3 的 shasta.keyboard.json。
- 然後你會需要一個 hex editor,將 /com/amazon/kindle/kindlet/internal/portability/b/d.class 中某個 A3 或者 A1 開頭的字串換成 A3P5ROKL5A1OLE。
- A3P5ROKL5A1OLE 和 miranda 代表 DXG,如果是其他的機器,則有相對應的 json 和機器型號。 可以 google "Device Type (device_compatibility_browse)" 找找看。
- 最後再把 KindleDeviceServicesShasta-1.0.jar zip 回去即可。
然後在你的 kindle 裡
mkdir -p /mnt/k3後執行下列指令:
mount -o loop,noatime /mnt/us/rootfs.img /mnt/k3 mount -o bind /proc /mnt/k3/proc mount -o bind /sys /mnt/k3/sys mount -o bind /dev /mnt/k3/dev mount -o bind /dev/pts /mnt/k3/dev/pts mount -o bind /mnt/rwfs /mnt/k3/mnt/rwfs mount -o bind /dev/shm /mnt/k3/dev/shm mount -o bind /var /mnt/k3/var mount -o bind /var/local /mnt/k3/var/local mount -o bind /mnt/base-us /mnt/k3/mnt/base-us mount -o bind /mnt/us /mnt/k3/mnt/us
# Terminate K2 /etc/init.d/framework stop pmon stop all sleep 5 /etc/init.d/cron stop /etc/init.d/pmond stop /etc/init.d/lipc-daemon stop /etc/init.d/dbus stop chroot /mnt/k3 # You are now chrooted
ln -sf /etc/kdb.src/mario /etc/kdb
# Simulate init 5 /etc/rc5.d/S30network start /etc/rc5.d/S50wan start /etc/rc5.d/S60dbus start /etc/rc5.d/S65pmond start /etc/rc5.d/S66powerd start /etc/rc5.d/S70cmd start /etc/rc5.d/S70wand start /etc/rc5.d/S75phd start /etc/rc5.d/S76mcsd start /etc/rc5.d/S80volumd start /etc/rc5.d/S85audio start /etc/rc5.d/S87ttsd start /etc/rc5.d/S90cron start /etc/rc5.d/S90lipc-daemon start /etc/rc5.d/S90power start /etc/rc5.d/S90tmd start /etc/rc5.d/S91testd start /etc/rc5.d/S94browserd start /etc/rc5.d/S95framework start /etc/rc5.d/S96boot_finished start /etc/rc5.d/S98governor start
Categories: kindle
4 意見:
您好,已看過您的網頁介紹,但因為不是資工背景,所以有些不是看得很懂。我現在用的Kindle DX已安裝多看及中文字型,唯一的缺憾是瀏覽器無法輸入中文,想請問這個問題現在是否已解決?是否安裝Kindle 3的系統再安裝配合Kindle 3的輸入法即可在Kindle DX上的瀏覽器輸入中文?謝謝您。
我沒有試過,但是用 yifan lu 的方法裝上 kindle 3 然後裝 kindle 3 的中文輸入法,應該可以在瀏覽器輸入中文。
你好,岩岩刷了3.2.1
但我是新手,
完全不明白怎樣patch kernel等等解決方法...
請問是否需要一些額外的工具?
希望網主能夠弄一個詳細教學,謝謝
如果你已經刷了 3.2.1,表示你幾經用了 yifanlu patch 過的 kernel 了。
張貼留言