如何修改 Kindle 原生系统的页面边距(需越狱)

为了使用户在阅读时能取得视觉上的均衡,和纸质书一样,Kindle 设备在显示电子书时,也在内容四周填充了边距(Margins),并且允许用户通过页面设置功能调节左右边距的大小。但是即便选择了最小边距,电子书内容也不会贴边,这是因为 Kindle 在系统级别保留了一部分边距,无法通过设置调整。

相当长一段时间以来,书楼留意到有很多小伙伴抱怨 Kindle 预留的边距过大浪费空间。由于原生系统没有提供相关设置项,想要修改边距就得通过修改 Kindle 系统文件来达到目的,大概的思路为:先把含有页面边距参数的配置文件从系统中复制出来,然后修改其中的相关参数,最后替换原文件。

▲ Kindle 页面边距调整前后对比

该方法源自网友“gygz”在 HiPDA 论坛发布的帖子(感谢书楼交流群中小伙伴“Damon”的推荐),原帖称适用于 KPW 1/2/3、KV,理论上也适用于 KO 1/2 和 KPW4。书楼用已越狱的 KPW3 验证了原帖步骤,并在本文中对其做了简化,以方便小伙伴们用最少的步骤达到修改 Kindle 页面边距的目的。

目录

一、准备相关工具
二、提取配置文件
三、修改配置文件
四、打包配置文件
五、替换配置文件
六、查看修改效果

在开始以下步骤前,请确保你的 Kindle 已越狱并安装了 MRPIKUAL 两个插件。本文同时适用于 Windows 系统和 macOS 系统,在阅读时请留意本文对两个系统操作有差异的地方所做的说明。

一、准备相关工具

以下是本文中的步骤所需要用到的全部工具,请全部下载下来备用:

  • BookFere Tools 下载Github下载百度网盘〈提取码 : aa6s
  • Java Bytecode Editor 下载百度网盘〈提取码 : 8vvk | 解压密码 : bookfere
  • Sublime Text 下载官网下载(可选。可用任意代码或文本编辑器)

为了简化步骤,书楼将可自动化的操作都写进了 KUAL 插件 BookFere Tools 中,请下载 bookfere-tools.zip 并解压缩,把 bookfere-tools 插件文件夹拷贝到 Kindle 根目录的 extensions 文件夹中。

Kindle 页面边距配置参数存放在 Java 压缩包 ReaderSDK-impl-zh.jar 的 Java 类文件 ReaderResources_zh.class 中,而修改这个文件我们需要用到名为 Java Bytecode Editor 的工具。

由于需要修改的代码较长,在 Java Bytecode Editor 中不好查找定位,所以建议把代码复制到代码编辑器中进行修改,改好之后再复制回去保存。你可以选用包括 Sublime Text 在内的任意代码编辑器。

二、提取配置文件

不同的系统语言所对应的含有配置文件的 .jar 文件不同,它们在 Kindle 系统中的对应关系如下:

/opt/amazon/ebook/lib/ReaderSDK-impl-zh.jar (Chinese)
/opt/amazon/ebook/lib/ReaderSDK-impl-en_GB.jar (English)
/opt/amazon/ebook/lib/ReaderSDK-impl-de.jar (Germany) 
/opt/amazon/ebook/lib/ReaderSDK-impl-es.jar (Spain)
/opt/amazon/ebook/lib/ReaderSDK-impl-fr.jar (France)
/opt/amazon/ebook/lib/ReaderSDK-impl-it.jar (Italy)
/opt/amazon/ebook/lib/ReaderSDK-impl-ja.jar (Japan)
/opt/amazon/ebook/lib/ReaderSDK-impl-nl.jar (Netherlands)
/opt/amazon/ebook/lib/ReaderSDK-impl-pt.jar (Portugal)
/opt/amazon/ebook/lib/ReaderSDK-impl-ru.jar (Russian Federation)
/opt/amazon/ebook/lib/ReaderSDK-impl-sq.jar (Albanian)

你无须关心这些细节,KUAL 插件 BookFere Tools 会帮你自动提取配置文件,你只需要打开 KUAL,点击菜单中的【BookFere Tools】→【Change Margins】→ 【Get Config File】,插件就会把与当前系统语言相对应的 .jar 包提取到 Kindle 的根目录下,提取的文件夹名带有 margins-config-temp 字样。

▲ BookFere Tools 辅助修改页面边距界面

以中文系统语言为例,所需要修改的配置文件 ReaderResources_zh.class 会被存放到如下路径:

margins-config-temp-zh/com/amazon/ebook/booklet/reader/resources/ReaderResources_zh.class

* 提示:如果你想要修改与其它语言相对应的配置文件,请点击菜单中的【BookFere Tools】→【Change Margins】→ 【Select Language】选择目标语言,然后再点击【Get Config File】提取一次即可。

三、修改配置文件

用 USB 数据线将 Kindle 设备连到电脑上,确认可以找到文件 ReaderResources_zh.class,然后按照下面的步骤,使用工具 Java Bytecode Editor 手动对其进行修改。

