1746382744 kobo dict font cover

前言

給 Kobo 下載了 GitHub 上的一個萌典單字字典,發現注音符號部分會因字體缺失而無法顯示。在一番折騰後找到了解決方法,需要利用 kobopatch 對升級包進行修改,來強制 Kobo 字典使用的字體,本文會介紹操作流程。

本文 kobopatch 的內容會和之前的一篇文章〈為 Kobo 閱讀器添加 Google Drive 和 Dropbox 功能〉重複,可以先看看作為參考。

系統更新

此處使用 Kobo Aura One 進行演示,其它型號應該都能使用。文章發布時,最新的系統是 4.38.23171(BW、Colour 新機型為 4.41.23145)。你可以在閱讀器的更多 > 設定 > 裝置資訊中看到版本。如果不是最新的,請按以下部分內容進行更新。

打開 Kobo Firmware Downloads (pgaskin.net),找到你的設備型號,點擊綠色的「Download」下載固件。固件名稱應為 kobo-update-<版本>.zip

將閱讀器連接到電腦上,會出現一個 USB 存儲設備。將下載好的 zip 格式固件解壓到 .kobo 目錄下,你會得到一個文件夾和兩個文件。然後安全彈出設備,拔掉數據線後就會自動更新。

打包 Kobopatch

生成配置

打開 GitHub 上的代碼庫,點擊綠色的「Code」,再點「Download ZIP」下載,你會得到一個 kobopatch-patches-master.zip 壓縮包。壓縮包裡面有一個 src 文件夾,單獨將這個文件夾解壓出來(只需要用到這個)。

src/versions 目錄下,你會發現一大堆版本號。如果你是 Clara 2E、Libra 2 等舊機型,就打開 4.38.21908 文件夾;BW、Colour 新機型打開 4.39.22801 文件夾。

在版本號目錄下,會有四個單獨的文件夾。用記事本打開 libnickel.so.1.0.0.yaml 文件夾內的 jackie_w.yaml 文件,並作如下修改:

  • Dictionary text font-family/font-size/line-height: 下的 Enabled: no 改為 Enabled: yes
  • #- ReplaceString: {Offset: 54, Find: "%4, serif ", Replace: "'AR UDJingxihei'", MustMatchLength: yes} 這一行開頭的 # 號刪去

修改完成後記得保存,結果如下圖所示:

kobopatch 修改一
kobopatch 修改二

然後我們需要將這四個文件夾下的所有 yaml 文件分別合併,得到四個和文件夾名稱相同的 yaml 文件。我這裡給 Windows 用戶寫了個很簡單的 PowerShell 腳本:

Set-Location .\libadobe.so.yaml\
Get-Content *.yaml | Set-Content libadobe.so.yaml
Copy-Item .\libadobe.so.yaml ..\..\..\template\src\

Set-Location ..\libnickel.so.1.0.0.yaml\
Get-Content *.yaml | Set-Content libnickel.so.1.0.0.yaml
Copy-Item .\libnickel.so.1.0.0.yaml ..\..\..\template\src\

Set-Location ..\librmsdk.so.1.0.0.yaml\
Get-Content *.yaml | Set-Content librmsdk.so.1.0.0.yaml
Copy-Item .\librmsdk.so.1.0.0.yaml ..\..\..\template\src\

Set-Location ..\nickel.yaml\
Get-Content *.yaml | Set-Content nickel.yaml
Copy-Item .\nickel.yaml ..\..\..\template\src\

將這段代碼保存為 combine.ps1 文件(UTF-8 編碼),並放在這四個文件夾的同層目錄下,右鍵「用 PowerShell 執行」即可。

保存的 combine.ps1 文件

執行完成後,會在四個文件夾內分別生成與文件夾同名的 yaml 文件,並自動將其複製到 src/template/src 目錄下。至此,配置文件的準備就完成了。

生成更新包

打開 src/template 文件夾。在開始打包之前,我們還需要下載額外的文件。

首先,將我們一開始下載的 Kobo 系統固件(kobo-update-<版本>.zip)複製到 src/template/src 目錄裡面。

複製 Kobo 固件

然後,打開 kobopatch發布頁,點擊最新版本下的「Show all assets」顯示所有文件,再根據你的系統下載對應的 kobopatch 程序(Windows 系統下載 koboptch-windows.exe)。將這個程序放在 src/template/bin 里。

下載 kobopatch 二進位程序

最後,編輯 src/template/kobopatch.yaml 文件,將三四行的 {{version}} 替換為你的固件版本,記得保存。

修改 kobopatch.yaml

現在,我們可以生成更新包了。Windows 用戶執行 src/template 下的 kobopatch.bat 這個批處理文件,Linux/Mac 執行 kobopatch.sh,就會開始生成。生成過程中,會有一行 APPLY Dictionary text font-family/font-size/line-height,表示這個 patch 已被應用。如果沒有,檢查文件修改是否正確,以及是否保存。

檢查 patch 是否被應用

等命令行窗口消失後,生成的更新包 KoboRoot.tgz 會放在 src/template/out 目錄下。

再次更新 缺字消失

將 Kobo 連接到電腦上,並複製生成的 KoboRoot.tgz 到設備的 .kobo 目錄下,同時將字典文件(zip 格式)放到 .kobo/custom-dict 目錄下,拔掉數據線後就會自動開始更新。

更新完成後,在語言和字典設置中選上新加的字典,然後打開一本書進行查詢,此時字典的字體已被強制設定為系統自帶的文鼎 UD 晶熙黑體,應該是不會再有缺字問題了。

Kobo 字典

但是,每次經過系統更新後,都需要重新進行整個步驟,因為系統更新會覆蓋掉 patch。有問題歡迎留言或郵件聯繫,更多內容歡迎到我主頁看。

最後修改日期: 2025-05-05

作者

留言

沒記錯應該是去年4月的一次更新之後,字型檔就壞掉了

撰寫回覆或留言

您的電子郵件地址不會公開。留言送出後需要等待審核和緩存刷新,請勿重複點擊。