日版Kindle Paperwhite 第二代中文菜单解锁 免越狱补丁更新 kindle paperwhite2

日版Kindle Paperwhite 第二代中文菜单解锁 免越狱补丁更新

小雨喵 于 2013-11-23 04:44 发表在 [For Kindle] [复制链接] [只看楼主] [打印] [上一主题] [下一主题]



IMG_20131123_044246.jpg (504.88 KB, 下载次数: 10)

下载附件保存到相册

2013-11-23 04:43 上传

【附件原图EXIF信息】

没有图片EXIF信息

首先上一张图以证明汉化成功,下面我将慢慢说汉化原理和步骤。

其实,日版的KPW2在出厂时就已经自带了中文语言的全部jar包。一开始我不这么认为,我认为说可能日本专门将中文的东西删除,但是奇怪的是它又能看中文。这次日本和美国版本的5.4.2的更新文件一样让我看到了玄机,一定是某个配置文件的问题。

通过Mobileread论坛NiLuJe大神的kindletool解包了5.4.2的更新文件后发现了玄机。

/opt/amazon/ 文件夹下面有三个坑爹的配置文件: data.graylist、data.whitelist、locale.blacklist

data.graylist里面只有中文和日语的字体,data.whitelist相当于文件白名单,locale.blacklist我姑且将它称为语言黑名单。╮(╯▽╰)╭

/opt/amazon/data.graylist 文件灰名单,里面的文件在设备重置后会被删除。

具体的理由见:/etc/upstart/shutdown_special 这个文件180~181行: # delete files from graylist if it's a factory reset

if [ $SHUTDOWN_MODE = $SHUTDOWN_MODE_FACTORY_RESET ]; then

GRAYLIST=/opt/amazon/data.graylist

f_log I $LOG_NAME "userstore pruning - deleting gray list "

cat $GRAYLIST | xargs rm -rf

RES=$?

if [ $RES -ne 0 ]; then

f_log C $LOG_NAME "userstore pruning - deleting gray list unsuccessful"

fi

fi

f_log I $LOG_NAME "userstore pruning complete"

复制代码

/opt/amazon/data.whitelist 文件白名单,按照文件参数的定义,在白名单里面的东西不会被删除,白名单之外的全部被删除,但是奇怪的是,越狱后此功能失效。

具体见:/etc/upstart/shutdown_special 这个文件160~177行# remove files in userstore, except ones whitelisted

ss_prune_userstore()

{

WHITELIST=/opt/amazon/data.whitelist

# form the whitelist argument for the find command

FIND_WHITELIST=$(cat $WHITELIST |sed 's@(.*)@-a ! -path 1@g' | xargs)

f_log I $LOG_NAME "userstore pruning begin"

# delete all files in userstore not specified in whitelist

cd /mnt/us

find . ( -name "*" -o -name ".*" ) -a ! -name "." $FIND_WHITELIST

-depth -exec rm -rf '{}';

RES=$?

if [ $RES -ne 0 ]; then

f_log C $LOG_NAME "userstore pruning failed"

return $RES

fi

复制代码

之所以不能显示中文其实就是locale.blacklist的问题,它将禁止显示的语言的配置文件清单写于此文件中。默认的内容如下:/opt/amazon/ebook/config/locales/zh.conf

/opt/amazon/ebook/config/locales/zh.properties

复制代码

所以,我一开始的想法就是说,将这个黑名单清空就好。

于是我修改好文件,写好patch的shell文件,用kindletool打包为ota2类型的更新包,然后更新。

结果是中文依旧不能显示。

于是我试着将locale.blacklist里面的内容改为ja.conf 也就是日语,然后依旧patch。

结果,日语和中文一起没了。

于是我可以这么大胆地假设,kindle paperwhite 2 日版型号的都需要在启动的时候读取这个黑名单,然后删去黑名单里面的语言文件。

于是我试着将升级镜像里面的zh.conf和zh.properties通过patch移动到默认路径,同时将locale.blacklist变为日语。

更新完重启后,kindle paperwhite 2 日版终于可以有中文选项了。

现在楼主正在重置设备试着将系统还原到最初状态,没中文,没越狱的状态。然后从越狱开始弄。一会会有具体的方法和步骤,大家耐心等待。

昨天由于时间太晚和弄出中文来过于激动,今天通过查找我们终于找到了Kindle Paperwhite 2 日版原版不能显示中文的原因,在Kindle系统的/etc/upstart 目录下面有一个名为langpicker.conf的配置脚本,下面首先我们贴出这个脚本的内容:# start language picker after blanket has loaded the langpicker module

start on x_setup_ready and blanket_loaded_langpicker

stop on stopping x

emits langpicker_ready

env LOCALE_FILE=/var/local/system/locale

env FIRST_BOOT_FILE=/var/local/system/factory_fresh

env BLACKLIST=/opt/amazon/locale.blacklist

task

script

source /etc/upstart/env

source /etc/upstart/functions

if [ "$(devcap-get-feature -a frontlight)" -eq "1" ]; then

lipc-set-prop com.lab126.powerd flStartup 1

fi

if [ -e $BLACKLIST ]; then

mntroot rw || true

dsn=`cat /proc/usid | xargs echo -n`

case $dsn in

B05A*|B0F2* )

