读取 iButton 钥匙

Flipper Zero 让你可以方便地读取、保存和模拟采用 Dallas、Cyfral 和 Metakom 协议的 iButton 门禁钥匙。此外,你还可以修改已保存钥匙的唯一标识符(UID)。
本页将详细介绍如何使用 Flipper Zero 读取、保存、编辑和模拟钥匙,以及如何排查常见问题。
如何读取 iButton 钥匙
Flipper Zero 可以读取以下类型的 iButton 钥匙及其对应的数据:
- Dallas DS1990:仅 UID(该钥匙没有存储器)
- Dallas DS1992:UID 和存储器中的数据
- Dallas DS1996:UID 和存储器中的数据
- Dallas DS1971:UID 和存储器中的数据
- Dallas 系列不受支持的钥匙:仅 UID
- Metakom:仅 UID(该钥匙没有存储器)
- Cyfral:仅 UID(该钥匙没有存储器)
要使用 Flipper Zero 读取并保存 iButton 钥匙的数据,请执行以下操作:
转到 Main Menu → iButton → Read。
按下图所示,把钥匙贴到数据引脚和接地引脚上。

读取完成后,查看钥匙的数据。

要保存钥匙,请转到 More → Save。
为钥匙命名,然后按 Save。
保存钥匙后,你可以模拟、重命名、删除、编辑它,也可以把它写入空白钥匙或同类型的钥匙。
读取失败时
- iButton 钥匙可能没有正确接触到引脚。→ 请按上图所示连接钥匙。
- iButton 钥匙可能使用了不受支持的协议。
- iButton 钥匙可能已损坏。
- 读取 Dallas 钥匙时出现了 CRC error。→ 请重新读取该钥匙并尝试模拟。如果模拟不成功,该错误就无法修复。要了解更多信息,请参阅下方的 CRC 读取错误章节。
编辑已保存的 iButton 钥匙
你可以按以下步骤编辑已保存钥匙的 UID:
转到 Main Menu → iButton → Saved。
选择你想编辑的钥匙,然后选择 Edit。
以十六进制输入所需的值。

按 Save,然后输入钥匙的新名称并再次按 Save。
你也可以使用 Add Manually 功能创建虚拟 iButton 钥匙。
模拟已保存的 iButton 钥匙
当 Flipper Zero 上已经保存了钥匙时,你可以按以下步骤模拟它:
转到 Main Menu → iButton → Saved。
选择你想模拟的钥匙。
把 Flipper Zero 贴到 iButton 读头上,并按下图所示确保数据引脚和接地引脚与其接触。

模拟失败时
- Flipper Zero 的引脚可能没有正确接触到读头。→ 请按上图所示,把 Flipper Zero 的引脚连接到读头上。
- 中间引脚(接地)无法接触到读头边缘。→ 你可以借助导线来模拟 iButton 钥匙。把两根导线插入 Flipper Zero 的 GPIO 引脚,向读头传输数据:
- GPIO 引脚 17(数据)
- GPIO 引脚 8、11 或 18(接地)

- 该读头具备防模拟保护。→ Flipper Zero 无法绕过。
- 如果你是手动添加或编辑了这把钥匙,可能输入了错误的钥匙 UID。
CRC 读取错误
Dallas 钥匙的 UID 结构共 8 个字节,其中包括家族码字节和循环冗余校验(CRC)字节。CRC 字节通过检测数据传输或存储过程中可能出现的错误,帮助确保数据完整性。

每次读取 iButton 钥匙时,Flipper Zero 都会重新计算 CRC 字节来校验其是否正确。如果捕获到的 CRC 字节与计算结果不一致,就会出现 CRC 错误,说明 UID 已损坏。
