Kindle 电子书封面替换指南
2025年4月26日 · 484 字 · 1 分钟
一、需求背景
通过 USB 拷贝到 Kindle 的电子书,有时封面会显示带电子书名的占位符图片,没有那么美观。通过逆向工程发现,封面信息存储在SQLite数据库中,本脚本通过直接修改数据库字段实现封面替换。
数据库结构
- 数据库路径:
/var/local/cc.db
- Entries表结构:
- p_uuid:书籍唯一标识符
- p_location:书籍文件存储路径
- p_thumbnail:缩略图路径字段
- p_cover:封面路径字段
二、操作准备
必要工具:
- 越狱Kindle设备(需安装KUAL环境)
- KUAL插件:USBNetwork Hack
- SSH客户端
三、实现细节
/mnt/us/cover.sh:
#!/bin/sh
DB_PATH="/var/local/cc.db"
THUMBNAIL_DIR="/mnt/us/documents"
sqlite3 "$DB_PATH" "SELECT p_uuid, p_location, p_thumbnail FROM Entries;" | while IFS='|' read -r uuid location p_thumbnail; do
filename=$(basename "$location")
name_no_ext="${filename%.*}" # 去掉扩展名
thumb_path="$THUMBNAIL_DIR/${name_no_ext}.jpg"
echo ${location} ${name_no_ext} ${thumb_path} ${uuid} ${p_thumbnail}
# 如果对应封面图片存在
if [ -f "$thumb_path" ]; then
# 更新数据库中的 p_cover 字段
sqlite3 "$DB_PATH" <<EOF
#UPDATE Entries SET p_cover = '$thumb_path' WHERE p_uuid = '$uuid';
UPDATE Entries SET p_cover = '$thumb_path', p_thumbnail = '$thumb_path' WHERE p_uuid = '$uuid';
EOF
echo "✅ 已更新 $uuid 的封面为 $thumb_path"
else
echo "⛔ 未找到封面:$thumb_path"
fi
done
路径对照示例:
书籍文件 | 封面文件 |
---|---|
/mnt/us/documents/百年孤独.azw3 | /mnt/us/documents/百年孤独.jpg |
/mnt/us/documents/1984.mobi | /mnt/us/documents/1984.jpg |