如何修改 Kindle 原生系统的页面边距(需越狱)
本文提供的方法不适用版本号大于 5.11.x 的新版本 Kindle 固件。
为了使用户在阅读时能取得视觉上的均衡,和纸质书一样,Kindle 设备在显示电子书时,也在内容四周填充了边距(Margins),并且允许用户通过页面设置功能调节左右边距的大小。但是即便选择了最小边距,电子书内容也不会贴边,这是因为 Kindle 在系统级别保留了一部分边距,无法通过设置调整。
相当长一段时间以来,书伴留意到有很多小伙伴抱怨 Kindle 预留的边距过大浪费空间。由于原生系统没有提供相关设置项,想要修改边距就得通过修改 Kindle 系统文件来达到目的,大概的思路为:先把含有页面边距参数的配置文件从系统中复制出来,然后修改其中的相关参数,最后替换原文件。
▲ Kindle 页面边距调整前后对比
该方法源自网友“gygz”在 HiPDA 论坛发布的帖子(感谢书伴交流群中小伙伴“Damon”的推荐),原帖称适用于 KPW 1/2/3、KV,理论上也适用于 KO 1/2 和 KPW4。书伴用已越狱的 KPW3 验证了原帖步骤,并在本文中对其做了简化,以方便小伙伴们用最少的步骤达到修改 Kindle 页面边距的目的。
目录
在开始以下步骤前,请确保你的 Kindle 已越狱并安装了 MRPI 和 KUAL 两个插件。本文同时适用于 Windows 系统和 macOS 系统,在阅读时请留意本文对两个系统操作有差异的地方所做的说明。
一、准备相关工具
以下是本文中的步骤所需要用到的全部工具,请全部下载下来备用:
- Change Margins 插件下载:百度网盘〈提取码 :
ax4d
〉 - Java Bytecode Editor 下载:百度网盘〈提取码 :
8vvk
| 解压密码 :bookfere
〉 - Sublime Text 下载:官网下载(可选。可用任意代码或文本编辑器)
为了简化步骤,书伴将可自动化的操作都写进了 KUAL 插件 Change Margins 里,请下载 change-margins.zip 并解压缩,把 change-margins 插件文件夹拷贝到 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 插件 Change Margins 会帮你自动提取配置文件,你只需要打开 KUAL,点击菜单中的【Change Margins】→【Get Config File】,插件就会把与当前系统语言相对应的 .jar 包提取到 Kindle 的根目录下名为 margins-config-temp 的文件夹中。
▲ Change Margins 辅助修改页面边距界面
以中文系统语言为例,所需要修改的配置文件 ReaderResources_zh.class 会被存放到如下路径:
margins-config-temp-zh/com/amazon/ebook/booklet/reader/resources/ReaderResources_zh.class
* 提示:如果你想要修改与其它语言相对应的配置文件,请点击菜单中的【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 文件夹,同时选中 com 和 META-INF 两个文件夹,点击鼠标右键,在弹出的菜单中点选“发送到 → 压缩(zipped)文件夹”,然后重命名为 a.zip。
- macOS 系统:margins-config-temp-zh 文件夹,同时选中 com 和 META-INF 两个文件夹,点击鼠标右键,在弹出的菜单中点选“压缩 2 项”,然后重命名为 a.zip。
* 提示:为方便操作,你只需要将两个文件夹打包成 zip 文件并重命名为 a.zip 即可,在接下来的步骤中,插件会自动把文件重命名为 ReaderSDK-impl-zh.jar 并替换到系统相应的路径中。
以上操作完成后即可断开 Kindle 的 USB 连接。在 Kindle 中打开 KUAL 继续以下步骤。
五、替换配置文件
打开 KUAL,点击菜单中的【Change Margins】→【Replace Config File】,插件会自动备份系统的原配置文件,并替换成你修改好的配置文件,接着 Kindle 会自动重启。
* 提示:如果今后你想要还原系统的原页面边距配置文件,只需要点击插件中的【Restore Config File】即可,插件会自动删除替换的文件,并还原系统的原配置文件(还原操作也会重启 Kindle)。另外,如果你不再需要提取到 Kindle 根目录的配置文件,可以点击【Delete Config File】删掉它。
六、查看修改效果
Kindle 重启完毕后,修改的配置还未完全生效,你需要打开一本书,点屏幕上方调出控制条,然后依次点击“页面显示 → 字体和页面设置 → 页面设置”,来回切换一下“页面边距”,即可让修改的配置生效。
以上是通过修改系统文件更改页面边距的全部步骤。辅助修改页面边距的 KUAL 插件目前仅在 KPW3 设备上测试过,如遇到不可用的情况欢迎留言反馈。对于本文可能存在的谬误也欢迎留言指正。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/746.html
延伸阅读
- 为什么天冷后 Kindle 翻页显得反应迟钝?
- 赵汀阳:是什么让中国人“不讲逻辑”?
- [每周一书]《阅读是一座随身携带的避难所》毛姆教你如何读书
- [每周一书] 看《父与子的编程之旅》轻松学编程
- [每周一书]《意志力》专注、自控与效率的心理学
- Kindle 应用将于 2024 年 11 月 15 日移除“生词卡”功能
- [每周一书]《荣格自传》心理大师的毕生回忆录
- EasyPub:把 TXT 文档转成带目录的 MOBI 格式
- 亚马逊 Kindle Paperwhite 5(2021)开箱评测视频总汇
- [2020.10.15] Kindle 阅读器固件升级至 5.13.3
- [每周一书]《生育制度》关于婚姻这一社会现象
- [每周一书] 认识你自己《改变心理学的40项研究》
- Kindle Voyage 阅读器深度评测(四):软件功能
- [每周一书] 经典文学《一个陌生女人的来信》
- [每周一书] 避开完美的陷阱《如何成为不完美主义者》
kindle PW4 5.13.3不好用,按上面的步骤操作了,但是不好用啊。
Java Bytecode Editor度盘打不开了 麻烦更新下
谢谢提醒,链接已修正。注意,由于百度网盘会吞链接,所以加了解压密码。
大佬,按你的方法修改,点击【Save method】出现这个:Error: Instruction requires an argument of type byte at line 2577, instruction “bipush”
怎么办?
使用版主的Java Bytecode Edito就正常了,谢谢补了网盘。
kindle升级到5.13后配置文件变了,哪位大神能重新配置下
这个真心不错,个人建议topmargin那项不要去改,因为改了就不能正常显示时钟了!
补充点,按教程做完,在“/opt/amazon/ebook/lib”里的ReaderSDK-impl-zh.jar只有0kb,是没copy成功的原因么?还有,怎么给这个目录授权,没法删除何修改。
我的pw2,5.12.2。为啥上下有效果,但是左右没有效果
试出来了,font.wordsperline.margin.list出现了两次,要改第二次的才行,150-100-50那个😴😴😴
请问是只改第二次的,还是说两次的都要改?另外请问需要改成多少呢?
kpw3 5.12.3成功。(需要自己修改,直接替换楼主文件无效)
研究了几天终于搞好了kpw2 5.12.2 边距的问题
这里上传不了文档,请移步https://www.hi-pda.com/forum/viewthread.php?tid=2464067&page=1&extra=#pid55399562 28楼
没有hipda账号,能不能给个baiduyun的链接呀???
买了hipda账号,说所在组不支持下载附件😭。
能不能发一个给我呀?65917943@qq.com
https://www.hi-pda.com已经挂了,能分享一下么。568538375@qq.com
有可能的话,希望能分享下修改经验,hipda的e-ink老帖基本都阵亡了,2728915244@qq.com
您好,我的电脑打不开Jbe,不知道是什么原因
你没安装java底裤
需要Java环境
刚刚用kpw2 5.12.2测试,用楼主的参数无效。
KPW4
点击获得get config之后连上电脑看到生成margins-config-temp-zh文件夹,但是个空文件夹,没有二级目录或者文件。
这种方法改的页边距感觉不持久啊,退出再打开就会恢复原样,需要再次来回切换页边距才能让设置身生效。
kpw3提取文件夹空白
文章就是用 KPW3 测试的没问题。可以试试看本文留言中的那段代码,看看能不能访问 Kindle 系统里面的文件。
点击获得get config之后连上电脑看到生成margins-config-temp-zh文件夹,但是个空文件夹,没有二级目录或者文件,PW2。
把下面这段代码保存为 RUNME.sh 放到 Kindle 根目录,然后在搜索框输入
;log runme
,看看生成的 TXT 文件中有没有配置文件列表。请问能贴下原贴地址吗 我进/opt/amazon/ebook/lib/文件夹看了 并没有这些文件 是个空文件夹…
我没有 HiPDA 论坛的账号,所以进不去论坛查看原贴,如果你有账号的话可以去搜一下。
找到了:https://www.hi-pda.com/forum/viewthread.php?tid=2464067
巨佬,有适合KPW2修改页边距的办法么?我按照这个教程走下来,失败了,变了参数也没试对。
【不】越狱也有办法。需要在【每本书】添加以下css。
数值自定义,推荐-42~-45,保持了适度的留白,又尽可能的吃尽6寸屏。
注意:只能裁左右白边,【不能】裁上下。强裁上下会让首行/尾行字重叠、粘连。
当然,希望有识之士能提供成功裁上下的css。
补充,添加此代码的书,邮箱推书一律退件。需要U盘拉进机器,或者登网盘下书。
可能是添加的位置不对?
希望有人能告诉我有什么方法可以推过去。
直接为内容标签添加样式
不需要加什么@media amzn-kf8,具体是p还是div还是其他需要根据html内容的标签,直接邮箱可以推送
砍掉media,再推,失败了……又被退件。
我是用easyPub软件,在“定制css”里添加的。
EasyPub制作的时候选择css 按你的代码覆盖后还是一样。
添加后还是如此