日版Kindle Paperwhite 第二代中文菜单解锁 免越狱补丁更新 kindle paperwhite2
小雨喵 于 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文件,虽然中文依旧能显示,但是很遗憾的是语言选项里面就会没有中文,系统重置后也没有中文。
但是大丈夫,萌大奶。只要越狱后,其实设备就永远越狱了。于是乎,你只需要保留最后的那个补丁,然后在每次官方升级固件后,如果没有了中文,自己再手动运行一下补丁就好了。
更多阅读
PS2 <荒野兵器5先驱>日版(WildArmsTheVthVanguard)JAP_PS2DVD-G 荒野兵器5汉化
[1214][PS2]<荒野兵器5先驱>日版(Wild ArmsThe Vth Vanguard)JAP_PS2DVD-GANT,2006《荒野兵器 5先驱》(ワイルドアームズ ザ フィフスヴァンガード)(WILD ARMS THEVTH VANGUARD) iz中文名称:荒野兵器 5 先驱 / 荒野兵器 5 先锋 / / 狂野
{转自贴吧}我看日版花样男子日版花男 日版花样男子全集优酷
个人把多数版本的花男都看了,台版(最先)、动画、韩版、芒果版(完全为了找茬和挑战极限)、日版。不可否认,台版是我心中的经典,是不可取代的,虽然当时的技术和资金有限,现在看来好像很多地方都不够完美,但是这群人演出来的感觉就是让人觉得《花
天津第二代居民身份证10年期满换证,怎么换?去哪换? 第二代居民身份证换证
我市从2015年将进入第二代居民身份证10年期满换发高峰期,全市将有近100万张居民身份证需要换发。据市公安局人口管理办公室居民身份证制作中心介绍,我市从2004年开始制发第二代居民身份证,今明两年10年有效期的居民身份证将到期,涉及本
出国护照和第二代身份证的标准尺寸是多少?8sJ 第二代居民身份证
按需申领护照即公民申请因私出国护照只需凭第二代身份证、户口簿,即可向出入境管理部门申领护照。按条件申领护照地区的申请过程基本和按需申领护照地区类似,差别的地方在于递交申请表之前需要在户口所属派出所进行政治审查或者申请者
日版《蓝色大门》的插曲-风色夏恋 夏恋
很老的片子了,再看一遍,还是一样温暖和美好.那时候还是年少不知愁滋味,男生穿着花衬衫,骑着单车,一路露出美好的微笑.干净明丽的青春物语,理不清的少年情愫,都随风回荡在那年夏天.你站在蓝色的大门前,对着我说出的心事.喜欢,就是这