likzq30-ship-it/youdao-dictpen-s6-notes
GitHub: likzq30-ship-it/youdao-dictpen-s6-notes
Stars: 0 | Forks: 0
# Youdao Dictionary Pen S6 — 固件分析日志
本项目是对**有道词典笔 S6**(YDPS6-1)固件的逆向分析研究归档。
目标是记录 ADB 认证机制、OTA 安全机制、WebSocket 控制端口及系统调用链,
**不提供破解、刷机、绕过签名、爆破工具**。
## 设备信息
- 型号:Youdao Dictionary Pen S6 / 有道词典笔 S6 (YDPS6-1)
- 芯片:Sophgo/Cvitek CV1826 (ARM Cortex-A53)
- 系统:定制 Linux (非 Android)
- 固件版本(分析对象):4.0.4
- OTA 包:`update_4.0.5.img` (4.0.4 → 4.0.5 delta)
## 研究目标
1. 分析 ADB (5555) 认证机制及 `/usr/bin/adb_auth.sh`
2. 分析 OTA 固件格式及签名验证机制
3. 分析 WebSocket 9307 端口用途及协议格式
4. 追踪 `setAdbEnable` 调用链(JS → C++ → HAL → shell)
5. 分析 `/usr/bin/safepowerdown` 与 SSH 的关联
## 当前结论摘要
| 主题 | 结论 | 置信度 |
|------|------|--------|
| ADB 5555 端口 | 开放,但 `adb shell` 需要 auth | ✅ 已证实 |
| OTA 签名 | RSA / X.509 / CMS / PKCS7,非对称签名 | ✅ 已证实 |
| OTA 改包 | 不可行,需要私钥签名 | ✅ 已证实 |
| 旧密码 `CherryYoudao` / `x3sbrY1d2@dictpen` | 对 S6 4.0.4 **不适用** (SHA256 哈希不匹配) | ✅ 已证实 |
| `adb_auth.sh` 完整逻辑 | SHA256 验证+绕过文件机制推测存在,但脚本内容未获取 | ❓ 未确认 |
| WebSocket 9307 | RFC 6455 可握手,真实 JSON-RPC payload 格式未确认 | ❓ 未确认 |
| `setAdbEnable` 调用链 | JS → C++ → HAL → shell 完整链路已从符号表恢复 | ✅ 已证实 |
| `safepowerdown` 与 SSH | HAL 层 fork `/usr/bin/safepowerdown`,但不直接启动 SSH | ❓ 未确认 |
## 重要声明
- **本项目不提供 patched OTA 固件**
- **本项目不提供可直接攻击设备的 payload**
- **本项目不鼓励爆破密码、刷改包固件、绕过签名检查**
- **本项目不包含设备唯一标识(SN、MAC)或个人网络信息**
- 所有分析以**离线、只读**方式进行
## 仓库结构
youdao-dictpen-s6-notes/
├── README.md # 本文件
├── LICENSE # CC BY 4.0
├── .gitignore
├── docs/
│ ├── 00_summary.md # 结论摘要
│ ├── 01_device_and_environment.md # 设备信息与环境
│ ├── 02_adb_auth.md # ADB 认证分析
│ ├── 03_ota_analysis.md # OTA 机制分析
│ ├── 04_websocket_9307.md # WebSocket 9307 分析
│ ├── 05_hal_set_adb_chain.md # setAdbEnable 调用链
│ ├── 06_safepowerdown.md # safepowerdown 分析
│ ├── 07_open_questions.md # 未解问题
│ └── 08_risk_and_safety.md # 安全边界
├── artifacts/
│ ├── README.md
│ └── hashes.md # 关键文件哈希
└── scripts/
├── README.md
├── safe_strings_search.sh # 安全信息搜索
└── safe_extract_notes.sh # 文件列表整理
## 后续社区可补充
- S6 4.0.4 完整 rootfs 镜像(如有合法获取途径)
- `/usr/bin/adb_auth.sh` 完整脚本内容
- `/usr/bin/safepowerdown` 完整脚本/二进制
- 9307 WebSocket 的真实 JSON-RPC 请求格式(来自 JS bundle 提取)
- 旧版固件(2.x/3.x)对比分析
- 官方 debug mode 开启方式(如有文档)
## 参考文献
- PenUniverse/PenMods — 有道词典笔社区研究
- GitHub Discussion #178 — 有道词典笔 S6 刷机探索
- websocketpp — WebSocket C++ 库
- Adups FOTA — OTA 服务商
## License
本仓库文档采用 [CC BY 4.0](LICENSE) 许可。