将下载到的 jbe_mt.zip 解压缩并进入 jbe_mt 目录。Windows 系统双击 jbe.bat 启动软件;macOS 系统打开“终端”,把解压得到的文件夹拖到终端按回车,然后输入 ./jbe.sh 按回车启动。

点击软件左上角“带放大镜的图标”,选择并打开提取到 Kindle 中的文件 ReaderResources_zh.class。如下图所示,在左栏依次展开 “Methods<init>” 选中 “[0] Code”,然后点击右侧【Code Editor】标签。把下方代码框全选并剪贴到代码编辑器中,Java Bytecode Editor 保持清空状态备用。

在代码编辑器中,我们需要依次修改下面列出的参数(请从代码顶部依次向下搜索替换)。为了方便显示,以下示例代码省略了不相关的信息,只显示了要修改的参数,带删除线的是修改前的数值。注意,可能不同的 Kindle 设备或固件版本显示的参数名不太一样,但应该都带有 ldc 字样(如 ldc_w)。

* 提示:这些修改的数值系原帖提供,但是不太清楚变动依据是什么,虽然原帖提了一句:6 寸 300PPI 可用 0.4245 的倍数进行调整,但还是太明白其中含义,如果有小伙伴知道是如何换算还请留言指点。

① 搜索:font.wordsperline.margin.list(约 5818 行)

ldc_w "font.wordsperline.margin.list"
...
ldc 50.94
ldc 8.94
...
ldc 33.96
ldc 6.38
...
ldc 16.98
ldc 3.396
...

② 搜索:reader.progressbar.footer.height(约 7167 行)

ldc_w "reader.progressbar.footer.height"
...
ldc 13.58
ldc 8.49
...

③ 搜索:reader.progressbar.margin(约 7218 行)

ldc_w "reader.progressbar.margin"
...
ldc 13.58
ldc 8.49
...

④ 搜索:reader.progressbar.footer.height(约 7364 行)

ldc_w "reader.progressbar.footer.height"
...
ldc 13.58
ldc 8.49
...

⑤ 搜索:reader.progressbar.margin(约 7398 行)

ldc_w "reader.progressbar.margin"
...
ldc 13.58
ldc 8.49
...

⑥ 搜索:reader.content.topMargin(约 7724 行)

ldc_w "reader.content.topMargin"
...
ldc 13.58
ldc 6.7925
...

⑦ 搜索:reader.content.bottomMargin(约 7758 行)

ldc_w "reader.content.bottomMargin"
...
ldc 13.58
ldc 5.5185
...

以上所有参数修改完毕后,全选代码,复制并粘贴到之前已清空备用的 Java Bytecode Editor 编辑框中,然后点击【Save method】按钮保存一下文件。至此 ReaderResources_zh.class 就修改完成了。

四、打包配置文件

最后我们需要把 margins-config-temp-zh 文件夹中的两个文件夹重打包成 ZIP 文件,具体步骤如下:

  • Windows 系统:进入 margins-config-temp-zh 文件夹,同时选中 comMETA-INF 两个文件夹,点击鼠标右键,在弹出的菜单中点选“发送到压缩(zipped)文件夹”,然后重命名为 a.zip
  • macOS 系统:margins-config-temp-zh 文件夹,同时选中 comMETA-INF 两个文件夹,点击鼠标右键,在弹出的菜单中点选“压缩 2 项”,然后重命名为 a.zip

* 提示:为方便操作,你只需要将两个文件夹打包成 zip 文件并重命名为 a.zip 即可,在接下来的步骤中,插件会自动把文件重命名为 ReaderSDK-impl-zh.jar 并替换到系统相应的路径中。

以上操作完成后即可断开 Kindle 的 USB 连接。在 Kindle 中打开 KUAL 继续以下步骤。

五、替换配置文件

打开 KUAL,点击菜单中的【BookFere Tools】→【Change Margins】→【Replace Config File】,插件会自动备份系统的原配置文件,并替换成你修改好的配置文件,接着 Kindle 会自动重启。

* 提示:如果今后你想要还原系统的原页面边距配置文件,只需要点击插件中的【Restore Config File】即可,插件会自动删除替换的文件,并还原系统的原配置文件(还原操作也会重启 Kindle)。另外,如果你不再需要提取到 Kindle 根目录的配置文件,可以点击【Delete Config File】删掉它。

六、查看修改效果

Kindle 重启完毕后,修改的配置还未完全生效,你需要打开一本书,点屏幕上方调出控制条,然后依次点击“页面显示字体和页面设置页面设置”,来回切换一下“页面边距”,即可让修改的配置生效。

以上是通过修改系统文件更改页面边距的全部步骤。辅助修改页面边距的 KUAL 插件目前仅在 KPW3 设备上测试过,如遇到不可用的情况欢迎留言反馈。对于本文可能存在的谬误也欢迎留言指正。

未经允许不得转载:书路 » 如何修改 Kindle 原生系统的页面边距(需越狱)

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

微信扫一扫打赏