# delete the locals specified in black list

cat $BLACKLIST | xargs rm -rf

RES=$?

if [ $RES -ne 0 ]; then

f_log C locale prune "Failure while removing the blacklisted locales"

else

f_log I locale prune "Successfully removed the blacklisted locales"

rm -rf $BLACKLIST

fi

;;

* )

rm -rf $BLACKLIST

;;

esac

mntroot ro || true

fi

# see if we need to pick a language.

# if the locale exists, then just exit

if [ -e $LOCALE_FILE ]; then

LANG=`awk -F'=' '/LANG/{print $2}' $LOCALE_FILE`

LC_ALL=`awk -F'=' '/LC_ALL/{print $2}' $LOCALE_FILE`

f_log I locale read "lang=$LANG,lc_all=$LC_ALL" "Retrieved Language"

f_emit langpicker_ready

exit 0

fi

# Did not find first boot file. This means that the device is booting in the factory line

# before the device has ever entered shipping mode. The lang picker should not be shown in this case.

# Just set the locale to en-US.

if [ ! -e $FIRST_BOOT_FILE ]; then

# send the event to langpicker module to install the language

lipc-send-event com.lab126.blanket.langpicker changeLocale -s "en-US"

# wait for the localeChange event

lipc-wait-event com.lab126.locale localeChange

f_emit langpicker_ready

exit 0

fi

# N.B. - only if we seem to have a valid input device.

# the last input device in /etc/xorg.conf.* is the pointer, which is what we need.

# we get "/dev/input/event3" - the extra eval is to strip quotes

set $(grep /dev/input /etc/xorg.conf)

