如何禁止 Kindle 自动更新(六招阻止固件升级)
当亚马逊发布新固件后,会通过 OTA(Over-the-Air,空中下载)的方式陆续推送到 Kindle 设备中,并在没有任何提醒的情况下自动更新,这种不给用户选择权的做法,也是被很多小伙伴诟病的地方。
由于某些原因(比如不喜欢新固件界面、越狱后需要重新安装插件),很多小伙伴想要阻止更新固件,在文章留言区也是经常回复此类问题,所以感觉有必要分享一下禁止更新的方法。
Kindle 固件禁止升级目前有四种方式:1、开启 Kindle 的“飞行模式”;2、让磁盘剩余空间不足 150MB;3、伪装新固件未完成下载文件;4、安装禁止自动升级的越狱插件。详细介绍如下。
一、开启 Kindle 的“飞行模式”
新固件是通过网络利用 OTA 传送到 Kindle 中的,只要不让 Kindle 联网就可以保证不被自动升级。开启“飞行模式”的方法也很简单,点击 Kindle 屏幕上方会调出控制条,点击控制条上的“齿轮”图标,在弹出的快捷操作中,点击“飞行模式”即可开启。
这种方式虽然可行,却有局限性。由于 Kindle 的一些功能,比如电子书商店、推送、数据同步功能都是需要网络支持的,所以打开飞行模式就无法使用这些功能。
有的小伙伴可能想到一种小技巧,平时开启飞行模式,只在需要联网的时候关闭,看起来是个不错的方法,但需要注意的是,通过 OTA 传送的固件文件可能是断点续传的方式传送的,也就是你开一会儿网络,它就下载一点儿,当你开启的次数较多,也会下载完成并自动更新。
二、使磁盘剩余空间不足 150MB
Kindle 升级固件时会先把要更新的固件通过 OTA 下载到本地,下载完毕后后自动激活升级程序进行升级。在在售的 Kindle 设备中,最大的更新固件如 Kindle Voyage 有 220MB 左右,最小固件如入门版 Kindle 也有 190MB 左右。也就是说,把 Kindle 磁盘空间塞满,让其空间不足 150MB,也可以阻止 Kindle 成功下载固件文件,达到禁止 Kindle 固件自动升级的目的。
对于使用 Windows 系统的用户,可以使用网友 Amos 提供的程序,快速生成文件(后缀为.prlm,文件内容全部为无意义的空格符),使得当前磁盘下剩余空间等于 150M 达到阻止 Kindle 下载更新固件。对于磁盘格式为 FAT32 的 Kindle,当磁盘大小大于 4GB 时,会生成若干 3.5G 的文件以确保填充成功。
- 程序下载地址:百度网盘〈提取码 :
ys3x〉
对于使用 macOS 系统或 Linux 系统的用户,可保存并运行以下 Shell 脚本代码填充占位文件:
#!/bin/bash
v=$(df -k | awk 'NR>1 {printf "[%d] %s %d\n", NR-1, $NF, $4}' | column -t)
echo "当前系统中的所有设备:"
echo "------------------------"
echo "$v"
echo "------------------------"
echo -n "选择Kindle设备(输入序号):"
read n
read d s <<< $(echo "$v" | awk -v n=$n 'NR==n {print $2" "$3}')
echo "------------------------"
if [ -d $d/documents -a -d $d/system ]; then
a=$(($s - 150000))
if (($a > 0)); then
echo "正在将占位文件写入到${d}..."
dd if=/dev/zero count=$a bs=1024 2>/dev/null |
split -b 3500000k -a 1 - $d/disable_update. &&
echo "------------------------"
echo '占位文件写入完毕!'
else
echo '空间小于150MB,无需填充。'
fi
else
echo '这不是一个Kindle设备。'
fi
三、伪装新固件未完成下载文件
提示:如果你的 Kindle 固件版本大于 5.10,此方法可能会失效。
这个方法很简单,只需要再 Kindle 根目录创建一个名为 update.bin.tmp.partial 的文件夹即可。
当亚马逊为 Kindle 推送固件更新时,会在 Kindle 根目录创建一个名为 update.bin.tmp.partial 的临时文件(该文件就是未下载完成的新固件文件,即便网络不稳定,它也会不断续传直至下载完毕),如果 Kindle 根目录有与其同名的文件夹,它就无法创建了,从而达到阻止 Kindle 固件自动更新的目的。
四、伪装高版本固件版本号
警告!使用此方法会修改系统文件,一旦 Kindle 越狱失效,被修改的文件将无法还原,只能再次越狱后才能恢复。因此,强烈建议在使用此方法之前需要充分考虑此风险。
Kindle 在更新固件时会检查当前固件的内部版本号,如果当前的内部版本号低于要更新固件的内部版本才会更新。因此用户可以将当前固件的内部版本号改成一个较大的版本以阻止固件升级。
#!/bin/sh
mntroot rw
FW_VERSION=/etc/version.txt
BK_VERSION=/mnt/us/version.txt_bak
if [ ! -f $BK_VERSION ]; then cp $FW_VERSION $BK_VERSION; fi
PATTERN='^\([^0-9]\+\)[0-9]\+\(-[^-]\+-\)[0-9]\+$'
REPLACE='\1999\2999999'
sed -i 's/'$PATTERN'/'$REPLACE'/' $FW_VERSION
eips -d l=fff,w=1200,h=220
eips 2 3 '/etc/version.txt modified successfully'
* 此方法由网友 daibuwen 提供,暂未验证长期的有效性。
五、定时删除未下载完成的文件
此方法需要越狱并能正常使用 ;log 命令。以下脚本会为 Kindle 添加一个计划任务,每分钟清空一次未下载完毕的固件文件,理论上。只要固件无法在一分钟内下载完就永远无法下载完。
这里提供了两个脚本,第一个是用来添加计划任务的,如果不想用了就用第二个移除。
具体使用方法为:先将以下内容粘贴到名为 RUNME.sh 的文件中(或点击下面的下载链接下载脚本文件),然后将此文件拷贝到 Kindle 根目录,最后在 Kindle 的搜索框中输入 ;log runme 并按回车。运行成功后 Kindle 根目录会出现文件 crontab_backup.txt(仅做预览之用,可删除)。
添加计划任务
#!/bin/sh
mntroot rw
CRONTAB=/etc/crontab/root
ROOTPATH=/mnt/us
FILENAME=update.bin.tmp.partial
SCHEDULE="* * * * * /bin/sh -c 'echo "" > $ROOTPATH/$FILENAME'"
if [ -n "$(cat $CRONTAB | grep $FILENAME)" ]; then
sed -i "s#.*${FILENAME}.*#${SCHEDULE}#" $CRONTAB
else
sed -i ':a;N;$!ba;s#\n$##' $CRONTAB
echo "$SCHEDULE" >> $CRONTAB
fi
cp $CRONTAB $ROOTPATH/crontab_backup.txt
kill -s HUP $(pidof crond)
eips 2 2 'Scheduled: remove firmware every minute.'
移除计划任务
#!/bin/sh
mntroot rw
CRONTAB=/etc/crontab/root
ROOTPATH=/mnt/us
FILENAME=update.bin.tmp.partial
if [ -n "$(cat $CRONTAB | grep $FILENAME)" ]; then
sed -i "/${FILENAME}/d" $CRONTAB
cp $CRONTAB $ROOTPATH/crontab_backup.txt
kill -s HUP $(pidof crond)
eips 2 2 'The schedule has been disabled.'
else
eips 2 2 'No schedule needs to be disabled.'
fi
六、越狱安装禁止自动升级插件
注意,使用插件禁止升级,需要确保你的 Kindle 已越狱并安装了 KUAL 插件。
1、Rename OTA binaries
警告!使用此方法会修改系统文件,一旦 Kindle 越狱失效,被修改的文件将无法还原,只能再次越狱后才能恢复。因此,强烈建议在使用此方法之前需要充分考虑此风险。
该插件阻止升级固件的思路是重命名 Kindle 更新固件的两个程序 /usr/bin/otaupd 及 /usr/bin/otav3,使升级操作无法正常工作。MobileRead 论坛的网友 Hzj_jie 提供了此方法的思路,网友 hius07 提供了实现此思路的插件。该插件的具体安装及使用步骤如下:
- 下载 renameotabin.zip,解压得到 renameotabin 文件夹;
- 使用 USB 数据线把 Kindle 连接到电脑,直到出现 Kindle 磁盘;
- 把 renameotabin 文件夹拷贝到 Kindle 中的 extensions 文件夹中;
- 安全弹出 Kindle 磁盘,在 Kindle 中打开 KUAL(Kindle Launcher);
- 依次点击菜单【 Rename OTA binaries → Rename】重命名 Kindle 的升级程序。
随后 Kindle 会自动重启,以停止当前正在运行的升级程序。注意,点击【Rename OTA binaries】并重启后,你的 Kindle 将无法自动升级新固件,也无法手动通过 Kindle 的菜单或安装新固件,如果想要恢复,需要点击该插件中的【Restore】重新启用升级程序。
2、BackDoorLock hack
* 提示:此方法需越狱。如果你的 Kindle 固件版本大于 5.12,此方法可能会失效。
MobileRead 论坛的网友 dsmid 提供了一个名为 BackDoorLock hack 的 KUAL 插件,用来禁止 Kindle 的包括自动升级在内的“网络后门”活动的。插件的具体安装及使用步骤如下:
- 下载 backdoorlock_kual_12.zip,解压得到 backdoorlock 文件夹;
- 使用 USB 数据线把 Kindle 连接到电脑,直到出现 Kindle 磁盘;
- 把 backdoorlock 文件夹拷贝到 Kindle 中的 extensions 文件夹中;
- 安全弹出 Kindle 磁盘,在 Kindle 中打开 KUAL(Kindle Launcher);
- 依次点击菜单【 Back Door Lock → Lock the back door 】开启插件。
你可以点击 Lock state 查看插件状态,也可以点击 Delete update file(s) 删除升级固件文件。
3、BookFere Tools
此插件实际上采用的是上面提过的“使磁盘剩余空间不足 150MB”的方法,只是通过插件实现相比手动操作更方便一些。插件的下载以及具体安装方法可参考《BookFere Tools:包含一些实用小工具的越狱插件》这篇文章,此处不再赘述。
插件安装完成后,可以通过点击【Disable Firmware Update】中的【Fill Placeholder】填充 Kindle 的存储空间直至剩余 150 MB,以达到禁止 Kindle 固件升级的目的。如果想要释放被填充的空间,可以点击【Delete Placeholder】删除填充文件。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/472.html
延伸阅读
- [每周一书] 解决《我们内心的冲突》与自己和解
- [每周一书] 从接纳到再传播《创新的扩散》
- [2024.12.09] Kindle 固件升级至 5.17.1.0.4 和 5.17.1.0.3
- Kindle 漫画制作软件 ChainLP 简明教程
- Calibre 使用教程之优化电子书的排版
- [每周一书]《最好的决定》那些选择不生育的人
- [每周一书]《字体故事》西文字体的美丽传奇
- [2025.08.19] Kindle 阅读器固件升级至 5.18.4.0.1
- 只为纯粹阅读体验:亚马逊 kindle 产品经理专访
- 亚马逊为 Kindle 改进了“筛选器”和“排序”功能
- 如何为 Kindle 电子书添加嵌入多种自定义字体
- [每周一书]《被讨厌的勇气》寻找自我的哲学之旅
- [每周一书]《费马大定理》像小说一样有趣的数学史
- [每周一书]《象与骑象人》感性与理性究竟如何相处?
- 亚马逊季度财务报告中为何没有提及 Kindle?
提醒一下各位,要用OTA那个,必须先在越狱那一页把热更新那个插件也下了,这个禁止更新的插件才能正常重启,然后运行。要是没有重启,就没有运行!!
我越狱后使用了Rename OTA binaries插件,后来回复出厂设置了;再重新越狱时卡在安装热修复补丁这一步,因为没有更新功能了,有办法解决吗
那你只能恢复出厂了。
恢复出厂之前要用restore恢复原文件,之后再进行重置。如果你做错了就只能通过新建无后缀的那个文件的方法来重置。
我前面步骤和你一样 使用使用了Rename OTA binaries插件,后来恢复出厂设置;不过我比你好的一点是,我重置后越狱还在,不过我重新下载Rename OTA binaries插件想要restore恢复原文件失败 点了之后什么也没发生,求解
我也是一样的,重新安装了kual插件,再安装koreader ,能安装,但都是打不开了。
好像就卡死在当前的版本上的了,破解不了了,也升不了级了。。。
奇怪的是 runme.sh 里,是可以输出hellow的,正常应该是越狱还在啊
想请教一下。
使用“五、定时删除未下载完成的文件”这个方法,每分钟清空一次未下载完毕的固件文件。这里的“清空”是指把未下载完的固件文件里面的内容删掉了,还是直接把这个固件文件删掉了?另外,这样的脚本会不会增加磁盘的读写次数而影响寿命?
指的是清空内容,非删除文件。脚本本身对磁盘寿命影响不大,但需要注意,临时文件虽然被清空了,只要联网,Kindle 就会不断下载固件文件,这可能会对磁盘和电池寿命有较大的影响。