给Kindle4更换字体
kindle4用了也有段时间了,起先用多看系统,不得不说这个系统很多功能是很让人振奋的,比如pdf重排,自定义壁纸之类的。但是经过一段时间的使用之后,开始觉得没必要了,英文也不是那么吃力,而且原版的功能要好很多,比如省电,还有翻页速度和黑屏之类的,毕竟是原生的。而且像之前某前辈说的,太早选择多看会错过很多原系统的好。
但是有个问题还是让人不得不介意的:字体。原生支持中文,但是显示效果和英文比起来差太多了,粗细不均,大小还有差别,而且那种字体看着很吃力~~
所以本着少折腾的原则(不可信),我开始找换字体的教程,终于在这里找到了:Kindle 4 更换中文字体,感谢原作者的辛苦翻译。我修改的过程如下:
1) 获得序列号
在Kindle的盒子屁股上有你的设备序列号(形如:B00114XXXXXXXXXX)
2) 获得root密码
我的系统是4.0.1,按照原文的办法找了半天密码,最后发现root 密码为原文说的4.0的 “mario”(不含引号)。
3) 复制字体,进入调试模式
将Kindle通过usb连接至PC,将要替换的中文字体文件复制到Kindle的documents文件夹下,如_CJK.ttf_ 和_CJK_Bold.ttf_(前者是普通字体,后者是粗体)。我用的是方正雅宋,比较像一直用的课本字体(让我能静下来正经阅读)。
然后,为了进入调试模式,需要在kindle根目录下创建一个名为“ENABLE_DIAGS”的空文件。重启设备(Settings -> Menu -> Restart)
4) 调试模式下开启USBnet
重启后,设备会自动进入调试模式,将Kindle连上USB线,在菜单中依次选择 Misc individual diagnostics -> Utilities -> Enable USBnet,最后并根据提示按方向键右键确认(FW RIGHT)
5) 安装驱动
在Windows(7)下,系统可能不能识别调试模式下的Kindle,你需要在设备管理器(device manager)中选中新的未知设备(其默认被识别在网络适配器[Network Adapter]条目下),右键选择更新驱动程序,然后选择手动查找的方式,在列表中选择网络适配器(Network adapter),厂商选择Microsoft Coporation ,选择设备为“Remote NDIS based internet sharing device”(这里可能有出入,也可能在中Microsoft Inc)。
6) 设置网络连接
在网络连接面板中,会出现一个新的网络连接(对应于上一步安装的设备),设置该连接IP为:192.168.15.1,子网掩码为:255.255.255.0 ,其它保持默认。
7) SSH登录
现在就可以通过SSH登录了,在Putty中连接到192.168.15.244(这是Kindle的默认地址) ,输入用户名为 root ,密码为 2) 中所得(mario) 。
不出意外的话,现在已经以root身份成功登录kindle,下面的步骤是替换中文字体。
8 ) 挂载驱动器
在PC的SSH终端上输入以下命令挂载驱动器:
mount /dev/mmcblk0p1 /mnt/base-mmc
9) 复制字体
我们先前复制的字体存储在(/mnt/base-us/documents/)路径下,Kindle系统字体存储在(/mnt/base-mmc/usr/java/lib/fonts/),输入以下命令将要替换的字体复制到系统字体文件夹下:
cp /mnt/base-us/documents/CJK.ttf /mnt/base-mmc/usr/java/lib/fonts/
cp /mnt/base-us/documents/CJK_Bold.ttf /mnt/base-mmc/usr/java/lib/fonts/
10) 修改系统默认字体设置
在修改前,先对系统文件进行备份,有备无患:
cp /mnt/base-mmc/usr/java/lib/font.properties /mnt/base-mmc/usr/java/lib/font.properties.bak
然后,执行:
vi /mnt/base-mmc/usr/java/lib/font.properties
找到如下行:
hans.0=MHeiM18030_E.ttf
hans.plain=MHeiM18030_E.ttf
hans.1=MHeiM18030_E_Bold.ttf
hans.bold=MHeiM18030_E_Bold.ttf
将其修改为(按 i 键进入编辑模式):
hans.0=CJK.ttf
hans.plain=CJK.ttf
hans.1=CJK_Bold.ttf
hans.bold=CJK_Bold.ttf
保存退出(按ESC,输入 :wq)。
Update:经过以上步骤的修改后,语言为中文的书籍就能够正常显示了,但对于未设置语言的书籍(可以用PC上的calibre进行设置),以及Kindle主界面中的书籍标题,仍然没有更新到新的字体。我观察发现,问题在于Kindle会优先使用日文来渲染汉字,所以会存在日文汉字、正体中文、简体中文交叉显示的情况。在下文步骤 12)中已经提供了一个较好的解决方法。因此,一个不太好的办法就是将日文及正体中文均改为使用简体汉字字体来渲染,这样便能解决上述问题,而代价就是不能正常显示日文及正体中文。下面是修改的方法,当然我们期待的是Amazon能够更完美的支持简体中文显示(如果不在意上述问题,完全可以忽略下面的修改)。需要修改的地方如下:
11) 退出调试模式
在Kindle上退回到调试模式主菜单,并选择“Exit, Reboot or Disable Diags’”->”’Disable Diagnostics”,并按照提示按左键确认(FW Left )退出。稍等片刻,设备将重启并回到正常模式。
Update:
12) 修改区位字符编码
根据peikkk在留言中的提示,按照以下方法,不用修改日文及正体中文的字体设置,就能够很好的解决书籍标题及未设定语言的书籍的字体显示问题,再次感谢。
当Kindle回到正常模式后,在主界面中按键盘键调出虚拟键盘,输入:
;debugOn –>确认键
~changelocale zh-CN.utf8 –>确认键
;debugOff –>确认键
重新启动Kindle
可以很好的让目录和未指定语言的书显示所指定的简体字体。
而不用再 去改动 日韩和繁体字的 font配置文件了
不出意外,字体已经替换成功了。感谢原作者~~【Kindle 4 更换中文字体】
关于广告推送的问题,有人说替换字体之后不给推广告了,我这边用@free.kindle.com往k4上推了几本书之后,广告推送貌似正常了……