如何修改 Kindle 原生系統的頁面邊距(需越獄) – 書伴

為了使用戶在閱讀時能取得視覺上的均衡,和紙質書一樣,Kindle 設備在顯示電子書時,也在內容四周填充了邊距(Margins),并且允許用戶通過頁面設置功能調節左右邊距的大小。但是即便選擇了最小邊距,電子書內容也不會貼邊,這是因為 Kindle 在系統級別保留了一部分邊距,無法通過設置調整。

相當長一段時間以來,書伴留意到有很多小伙伴抱怨 Kindle 預留的邊距過大浪費空間。由于原生系統沒有提供相關設置項,想要修改邊距就得通過修改 Kindle 系統文件來達到目的,大概的流程是:先把把含有頁面邊距參數的配置文件從系統中復制出來,然后修改其中的相關參數,最后替換原文件。

該方法源自網友“gygz”在 HiPDA 論壇發布的帖子(感謝書伴交流群中小伙伴“Damon”的推薦),原帖稱適用于 KPW 1/2/3、KV,理論上也適用于 KO 1/2 和 KPW4。書伴用已越獄的 KPW3 驗證了原帖步驟,并在本文中對其做了簡化,以方便小伙伴們用最少的步驟達到修改 Kindle 頁面邊距的目的。

▲ Kindle 頁面邊距調整前后對比

在開始以下步驟前,請確保你的 Kindle 已越獄并安裝了 MRPIKUAL 兩個插件。本文同時適用于 Windows 系統和 macOS 系統,在閱讀時請留意本文對兩個系統操作有差異的地方所做的說明。

一、準備相關工具

以下是本文中的步驟所需要用到的全部工具,請全部下載下來備用:

  • BookFere Tools 下載百度網盤【提取碼:gvk9
  • Java Bytecode Editor 下載百度網盤【提取碼:s4fy】
  • 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,對此文件,你可以使用已修改好現成的 .class 文件直接替換,也可以自行使用工具 Java Bytecode Editor 手動修改。

方法 1、使用現成文件

如果你不方便修改 ReaderResources_zh.class 文件,可以直接下載已修改好的文件覆蓋原文件,注意型號和版本號要對應。配置中的數值使用的是“手動修改文件”步驟中提供的樣例數值。

  • Kindle Paperwhite 3(固件版本:5.11.1.1):百度網盤【提取碼:bfc2】
  • 更多配置文件,期待你的分享……

目前現成的 .class 文件還不全,如果你愿意,可以把修改好的 .class 文件或沒有修改的文件以附件的形式(務必附上 Kindle 型號、固件版本以及是否已修改)發送到書伴的郵箱(頁面底部聯系處獲取)。

方法 2、手動修改文件

將下載到的 jbe_mt.zip 解壓縮并進入 jbe_mt 目錄。Windows 系統雙擊 jbe.bat 啟動軟件;macOS 系統打開“終端”,把 jbe.sh 文件拖到終端按回車啟動(或在終端中輸入 jbe.sh 路徑按回車啟動)。

點擊軟件左上角“帶放大鏡的圖標”,選擇并打開提取到 Kindle 中的文件 ReaderResources_zh.class。如下圖所示,在左欄依次展開 “Methods<init>” 選中 “[0] Code”,然后點擊右側【Code Editor】標簽。把下方代碼框全選并剪貼到代碼編輯器中,Java Bytecode Editor 保持清空狀態備用。

在代碼編輯器中,我們需要依次修改下面列出的參數(請從代碼頂部依次向下搜索替換)。為了方便顯示,以下示例代碼省略了不相關的信息,只顯示了要修改的參數,帶刪除線的是修改前的數值。注意,可能不同的 Kindle 設備或固件版本顯示的參數名不太一樣,但應該都帶有 idc 字樣(如 idc_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 原生系統的頁面邊距(需越獄) – 書伴
微信公眾號:螞蟻搬書
關注我們,分享kindle電子書資源
12000人已關注
分享到:
贊(0) 打賞

評論搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞

2元体彩七星彩走势图