
吃灰的 Kindle 7,被我改成了一块日历天气屏
抽屉里那台 Kindle 7 吃灰好几年了。当年换了带前置灯的 Paperwhite 10 后,这台没有背光的 7 代就被替换了下来。
这几天我把它翻出来,打算改成挂在玄关的桌面日历天气屏:定时唤醒,把月历和天气刷在墨水屏上,刷完继续休眠。
文末附了提示词,可以复制给 Claude Code / Cursor / Codex 等 AI 助手直接帮你操作,助手会先诊断设备再执行。想自己动手可以看下文。
确认硬件与固件
翻出机身背面标签确认型号:
1 | MODEL NO. WP63GW FCC ID: 2ABQ9-0725 ... INPUT: 5.25V ⎓ 500mA |
查下对应的是 Kindle 7(2014 年第 7 代入门版,代号 KT2)。
- 屏幕:6 英寸电子墨水屏(600×800,167 ppi,16 级灰阶)
- 前置灯:无(暗处看不清,适合摆在玄关或书桌等有光处)
- 存储:4 GB
- 固件版本:5.11.1.1

这台机器之前刷过 CrackDroid 双系统
这台机器早几年刷过 CrackDroid 双系统(安卓 4.4.2 + 原生 Kindle OS),用 fastboot 刷入:
- 原生切安卓:设置 → 设备选项 → 重启
- 安卓切原生:「Eink 设置」→ 点击「启动 Kindle」
安卓 4.4.2 在这个硬件上卡顿明显,且刷机重置了原生系统,清空了旧越狱和 KUAL。这次改造直接在原生系统下进行。
固件越狱(KindleBreak)
5.11.1.1 固件属于 KindleBreak(支持 5.10.3–5.13.3)范围。文件来自 MobileRead 社区的 jb-kindlebreak.zip 压缩包:
- 开启飞行模式(防止自动升级);
- 解压
jb-kindlebreak.zip,将jb、jb.sh、kindlebreak.html、kindlebreak.jxr拷入 Kindle 根目录; - 将
file__0.localstorage放入/.active_content_sandbox/browser/resource/LocalStorage/(没有该目录则手动建); - 拔掉数据线,打开 Kindle 内置的「体验版浏览器」;
- 浏览器卡死后等待 1–5 分钟重启,弹出
Application Error或Collecting Debug Info即越狱成功。

越狱验证与热修复
KindleBreak 完成后搜索框输入 ;log 无反应属于正常现象,该命令由热修复(Hotfix)包提供。
先检查根目录越狱日志 kindlebreak_log.txt:
1 | Created developer key (0) |
确认日志无误后安装 Universal Hotfix:
- 从 KindleModding/Hotfix 下载
Update_hotfix_universal.bin拷入根目录; - 拔线点击「设置 → 右上角菜单 → 更新您的 Kindle」;
- 重启后在书库点击 Run Hotfix;
- 搜索框输入
;log弹出提示即安装完成。
热修复提供了后文依赖的三项能力:注入 ;log、安装工具 FBInk、开启 sh_integration(允许书库直接运行 Shell 脚本)。
放弃 KUAL 与 linkss,改用脚本替换屏保
传统方案常用 KUAL 菜单 + linkss 插件,但在这台 5.11.1.1 设备上并不适用:
- 新版 KUAL (PEKI) 要求固件 ≥ 5.12.2.2;
- linkss 旧链接大多失效,且只支持静态本地轮播,无法完成远程定时抓图。
热修复自带的 sh_integration 能让 documents/ 下的 .sh 脚本像电子书一样在书库里直接以 root 权限运行。
既然 linkss 本质也是替换系统屏保图片,直接用 Shell 脚本替换原生文件更干净。
屏保替换细节
原生屏保存储在 /usr/share/blanket/screensaver/bg_ss00.png 至 bg_ss19.png(共 20 张 600×800 图片)。
注意事项:
- rootfs 为只读挂载,替换前需
mntroot rw,替换后恢复mntroot ro; - 备份原图以便还原;
- 将 20 张替换为同一张图片,休眠时即可固定显示日历。
此外,替换图片不需要重启 Kindle 框架(stop framework && start framework)。系统会在进入休眠的瞬间现读屏保文件,只要在休眠前完成覆盖就能无感生效。
自动化更新机制
服务端(小服务器/NAS)
- Python Pillow 绘制当月日历与天气,生成 600×800 PNG;
- 农历支持节气与节日;
- 天气调用 Open-Meteo API(免费无 Key);
- 请求异常时自动使用上次缓存。
设备端处理
RTC 唤醒需走 powerd 接口
直接向/sys/class/rtc/rtc0/wakealarm写入时间无效,因为 Kindle 的powerd休眠前会用rtcWakeup覆盖闹钟。必须在readyToSuspend事件触发时设置:1
2
3lipc-wait-event -m com.lab126.powerd 'goingToScreenSaver,wakeupFromSuspend,readyToSuspend'
# 收到 readyToSuspend 时设置:
lipc-set-prop -i com.lab126.powerd rtcWakeup 3600Wi-Fi 恢复重试策略
定时唤醒后 Wi-Fi 重连需 15–30 秒不等。采用三段式重试(等待 15 秒 → 重置连网等待 30 秒 → 最长重试 150 秒),避免超时导致拉图失败白耗电。屏保主动重绘
powerd定时唤醒不会主动刷新屏保画面,拉取新图后需调用eips -g手动刷屏。休眠计时陷阱
Kindle 休眠时 Shell 的sleep会挂起(基于CLOCK_MONOTONIC),时间计算需统一使用挂钟时间戳(date +%s)。
设备端执行流程
1 | upstart 守护任务 |

改造成果
- 屏保为当月月历,今日格子反白显示;
- 附带农历、节气与节日;
- 下半屏显示天气与未来三天预报;
- 每小时自动唤醒一次,刷新后继续休眠;
- 书库点击
ss-restore.sh随时还原官方屏保。
摆在玄关,白天看很清晰。闲置硬件重新利用起来了。
项目代码
代码与踩坑记录已整理在 GitHub:
https://github.com/fanzhh/kindle-calendar-weather
docs/pitfalls.md 记录了遇到的一些具体问题(如 ;log 依赖、powerd 覆盖 RTC 闹钟、唤醒后 Wi-Fi 恢复耗时、busybox 计时器机制、Shell 参数解析等)。
附:把大部分工作交给 AI 助手
如果不打算手动配置,可以把下面这段 Prompt 复制给支持终端与文件操作的 AI 助手(如 Claude Code / Cursor / Codex)。前提是 Kindle 已越狱、已安装热修复并连接电脑。
1 | 你是我的技术助手。现在有一台已越狱并装好热修复的 Kindle,通过 USB 连在这台电脑上, |