163 lines
4.2 KiB
Markdown
163 lines
4.2 KiB
Markdown
# Kindle Voyage 5.13.6 新机 Bootstrap 说明
|
||
|
||
## 目标
|
||
|
||
把“同型号新机拉齐能力”收敛成一个单入口脚本:
|
||
|
||
- 预置 `WatchThis` payload
|
||
- 预置 `KUAL / MRPI / USBNetwork / kindle-dash`
|
||
- 可选预置 `KTerm`
|
||
- 预置 SSH 恢复脚本
|
||
- SSH 打通后自动同步 dashboard、切主题、立即出图
|
||
|
||
对应脚本:
|
||
|
||
- [bootstrap-new-kindle.sh](/Users/gavin/kindle-dash/bootstrap-new-kindle.sh)
|
||
|
||
## 先说结论
|
||
|
||
这个脚本不是“100% 零交互刷机”。
|
||
|
||
当前仍然不能完全自动化的部分有:
|
||
|
||
1. `WatchThis` demo 流程本身需要设备端手势与点击
|
||
2. `;log mrpi` 需要在 Kindle 搜索栏手工触发
|
||
3. 首次 SSH 最稳的方式仍然是在 `KTerm` 里执行:
|
||
|
||
```sh
|
||
sh /mnt/us/ssh-force-dropbear-22.sh
|
||
```
|
||
|
||
所以这套 bootstrap 的真实定位是:
|
||
|
||
- 尽量把 Mac 侧和文件预置自动化
|
||
- 把设备侧必须手工的动作压到最少
|
||
|
||
## KTerm 说明
|
||
|
||
当前仓库默认不自带 `KTerm` 安装包。
|
||
|
||
脚本支持两种方式把 `KTerm` 纳入预置:
|
||
|
||
1. 直接把官方 `KTerm` release 的 `.zip` 放到:
|
||
|
||
```text
|
||
dash/staging/kterm/kterm-kindle-*.zip
|
||
```
|
||
|
||
2. 或执行脚本时显式传入:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh prepare-storage --kterm-package /绝对路径/kterm-kindle-*.zip
|
||
```
|
||
|
||
3. 或直接让脚本在 Mac 侧联网下载:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh prepare-storage --download-kterm --kterm-version latest
|
||
```
|
||
|
||
也可以固定版本:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh prepare-storage --download-kterm --kterm-version v2.6
|
||
```
|
||
|
||
如果脚本没有找到 `KTerm` 安装包,它不会报错退出,但会明确提示:
|
||
|
||
- 本轮只预置 SSH 恢复脚本
|
||
- `KTerm` 仍需手工补装
|
||
|
||
下载逻辑说明:
|
||
|
||
- 下载发生在 Mac 侧,不在 Kindle 设备侧进行
|
||
- 下载后的 `.zip` 会缓存到 `dash/staging/kterm/`
|
||
- 对 `Kindle Voyage 5.13.6`,脚本默认优先选择不带 `armhf` 后缀的 `.zip`
|
||
- 预置时会直接解压到 Kindle 的 `extensions/`
|
||
|
||
## 脚本模式
|
||
|
||
### 1. `prepare-storage`
|
||
|
||
当 Kindle 以 USB 存储方式挂载到 Mac 后执行:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh prepare-storage
|
||
```
|
||
|
||
它会自动:
|
||
|
||
- 把 `KV-5.13.6.zip`、`demo.json` 放到 `.demo/`
|
||
- 创建 `.demo/goodreads/`
|
||
- 把 `Update_hotfix_watchthis_custom.bin` 放到 Kindle 根目录
|
||
- 把 `extensions/`、`mrpackages/`、`dashboard/` 预置到 Kindle
|
||
- 把 `scripts/kindle/*.sh` 拷到 Kindle 根目录,供 `KTerm` 使用
|
||
- 如果检测到 `KTerm` zip,也会一并解压到 `extensions/`
|
||
|
||
### 2. `post-ssh`
|
||
|
||
当 Kindle 已连上 Wi‑Fi,且你已经在 `KTerm` 拉起 `dropbear` 后执行:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh post-ssh
|
||
```
|
||
|
||
它会自动:
|
||
|
||
- 修复设备侧 SSH 辅助脚本权限
|
||
- 尝试同步 `authorized_keys`
|
||
- 同步 dashboard 运行时和主题包
|
||
- 立即切到指定主题并把背景画到屏幕上
|
||
|
||
可选:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh post-ssh -t simple -o portrait
|
||
sh bootstrap-new-kindle.sh post-ssh --start-dashboard
|
||
```
|
||
|
||
### 3. `all`
|
||
|
||
默认模式:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh
|
||
```
|
||
|
||
逻辑是:
|
||
|
||
- 如果检测到 `/Volumes/Kindle`,先做 `prepare-storage`
|
||
- 如果同时检测到 `ssh kindle` 可用,再继续做 `post-ssh`
|
||
- 哪一段当前做不了,就明确打印下一步人工动作
|
||
|
||
## 设备侧最短人工步骤
|
||
|
||
1. 恢复出厂并进入 demo mode
|
||
2. 到真正的 `Sideload Content` 时机
|
||
3. 让脚本已预置好的 `.demo` payload 生效
|
||
4. 通过 `Get Started` 完成越狱
|
||
5. 搜索 `;log mrpi`
|
||
6. 在 `KUAL` 中先执行 `Rename OTA Binaries -> Rename`
|
||
7. 如果本轮没有预置 `KTerm`,这里先手工补装 `KTerm`
|
||
8. 连上 Wi‑Fi
|
||
9. 打开 `KTerm`,执行:
|
||
|
||
```sh
|
||
sh /mnt/us/ssh-force-dropbear-22.sh
|
||
```
|
||
|
||
10. 回到 Mac,执行:
|
||
|
||
```sh
|
||
sh bootstrap-new-kindle.sh post-ssh
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- WatchThis 越狱路径:
|
||
[kindle-voyage-5.13.6-watchthis-zh.md](/Users/gavin/kindle-dash/dash/docs/kindle-voyage-5.13.6-watchthis-zh.md)
|
||
- SSH 打通与 KTerm 兜底:
|
||
[kindle-voyage-5.13.6-dual-ssh-playbook-zh.md](/Users/gavin/kindle-dash/dash/docs/kindle-voyage-5.13.6-dual-ssh-playbook-zh.md)
|
||
- 恢复出厂后的 bootstrap 闭环验证:
|
||
[kindle-voyage-5.13.6-bootstrap-validation-zh.md](/Users/gavin/kindle-dash/dash/docs/kindle-voyage-5.13.6-bootstrap-validation-zh.md)
|