前言
给 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月的一次更新之后,字库就坏掉了
我也记不得了,但我感觉一直都有这个问题