存储填满、挡掉 OTA 之后,才轮到越狱本身。Sanctuary 走的是 Kindle 自带浏览器里的漏洞,所以全程在设备上完成,不需要连电脑、不需要拆机、不需要装任何 PC 端工具。
先对四个前置条件
四条都满足才往下走:
已注册 Amazon 账号。 支持黑名单设备
固件版本在 5.16.4 ~ 5.18.3 之间。 超出这个区间漏洞已被修掉,或者还不存在
有 Wi-Fi。 整个过程要联网,而且中途不能断
存储已经填满。 也就是上一篇那个 1.47GB 的填充文件
先验浏览器,别急着动手
这一步很多人跳过,但它决定了后面所有步骤有没有意义。
漏洞利用的是旧版 Chromium 内核的行为。Kindle 的固件版本号对得上,不代表里面那个浏览器内核也对得上——所以要单独验一次。
在 Kindle 上打开浏览器(右上角三个点 → Browser),访问:
http://sanctuary.skyvincent.com/scroll
复制
看页面右侧滚动条的样式,和官方文档给出的兼容图示比对。样式一致 = 这台机器跑的还是旧版内核,可以继续;对不上就到此为止,后面的步骤不会成功,而且你会白等二十分钟的端口扫描。
跑越狱
浏览器访问 http://sanctuary.skyvincent.com/
等端口扫描完成。最长可能要 20 分钟,页面完成后会显示一个 ID
把这个 ID 原样填进下方的文本框(网站会自动转成大写),点 Connect
等页面提示 appreg.db、appreg.db.bak、privesc.sh 三个文件下载完成
不要断 Wi-Fi,点右上角的 X 退出浏览器
三个点 → Settings → Help → Getting Started
点下去之后屏幕出现文字提示——这就是成功了
第 5 步值得留意:退出浏览器不等于结束,此时 Wi-Fi 一断,后面的提权就跑不完。整个流程结束之前保持联网。
第 6 步的 Getting Started 是触发器:前面下载的那几个文件已经就位,这一下才让它们真正跑起来。
成功之后立刻开飞行模式
看到那行文字提示,第一件事是开飞行模式、断开 Wi-Fi。
原因是这台机器现在处于一个「已越狱但还没配好防护」的中间状态。Sanctuary 在这一步已经替你做完了四件事:
屏蔽 OTA 更新
重新启用 Store
安装 KPM(Kindle Package Manager)
安装 Hotfix
但把 Wi-Fi 关掉是成本最低的确认动作——填满存储只是让固件包下不来,飞行模式是直接断了它的路。
越狱之后这台机器变成了什么
从这一刻起,它是一台 ARM Linux 小电脑:
Freescale i.MX6 SoloLite,ARM Cortex-A9
512MB 内存,日常约 195MB 可用
1072 × 1448 的 E Ink framebuffer,挂在 /dev/fb0 上
内核 4.1.15-lab126
几个分区的性质差别很大,后面每一步都会用到:
/mnt/us/ FAT,USB 连电脑时可见,不支持符号链接
/var/local/ ext,持久化存储
/tmp/ tmpfs,重启清空,root 的 home 在这里
/etc/ rootfs,只读;mntroot rw 之后可写,改动持久化
复制
/mnt/us 是 FAT 这件事后面会咬人一口——往那儿解压带符号链接的 tar 包会直接报错。
两个常被问到的点
越狱会不会影响正常使用。 不影响 Amazon 书库、Kindle Unlimited 和 Whispersync,这些功能照旧。
mntroot rw 是临时的。 它把只读的根文件系统改成可写,重启之后根分区恢复只读——但这期间写进去的文件会保留。所以改 /etc/ 下的东西是持久的,只是每次改之前都要先 mntroot rw。
下一步是装一个不依赖 KOReader 的独立 SSH 服务,之后就可以从电脑上直接进这台机器了。