如何禁止 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 固件自动更新的目的。
四、定时清空未下载完成的文件
此方法需要越狱并能正常使用 ;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.'
五、安装禁止自动升级的越狱插件
注意,使用插件禁止升级,需要确保你的 Kindle 已越狱并安装了 KUAL 插件。
1、Rename OTA binaries
该插件阻止升级固件的思路是重命名 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】删除填充文件。
以上便是禁止 Kindle 固件自动升级的几种方法。如果你使用了这些方法,不论是否有效欢迎留言反馈。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/472.html
延伸阅读
- [每周一书]《改变》常规之外解决问题的哲学法则
- [2019.01.28] Kindle Paperwhite 2 固件升级至 5.10.2.1
- 纸质书与电子书:哪一种在保护森林和碳减排方面更出色
- [2018.12.01] Kindle Paperwhite 4 固件升级至 5.10.1.3
- 从学渣到学霸:我的 100 天阅读简史
- KOReader:适用于 Kindle 的全能第三方电子书阅读器插件
- 如何修改 Kindle 原生系统的页面边距(需越狱)
- Kindle 世代命名迷思:2024 年亚马逊到底换代了几款设备?
- [每周一书] 清醒的现代人《刘擎西方现代思想讲义》
- [2016.06.15] Kindle 阅读器固件升级至 5.8.1
- [每周一书]《明智行动的艺术》避开 52 种行为错误
- [2024.07.23] Kindle 阅读器固件升级至 5.16.10.0.1
- 如何使用 Kindle 的原生自定义字体功能
- [每周一书]《源泉》寻求生命的路标
- 轻松学摄影:中外摄影类 Kindle 电子书(国外篇)
我的KINDLE只用于看书,所有书籍都是USB传输,所以只要把KINDLE上所有的WIFI密码都删除,它再想偷袭我的电子书也没法下手。
我想是不是在路由器上屏蔽了kindle获取更新包的网址就可以让它不自动更新了,但是有没有高手知道他ota的网址啊
因为退出亚马逊账号。导致越狱失效。现在打算手动刷回去。可是发现机器以及无法识别手动刷机包了。怎么办啊。目前机器无法越狱无法升级。直接卡死了。
切换账号可能会让插件失效(越狱一般不会失效),直接重新安装插件即可。
可现在Kindie以及无法识别根目录下的更新包了。无法选择手动更新
Hotfix 或插件都可以通过在 Kindle 搜索框中运行
;log mrpi
命令安装,具体可参考《如何恢复越狱和插件》这篇文章。安装禁止升级固件 Rename OTA binaries
相到一个可怕的问题,就是
手贱,没有 点击该插件中的【Restore】,就重置了Kindel (不确定是否能重置)
因为这是改了系统文件名称,Kindel恢复未越狱状态,刷bin的功能已经不可用,
此时的Kinde是否就是一台,未越狱,无法升级固件,因为无法安装bin自然也无法越狱.的Kindel?
【Restore】不是重置 Kindle 而是恢复升级程序,只不过会重启一下 Kindle。
你可怕的问题我碰到了,手贱切换到美区发现啥都没了,也无法升级固件。重新越狱,在demo模式下总算可以进kual,重新安装Rename OTA binaries,restore重启后总算一切正常。中间可能还安装了Update_jailbreak_hotfix_x.xx.N_install.bin,反正一通乱试
这个倒霉问题我也遇到了,但是此时设备应该还是越狱成功的状态,试过楼上的demo没折腾明白,我自己折腾了两个小时以后发现只需要用mori重新装一遍越狱步骤帖子里的热修复补丁(通过把bin文件放进m啥的那个文件夹之后用;log mori方式安装)然后再重新装kual和这个插件,restore后设备自动重启,应该就好了
请问一下,越狱以后,为什么没法新建收藏夹了?总是灰的。
你的 Kindle 登录亚马逊账户了吗?创建收藏夹需要登录亚马逊账户。
1、开飞行模式(不便,容易误打开WIFI自动升级)
2、容量填满(不便,存储芯片有擦写次数且填满容易出问题)
3、越狱装插件Rename OTA binaries,开启后自动重启(亲测有效,KO1和KO3,系统5.10.3、5.13.3、5.13.5均测试过)
亲测,Rename OTA binaries插件有效,在5.10.3,5.13.3,5.13.5,5.14.2系统试验过,都能起作用。
为什么装了Rename OTA binaries 后还是升级了,有什么办法吗
装好需要去kual里面点击选项,然后会自动重启,你操作了么?
Rename之后不自动重启是不是没有开启成功啊
是的,因为重命名后当前升级程序还是运行着的,重启就是为了结束它的运行。
我重置了之后,越狱还在,插件安装完了,再安装这个禁止自动更新怎么都不重启了,不知道哪里出问题了。
如果越狱是有效的,按说点击【Rename】按钮后不论怎样都会重启的。
你可以在 Kindle 根目录创建一个含有如下代码名为 RUNME.sh 的脚本文件,然后在 Kindle 搜索栏中输入
;log runme
,屏幕上会显示所有 ota 开头的文件名,如果不存在 otaupd 和 otav3 这两个文件(会被插件重命名成了 otaupd.bck 和 otav3.bck),就说明升级程序已经被重命名了。我创建了之后,弹出设备,搜索之后没有出现任何ota 开头的文件,我试过之前越狱是否失效的检查的方法,Kindle 屏幕左上角,如果出现“Hello World!”字样就表示越狱还在呀。那我现在是不是要重新越狱啊。
其它插件能正常安装吗?
我是越狱之后降级到5.13.3,然后安装了MRPI和KUAL,再安装了Rename OTA binaries,之后有一些功能不能正常用,我就重置了,检查越狱还在就重新安装了MRPI和KUAL,再安装Rename OTA binaries,就不自动重启了。我只是需要阻止它自动更新,所以其他的插件我没有试。
执行;log runme后没有任何响应呢
很简单,用恢复越狱的那个bin文件更新一下
安装了hotfix之后,可以重启了,应该还是越狱不完全失效了吧。
1.通过wifi/usbnet ssh连接到设备。
2.mntroot rw
3.cd /usr/bin
4.mv otaupd otaupd.bck
5.mv otav3 otav3.bck
6.ps aux |grep ota
7.mntroot ro
您将在这里看到四个过程。忽略 “/usr/java/bin/cvm” 和 “grep ota”。
第二列是进程 id,记下其他两个进程的 id,otav3 和 otaupd。
8.pkill {最后一个命令输出中的 id}
9.pkill {最后一个命令输出中的另一个 id}
,或者使用 reboot 命令重新启动设备,而不是 pkill。然后,您将知道这两个进程是否会在重新启动后重新启动。
PS:
otav3 看起来像 “ota” “v3”;我不确定它最近是否已更改为v4。
确实你不需要使用ssh,如果你有koreader,使用插件中的终端模拟器几乎可以做同样的事情。
现在Helper+插件提供了Prevent OTA Updates选项,不知道效果如何
这个插件去哪里下啊,那个backdoor 好像很久没更新了,我装了怎么卸载啊
这里第7个不就是么,https://bookfere.com/post/311.html
backdoor我没装过不知道怎么卸。
其实Prevent OTA Updates就是在根目录新建了一个update.bin.tmp.partial文件夹。
我用了,结果自动更新了,没有用。从5.14.2升到了5.14.3
方法三和设备有关系吗
我在558上5.10.3的固件成功过
如果是kpw3同样的固件还能成功吗
应该是没有关系的,只要固件版本不大于 5.10 就可以。
kpw4 5.14.1版本现在有办法越狱吗?
目前没有适用于这个版本固件的越狱方法,
我c,我崩溃了,PW3 5.12.4,折腾了一下午越狱,然后装这个 backdoorlock_kual_12.zip B玩意,state显示都已经是打开了,然后我才开的 Wi-Fi,结果半小时再看,MD升到5.13.5了,我真是 c了。
同样是5.12.4,现在有啥好的办法禁用更新吗?
https://www.mobileread.com/forums/showthread.php?p=3970208#post3970208
禁止更新有了个新方法好像,不知道有没有效
帖子的25楼有更新相关的KUAL插件。
请问下载“renameotabin.zip”以后,这个插件如何进一步安装?
谢谢!
帖子后面给了使用方法,直接把renameotabin这个文件解压放到kindle的extensions文件夹下,kual会出现有个叫Rename OTA binaries的选项,点进去选Rename,等一下kindle会自动重启,重启后就关闭自动更新了,我用了两天,期间wifi开了又关,至少目前在根目录下没有发现更新文件,貌似挺靠谱的,设备是kpw3,版本5.12.3
非常感谢!!!
我的oasis1代越狱后,一下忘了开启飞行模式,wifi升级后就无限启动了,直至电池耗光。请问怎么修复呀?谢谢!
无限重启是由于固件升级导致的,建议直接找亚马逊官方客服让他们处理。