INPUT=$(eval echo $(eval echo $#))

if [ -e $INPUT -o -e /mnt/base-us/ENABLE_VNC ]; then

# Start the pillow

# TODO What if pillow fails to start ?

pillowd -NoDefaultPillowCase

# TODO It works without calling sleep!

# Do we really need to sleep ?

# sleep 1

# send the pick, wait for the change

f_log I locale pick "" "Picking Language"

lipc-set-prop com.lab126.pillow applicationWindow '{"name":"pickLocale","clientParams":{"show":true}}'

f_log I locale wait

lipc-wait-event com.lab126.locale localeChange

# Kill the pillow here, so that it boots up again with proper language.

killall -q -s KILL pillowd || true

f_log I locale set "" "User Picked Language"

else

f_log I locale no_input "" "no input device, defaulting"

echo -e "LANG=en_US.UTF-8nLC_ALL=en_US.UTF-8" > $LOCALE_FILE

fi

LANG=`awk -F'=' '/LANG/{print $2}' $LOCALE_FILE`

LC_ALL=`awk -F'=' '/LC_ALL/{print $2}' $LOCALE_FILE`

f_log I locale read "lang=$LANG,lc_all=$LC_ALL" "Set Language"

f_emit langpicker_ready

end script

复制代码

可以清晰地看到第十行,首先通过env命令将/opt/amazon/locale.blacklist 文件路径添加到名为BLACKLIST的变量中。(BLACKLIST是黑名单的意思啊,坑爹= =)

第二十五行到第二十六行就是设备的判定,通过代码我们可以看见序列号以B05A* 和 B0F2* 开头的设备均在黑名单内,也就是可以简单判定,这就是日版设备的序列号。

第三十四行就是执行的删除命令,将黑名单中的语言给删除。(怒)

分析出来原因后解决办法就好办了,一种就是将黑名单列表清空,然后将设备里面被删除的2个语言文件还原就好了。其次,我们可以换个思路,直接干掉这个删除脚本,不过,那就是有兴趣的你的事情了。

好,感谢大家的耐心等待,现在上干货。

  kindle-5.4-jailbreak.zip(4.04 KB, 下载次数: 587)

  update_jailbreak_bridge_1.8.N_install.tar.gz(6.04 KB, 下载次数: 1040)

  Kpw2-chinese.tar.gz(1.33 KB, 下载次数: 492)

本步骤需要这三个压缩包,设备需要重启三次。如果不出意外的话,按照步骤做完后你将拥有完美的日版中文系统。

相关问题集中回答贴:tieba.baidu点com/p/2727173966

一、不想越狱的中文化方法

  update_chinese_install.zip(2.09 KB, 下载次数: 948)

将系统版本升级到5.4.2。

下载这个附件,解压放在Kindle根目录,然后进入设置,然后选择更新,然后重启。

重启后,进入[Settings] -> [Device Options] -> [Language and Dictionaries] -> [Language] 选择中文自由飞翔吧。

12月1号,更新,修改了文件复制失败的问题,等待测试。

二、越狱中文化的方法(1)越狱(感谢Mobileread论坛的NiLuJe和yossarian17的付出)

首先将Kindle连接到你的电脑上,将kindle-5.4-jailbreak.zip里面的三个文件解压到磁盘根目录,然后将设备断开连接。

PS,Kindle的语言按照英语步骤写的

然后在Kindle中点击右上角的按钮进入菜单,点击Settings进入设置选项。

然后继续点击右上角的菜单按钮,选择Update Your Kindle。更新不会立刻运行,耐心等待,过了一会儿,底部出现**** JAILBREAK ****时。恭喜你,你已经越狱成功了。

由于楼主越狱的早,不确定此方法和我当时越狱的结果是否一致。 = =、 因为当时我用的是Paperwhite 1代的越狱补丁。所以以上越狱教程完全翻译Mobileread,但是越狱的结果是能安装第三方的bin文件就好了。

将越狱成功的Kindle连接到电脑,解压update_jailbreak_bridge_1.8.N_install.tar.gz里面的一个文件到磁盘根目录。然后拔出设备,依旧Settings进入设置选项。然后继续点击右上角的菜单按钮,选择Update Your Kindle。(这一步可以舍去不做,但是以后想安装koreader的还是要做的,但是你可以等到它出的时候再做。)

(2)汉化

前面的越狱步骤成功后,解压最后那个 Kpw2-chinese.tar.gz 压缩包里面的4个文件到Kindle根目录,依旧是断开设备同电脑的连接,然后设置里面选择更新这步骤。

更新完毕后设备会重启,重启后,进入[Settings] -> [Device Options] -> [Language and Dictionaries] -> [Language] 选择中文自由飞翔吧。

补充内容 (2014-1-27 15:58):

2014年1月27日,修复Kindle 3G JP版本不能更新问题。

pan.baidu.com/s/1mgoc7sk

既然没人插楼我就多说几句,在亚马逊官方允许日版有中文前,任何官方的固件都会覆盖这个locale.blacklist文件,虽然中文依旧能显示,但是很遗憾的是语言选项里面就会没有中文,系统重置后也没有中文。

但是大丈夫,萌大奶。只要越狱后,其实设备就永远越狱了。于是乎,你只需要保留最后的那个补丁,然后在每次官方升级固件后,如果没有了中文,自己再手动运行一下补丁就好了。

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/69634.html

更多阅读

{转自贴吧}我看日版花样男子日版花男 日版花样男子全集优酷

个人把多数版本的花男都看了,台版(最先)、动画、韩版、芒果版(完全为了找茬和挑战极限)、日版。不可否认,台版是我心中的经典,是不可取代的,虽然当时的技术和资金有限,现在看来好像很多地方都不够完美,但是这群人演出来的感觉就是让人觉得《花

日版《蓝色大门》的插曲-风色夏恋 夏恋

很老的片子了,再看一遍,还是一样温暖和美好.那时候还是年少不知愁滋味,男生穿着花衬衫,骑着单车,一路露出美好的微笑.干净明丽的青春物语,理不清的少年情愫,都随风回荡在那年夏天.你站在蓝色的大门前,对着我说出的心事.喜欢,就是这

声明:《日版Kindle Paperwhite 第二代中文菜单解锁 免越狱补丁更新 kindle paperwhite2》为网友赢了天下输了她分享!如侵犯到您的合法权益请联系我们删除