{
  "added_at": "2026-11-08",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "telink-usb-ota reconstructs Telink's USB-HID OTA update exchange as a Rust Linux host tool for querying and flashing a CIDOO V65 v2 keyboard. Its protocol notes specify 33-byte HID reports, START and FINISH opcodes, 16-byte data chunks, CRC-16/MODBUS and the next-chunk acknowledgement rule, derived from updater and firmware disassembly and checked by the author against hardware.",
  "description_zh": "telink-usb-ota 将 Telink USB-HID OTA 更新交互实现为 Linux 上的 Rust 工具，可查询 CIDOO V65 v2 键盘版本并写入固件。协议资料记录了 33 字节 HID 报告、START 和 FINISH 操作码、16 字节数据块、CRC-16/MODBUS，以及响应中表示下一数据块序号的规则；作者称这些信息来自升级程序和固件反汇编，并经实机核对。",
  "entry_url": "https://awesomerea.org/resources/telink-usb-ota-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/telink-usb-ota-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/jbonadiman/telink-usb-ota/blob/df23c6e46aa51aa4fbec5d4c6248ecb68ba0344e/README.md",
  "group": "cases",
  "id": "telink-usb-ota-case",
  "json_url": "https://awesomerea.org/resources/telink-usb-ota-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/telink-usb-ota-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/telink-usb-ota-case/index.md",
  "name": "telink-usb-ota: reconstructing Telink USB-HID firmware updates",
  "name_zh": "telink-usb-ota：重建 Telink USB-HID 固件更新协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "testing",
    "limits",
    "license"
  ],
  "requirements": [
    "Linux hidraw access, Rust and a compatible Telink device are required; flashing also requires a firmware image and --confirm-flash.",
    "The author tested a CIDOO V65 v2 keyboard; other Telink devices require device-specific checking.",
    "Flashing has no reconnect-and-resume path or firmware read-back.",
    "AGPL-3.0-only license."
  ],
  "requirements_zh": [
    "需要 Linux hidraw 访问权限、Rust 和兼容的 Telink 设备；刷写还需要固件镜像及 --confirm-flash 参数。",
    "作者测试了 CIDOO V65 v2 键盘；其他 Telink 设备需分别核对。",
    "刷写过程中没有断线续传，也不支持固件读回。",
    "AGPL-3.0-only 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "firmware",
    "protocol"
  ],
  "url": "https://github.com/jbonadiman/telink-usb-ota",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
