案例
flipper-telink:Tuya Zigbee 遥控器的替换固件
一款 Flipper Zero 应用,以位操作驱动 Telink 的 SWire 调试接口,用于转储并重刷 TLSR825x Zigbee 设备;仓库还附有对转储固件的静态分析笔记,以及为其中两款设备全新编写的固件。针对 Tuya TS0044/TS0046 场景遥控器,笔记将原厂约 500 ms 的单击延迟追溯到双击判定窗口;替换固件取消该窗口,同时向 Zigbee2MQTT 呈现原厂型号标识。最新 Zigbee 版本的配对、动作及电量上报被标注为尚未验证。
使用条件与局限
- 硬件:运行 Unleashed 固件的 Flipper Zero(笔记注明 API 87.8;用官方 SDK 构建的应用无法加载),连接目标设备的 SWS 引脚、地线和 3.3 V。刷写应用用 ufbt 及项目内的 SDK 构建;固件在 Docker tc32 工具链中用 Telink Zigbee+BLE SDK 构建,装入后可通过 BLE OTA 更新。
- 输入为使用者自己的设备及其闪存转储。dumps/ 公开了四款设备的脱敏原厂镜像,Zigbee 网络状态和 Tuya 凭据已由 tools/sanitize_dump.py 清除;原始转储不公开。原厂固件的权利仍归各厂商,仓库未说明这些镜像的使用条款。
- TS0044/TS0046 笔记依据出厂 JSON 配置推导 GPIO 用途,并引用转储中的代码地址,将单击的处理路径追溯为 300 ms 双击判定窗口,加上事件队列、去抖和唤醒开销。反汇编使用仓库自带、基于第三方操作码表的 TC32 反汇编器;笔记称 TS0046 的应用镜像除出厂数据外与 TS0044 逐字节相同。
- 替换固件 v00.14 在松开时发送短按、按住 1 秒发送长按,向 Zigbee2MQTT 呈现为原厂 TS0044/TS0046,并保留用于 OTA 的 BLE 维护模式。进度表记录了早期版本的硬件检查;v00.14 已刷入一台 TS0046,但在 Zigbee2MQTT 中的配对、动作及电量上报被标注为尚未验证。另一款 ZG-226Z 报警器固件据文档已能构建,但尚未在硬件上运行。本次审阅未运行任何程序。
- 仓库根目录没有许可证。固件目录附有取自 pvvx/BZdevice 的构建文件的宽松许可声明及 Telink SDK 的 Apache-2.0 许可,笔记也注明借鉴 pvvx 的 SWire 工作。README 称项目大量依靠氛围编程;作者帖子称由运行 GLM-5.3 的 pi 智能体完成,而所审文件未指明模型,也未确立与 REA 的关联。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 固件
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- custom_fw/ss6400zb/README.md GitHub · ngxson/flipper-telink · 修订 d58aef2
- README.md GitHub · ngxson/flipper-telink · 修订 d58aef2
- AGENTS.md GitHub · ngxson/flipper-telink · 修订 d58aef2
- custom_fw/ss6400zb/src/buttons.c GitHub · ngxson/flipper-telink · 修订 d58aef2
- custom_fw/ss6400zb/src/zb_dev.c GitHub · ngxson/flipper-telink · 修订 d58aef2
- custom_fw/zg226z/DETAILS.md GitHub · ngxson/flipper-telink · 修订 d58aef2
- tools/sanitize_dump.py GitHub · ngxson/flipper-telink · 修订 d58aef2
- tools/tc32dis.py GitHub · ngxson/flipper-telink · 修订 d58aef2
- custom_fw/zg226z/LICENSE.BZdevice GitHub · ngxson/flipper-telink · 修订 d58aef2
- custom_fw/zg226z/SDK/LICENSE.txt GitHub · ngxson/flipper-telink · 修订 d58aef2