前言
給 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}
這一行開頭的 # 號刪去
修改完成後記得保存,結果如下圖所示:


然後我們需要將這四個文件夾下的所有 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 執行」即可。

執行完成後,會在四個文件夾內分別生成與文件夾同名的 yaml
文件,並自動將其複製到 src/template/src
目錄下。至此,配置文件的準備就完成了。
生成更新包
打開 src/template
文件夾。在開始打包之前,我們還需要下載額外的文件。
首先,將我們一開始下載的 Kobo 系統固件(kobo-update-<版本>.zip
)複製到 src/template/src
目錄裡面。

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

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

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

等命令行窗口消失後,生成的更新包 KoboRoot.tgz
會放在 src/template/out
目錄下。
再次更新 缺字消失
將 Kobo 連接到電腦上,並複製生成的 KoboRoot.tgz
到設備的 .kobo
目錄下,同時將字典文件(zip 格式)放到 .kobo/custom-dict
目錄下,拔掉數據線後就會自動開始更新。
更新完成後,在語言和字典設置中選上新加的字典,然後打開一本書進行查詢,此時字典的字體已被強制設定為系統自帶的文鼎 UD 晶熙黑體,應該是不會再有缺字問題了。

但是,每次經過系統更新後,都需要重新進行整個步驟,因為系統更新會覆蓋掉 patch。有問題歡迎留言或郵件聯繫,更多內容歡迎到我主頁看。
留言
沒記錯應該是去年4月的一次更新之後,字型檔就壞掉了
我也記不得了,但我感覺一直都有這個問題