Kindle Paperwhite 一代的复活:从串口救砖到越狱安装 KOReader
实操整理:2026 年 10 月 23 日。设备为 Kindle Paperwhite 第一代(KPW1 / PW1,亚马逊称 Paperwhite 第 5 代)。本文记录这台设备的实际修复过程,文中的固件和安装包版本是本次使用的版本。
这台 Kindle 已经很久没怎么使用,再拿出来时,屏幕一直停在大树画面,无法正常进入系统。
最后,我用 USB 转串口模块接入主板,进入恢复菜单,重新安装官方固件,把它救了回来。随后又降级系统、完成越狱,再升级回 5.6.1.1,最终通过 KUAL 成功启动 KOReader。
整个过程最费时间的地方,分别是接反的串口线、KUAL 的开发者签名报错,以及“文件复制成功”和“系统实际安装成功”之间的差别。
一、设备与工具
本次使用的设备和工具:
- Kindle Paperwhite 第一代,原装主板和屏幕,没有更换过。
- FT232RL USB 转 TTL 串口模块,已切换到 1.8V 档。
- 万用表、焊接工具和飞线。
- Windows 电脑,串口终端使用 PuTTY,也试过串口助手。
- 一根能够传输数据的 Kindle Micro-USB 数据线。
电脑识别到的串口是 COM14,本次能正常通信的配置为:
波特率:115200
数据位:8
校验:None
停止位:1
流控:None串口接线采用交叉连接:
Kindle TX → 串口模块 RX
Kindle RX ← 串口模块 TX
Kindle GND — 串口模块 GND这里使用的是 1.8V TTL 信号,不能把普通 RS-232 电平或 5V TTL 直接接到 Kindle。此次 Kindle 由电池和自身 USB 接口供电,没有使用串口模块的 VCC 给主板供电。
二、最开始的误判:模块正常,为什么一直是乱码?
连接之前,我已经把 FT232RL 切到 1.8V,并用万用表确认模块 TX 对 GND 约为 1.8V。
模块也做过自环测试:短接模块自己的 TX 和 RX,在电脑串口工具里发送文字,能收到相同内容。这证明模块自身具备收发能力。
但是接上 Kindle 后,串口工具不断收到乱码。波特率设为 115200 时如此,改为 9600 也没有得到可读文字,只是接收频率发生变化。
为了看清楚到底收到了什么,我抓取了原始字节,而不是只看终端渲染后的字符。
第一轮按 115200、8N1 监听了三分钟,总共收到 1304 个字节,全部为:
00 00 00 00 00 ...后来断开“模块 TX → Kindle RX”,只保留接收线和地线,又进行了一轮测试。这次只收到一小段 20 字节数据,主要是 FF,仍然没有正常启动日志。
当时测量 Kindle TX 对 GND,电压约为 1.78V。这些结果一度让排查方向转向信号质量和电平识别。
最后发现,原因就是:串口线插反了。
纠正连接后,重启马上有了完整、可读的启动日志,发送 Enter 也能得到菜单响应。
这件事给我的教训是:模块自环正常、万用表读数合理,都不能代替重新核对端到端的 TX/RX 接线。测得一个静态电压,也不等于已经确认了串口波形。
三、读到真正的故障:根分区能挂载,但 init 启动失败
串口恢复正常后,重启并发送 Enter,可以进入一个带十秒倒计时的恢复菜单:
Menu
====
3. Load MMC0 over USB storage
4. Erase MMC0
I. Initialize Partition Table (fdisk) and format FAT
O. Format and overwrite FAT partition
E. Export FAT partition
U. Update using update*.bin file on FAT partition
M. Update using update*.bin file on FAT partition of second MMC port
D. dmesg / kernel printk ring buffer.
Q. quit不选择菜单项,倒计时结束后会继续默认启动,最后停在下面这段错误:
kinit: /dev/root appears to be a ext3 filesystem
kinit: trying to mount /dev/root on /root with type ext3
kinit: Mounted root (ext3 filesystem) readonly.
kinit: init not found!
Kernel panic - not syncing: Attempted to kill init!这段日志把问题范围缩小了:系统至少能够识别并只读挂载根分区,但随后没有找到或成功执行启动所需的 init 程序。
它不能单独证明某一个文件被删除,也不能证明整块存储器已经损坏。对这台设备,下一步先尝试通过恢复菜单安装对应型号的官方系统。
整个救砖过程没有执行 4、I 或 O,也没有重新初始化分区表。
四、用 E 导出用户分区,再用 U 安装官方固件
1. 导出 FAT 分区
Kindle 自身的 USB 数据口连接电脑后,在恢复菜单倒计时内发送大写 E。
终端出现:
INFO:storage_export(/dev/mmcblk0p4): exporting
[FAT32]
1. done
R. reboot随后 Windows 中出现了 Kindle 盘符。
这次看到的盘是空的,没有可以备份的可见书籍。这里导出的是用户存储分区,空盘并不代表系统根分区也是空的。
2. 准备正确型号的官方固件
这台设备是 KPW1,对应官方列表里的 Kindle Paperwhite(第 5 代)。本次使用的固件是:
update_kindle_5.6.1.1.bin下载来源为亚马逊官方固件列表,本次使用的5.6.1.1 文件地址也来自该列表。
我把 .bin 文件直接放到 Kindle 盘的根目录,没有解压或改名。
3. 结束导出,执行更新
复制完成后,先在 Windows 中安全弹出 Kindle,再通过串口选择:
1. done回到最初的恢复菜单后,在倒计时内发送大写 U。
系统开始识别并检查更新包。过程中出现过这样的输出:
Device code matched (24).
Signature check succeeded.也出现过签名长度相关的 ERROR,但后续同时明确显示:
UImage:Present siglen=256 sigpassed=Yes
RootFS:Present siglen=256 sigpassed=Yes因此,当时没有因为看到单个 ERROR 就中断操作,而是继续观察完整更新结果。
最终日志显示:
uImage update successful!
rootfs.img.gz update successful!
No uboot image found! skipping uboot installation.
bundle /mnt-us/update_kindle_5.6.1.1.bin was successfulNo uboot image found 表示这个更新包没有提供 U-Boot 镜像,安装程序跳过了该部分;这次更新的整体结果明确是成功的。
五、固件写入成功,并不等于第一次启动就完全正常
刷写结束后,设备返回恢复菜单,随后继续启动。
这次已经出现:
Welcome to Kindle!
kindle login:说明它已经越过之前的 init not found! 阶段,进入了用户空间。但是屏幕仍然停在大树,串口日志里出现了新的异常:
Unable to handle kernel NULL pointer dereference at virtual address 00000014
PC is at mxc_epdc_fb_probe+0x1c0/0xfd0 [mxc_epdc_fb]随后图形界面 X 连续重启,计数达到:
RESTART=6这里涉及墨水屏显示驱动初始化,但仅凭这段日志,还不能断定是屏幕硬件损坏或波形文件损坏。
我试着从串口登录 root,系统要求密码,因此并没有直接取得 shell。后来也尝试打断更早的 U-Boot 启动,但仍进入了内核恢复菜单。
再下一次重启时,Kindle 却直接进入了正常设置界面,可以设置 Wi-Fi 和账号。
至此,救砖成功。
需要如实说明的是:这次显示驱动异常为什么在后续重启后不再阻止启动,没有得到进一步验证。过程中没有替换波形文件、修改启动参数,也没有动屏幕排线,不能把成功归因于某个并未执行的“显示修复”。
六、接着折腾:为什么又要降级?
恢复后的系统版本为:
Kindle 5.6.1.1 (268989 035)接下来我希望安装 KOReader。KOReader 是开源阅读软件,在 Kindle 上运行仍需要满足越狱和启动器等条件;它不是用来替换整套 Kindle 系统的刷机固件。
这次采用的是 KPW1 的一条旧版越狱路线:
5.6.1.1
↓ 降级
5.4.4
↓ K5 JailBreak
已越狱的 5.4.4
↓ 官方升级
5.6.1.1
↓ hotfix、启动器与必要修复
运行 KOReader原因是本次使用的 K5 JailBreak 支持 5.0.x 到 5.4.4.2,不能直接用于未越狱的 5.6.1.1。因此先降级执行越狱,再回到原版本。
这里并不是越狱两次。真正触发越狱只有一次,后面的 hotfix 用于修复或保留升级后的越狱组件。
七、备份后,降级到 5.4.4
这次通过普通 USB 存储连接,电脑识别到 Kindle 为 G: 盘。正式操作前,先备份了现有文件,共 137 个文件、约 32.8 MB,并开启飞行模式、确认电量充足。
降级使用亚马逊提供的 5.4.4 固件:
update_kindle_5.4.4.bin本次实际操作方式与这篇 KPW1 实测记录一致:
- 把降级固件复制到 Kindle 根目录,并校验复制后的文件。
- 保持 USB 连接,不先弹出或拔线。
- 长按电源键,直到电脑里的 Kindle 盘消失、充电灯熄灭,再松手。
- 等设备自行重启并执行降级。
完成后,从设备版本文件确认:
Kindle 5.4.4 (225838 026)注意,这一步的“保持 USB 连接后长按电源”是此次降级采用的方式;后面的越狱和正常升级,则按照各自步骤安全弹出、拔线后在设备菜单中执行。
八、安装 K5 JailBreak
本次使用作者 NiLuJe 的发布页中的:
kindle-jailbreak-1.16.N-r19426.tar.xz解开外层压缩包后,再找到里面的:
kindle-5.4-jailbreak.zip要复制到 Kindle 根目录的是这个内层 ZIP 的内容,而不是把整个压缩包直接放进去。它包含 jb.sh、桥接脚本、开发者证书等文件。
其中有一个文件名看起来像 shell 表达式。这是作者安装包原有的文件名,需要原样保留;它不是让人在电脑终端里执行的命令。
复制并校验完成后:
- 安全弹出 Kindle,拔下 USB。
- 打开“主页 → 菜单 → 设置 → 再点菜单 → 更新您的 Kindle”。
- 触发更新,观察屏幕。
这次成功出现:
**** JAILBREAK ****重新连接 USB 后,也能看到越狱生成的 mkk、rp 等目录。
到这里,越狱已经完成。
九、复制 KOReader 和启动器,再升级回 5.6.1.1
本次准备的软件版本为:
| 文件 | 用途 |
|---|---|
koreader-kindle-v2026.07.1.zip | 适合 KPW1 的 KOReader 安装包 |
KUAL-v2.7.37-gfcb45b5-20250419.tar.xz | KUAL 启动器发布包 |
update_kindle_5.6.1.1.bin | 升级回官方 5.6.1.1 |
KOReader 的包名尤其容易选错:KPW1 对应 kindle,不是 kindlepw2、kindlehf,也不是 legacy。 这一点可以在 KOReader 官方 Kindle 安装文档中核对。
解压并复制 KOReader 后,根目录出现:
extensions/
└── koreader/
koreader/第一次安装 KUAL,选用的是:
KUAL-KDK-2.0.azw2它被放入 documents 文件夹,随后在书架上显示为封面写着 Kindle Launcher 的 Active Content。
接着复制官方 5.6.1.1 固件,安全弹出并拔线,通过设备的“更新您的 Kindle”菜单执行升级。
升级成功后,又安装了 NiLuJe 的 K5 hotfix:
Update_jailbreak_hotfix_1.16.N_install.bin这次 hotfix 更新正常完成并自动重启。然而,打开 Kindle Launcher 时,新的问题出现了。
十、KUAL 的签名报错:证书匹配与安装位置都要核对
屏幕提示:
本内容未经授权开发人员签名,请联系开发人员。从 USB 盘读到的 KUAL 崩溃日志更明确:
com.mobileread.ixtab.kindlelauncher.KualKindlet:
Class not signed by valid developer certificate这说明失败发生在 KUAL 的 Kindlet 签名验证阶段,KOReader 还没有被启动。
查询作者的证书更新说明后,确认 KUAL 在 2025 年重新签名,旧版证书不能直接当成新版启动器的完整安装条件。
第一次尝试:只替换 USB 盘上的证书,没生效
先备份旧证书,再把作者新版 developer.keystore 复制到 USB 盘的 mkk 目录。新证书库中的三个证书指纹,与当前 KUAL 包内的三个签名证书逐一匹配。
但是重启后,报错依旧。
进一步检查桥接脚本才发现,USB 盘里的目录和系统内部目录不是一回事:
/mnt/us/mkk USB 可见的备份目录
/var/local/mkk 系统内部的持久目录实际 Java 开发者证书库则位于:
/var/local/java/keystore/developer.keystore正常重启并不会每次都把 USB 备份覆盖到内部目录。所以“USB 盘上的证书替换成功”不能当作“内部证书已经更新”的证据。
第二次尝试:通过 MRPI 安装证书包,启动器仍然报错
随后安装 MRPI,并放入作者的 K5 专用证书更新包:
Update_mkk-20250419-k5-ALL_keystore-install.bin在 Kindle 主页搜索框执行:
;log mrpi安装工具确实启动,屏幕快速显示了几个安装界面,随后界面重新启动。但再次打开旧的 Kindle Launcher,还是同样的签名错误。
这次排查还发现,复制 MRPI 时遗漏了压缩包中的空日志目录,导致没有留下预期的安装日志。后来补齐了目录,并在电脑上解开证书包,确认包内证书就是此前核对过的新版证书。
因此,这一步只能如实记录为:证书包被处理过,但旧 Kindlet 版 KUAL 仍未正常运行;由于缺少那一次的安装日志,不能断言内部证书更新已经完整成功。
这也提醒我,安装工具的空目录有时同样属于安装结构的一部分,不能只复制有文件的目录。
十一、最终成功:使用 Booklet 版 KUAL
继续核对后,发现 KUAL 发布包里还有另一种实现:
Update_KUALBooklet_v2.7.37_install.bin离线检查确认,这个安装包的设备列表包含 KPW1,版本范围也覆盖当前的 5.6.1.1。
它采用 Booklet 的安装和注册方式,避开了此次一直失败的 Kindlet 签名验证路径。因此最后没有继续反复折腾旧的 .azw2 启动器,而是安装 Booklet 版本。
这次使用的 MRPI 版本是:
kual-mrinstaller-1.7.N-r19303.tar.xz复制工具时保留完整目录结构,包括:
extensions/
└── MRInstaller/
├── bin/
├── data/
├── lib/
└── log/
mrpackages/将 Booklet 安装包单独放入:
mrpackages/Update_KUALBooklet_v2.7.37_install.bin安全弹出并拔下 USB,在主页搜索框再次输入:
;log mrpi等待安装完成、书架恢复后,打开新出现的 KUAL,而不是此前报错的 Active Content / Kindle Launcher。
然后选择:
KOReader → Start KOReader这一次,KOReader 成功打开了。
最终得到的可用组合是:
Kindle Paperwhite 第一代
官方固件 5.6.1.1
K5 越狱及 hotfix
KUAL Booklet 2.7.37
KOReader 2026.07.1 的 kindle 版本旧的 Kindlet 启动器当时仍被保留,但实际使用新 KUAL 启动 KOReader。
十二、;log mrpi 到底做了什么?
它调用的是越狱环境中的 MRPI 安装工具。
在本次配置好的设备上,把兼容的第三方 .bin 安装包放进 mrpackages,退出 USB 存储模式后,通过搜索框执行 ;log mrpi,MRPI 就会处理这些安装包。
它不是通用的“所有第三方应用安装命令”。KOReader 本体是解压复制进去,再由启动器启动;而 KUAL Booklet、开发者证书等组件使用 .bin 安装包。它也不能让 Kindle 安装 Android APK。
十三、这次最值得记住的几个点
- 先确认串口接线,再解释乱码。 这次模块和电平都没有排除 TX/RX 插反的可能,真正修正接线后才获得有效日志。
- 看完整日志判断结果。 刷机中出现过
ERROR,但后续校验和最终更新结果是成功;反过来,出现登录提示也不代表图形界面已经正常。 - 救砖不一定要清空整块存储。 这次通过
E导出分区、U安装官方固件完成恢复,没有使用擦除 MMC 或初始化分区表。 - 越狱只做了一次。 降级是为了使用适配的漏洞,升回原版本后安装 hotfix,是维护越狱组件。
- 复制、安装、运行是三个不同阶段。 文件校验正确,只能证明复制正确;是否更新到内部系统、能否启动,还要分别验证。
- 本次最终可用的是 Booklet 版 KUAL。 旧
.azw2版的签名报错没有被确认修复,不能把最终成功写成“更新证书后旧启动器恢复正常”。
这台一度只能显示大树的 Kindle,最后重新进入了官方系统,也成功运行了 KOReader。整个过程并非一路顺畅,但串口日志、原始字节、版本核对和实际启动测试,让每一步最终都有了可以确认的结果。