Flipper Zero 无线信号文件格式详解:SubGhz 文件系统全解析
前言
Flipper Zero 作为一款多功能安全工具,其 SubGhz 子系统提供了强大的无线信号处理能力。本文将深入解析 Flipper Zero 固件中使用的无线信号文件格式,帮助开发者与高级用户更好地理解和利用这一功能。
一、.sub 文件基础结构
.sub 文件是 Flipper Zero 存储无线信号的核心格式,采用 Flipper 文件格式标准。这类文件可以存储两种类型的数据:
- 协议键值数据:包含特定协议的信号信息
- 原始信号数据:未经协议解码的原始信号
每个 .sub 文件都由三个关键部分组成:
- 文件头:包含文件类型、版本和频率信息
- 预设信息:定义无线电收发器的配置参数
- 协议数据:存储具体的协议信息或原始信号数据
二、文件头详解
文件头是每个 .sub 文件的必备部分,其结构如下:
| 字段名 | 类型 | 说明 | |--------------|--------|--------------------------------------| | Filetype | 字符串 | 必须为 "Flipper SubGhz Key File" | | Version | 无符号整数 | 当前版本为 1 | | Frequency | 无符号整数 | 信号频率,以赫兹(Hz)为单位 |
三、预设系统深度解析
预设系统是 Flipper Zero 无线功能的核心之一,它定义了无线电收发器的各项参数:
1. 预设字段说明
| 字段名 | 说明 | |----------------------|----------------------------------------------------------------------| | Preset | 预设名称,标准预设或自定义预设(FuriHalSubGhzPresetCustom) | | Custom_preset_module | 收发器模块标识,Flipper Zero 使用 CC1101 | | Custom_preset_data | 收发器配置数据,十六进制编码 |
2. 内置预设类型
Flipper Zero 固件提供了四种标准预设:
- OOK270Async:开关键控,270kHz 带宽
- OOK650Async:开关键控,650kHz 带宽
- 2FSKDev238Async:2FSK调制,2kHz 频偏
- 2FSKDev476Async:2FSK调制,47kHz 频偏
3. 收发器配置数据详解
自定义预设的核心是 CC1101 收发器的寄存器配置,其格式为十六进制字符串:
XX YY XX YY .. 00 00 ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ
- XX:寄存器地址
- YY:寄存器值
- 00 00:寄存器块结束标记
- ZZ:8字节功率放大器(PA)表
技术提示:配置数据直接影响信号收发质量,建议参考 CC1101 数据手册进行精确配置。
四、数据部分格式解析
.sub 文件的数据部分有两种主要格式:
1. 键值文件格式
包含特定协议的解码数据,以 Princeton 协议为例:
Protocol: Princeton
Bit: 24
Key: 00 00 00 00 00 95 D5 D4
TE: 400
关键字段说明:
| 字段 | 说明 | |------|--------------------------| | Bit | 有效载荷长度(位) | | Key | 协议有效载荷数据 | | TE | 量化间隔(微秒) |
2. 原始信号文件格式
存储未经解码的原始信号时序数据:
Protocol: RAW
RAW_Data: 29262 361 -68 2635 -66 24113 -66 11 ...
重要特性:
- 数值单位为微秒
- 必须非零且以正数开始
- 数值符号交替变化
- 每行最多512个值
技术提示:传输长RAW信号时需注意SD卡性能,低性能卡可能导致信号传输中断。
3. 二进制原始信号格式(BinRAW)
BinRAW 是 RAW 的优化版本,特点包括:
- 只记录有效重复时序
- 恢复字节传输速率
- 去除广播噪声
- 可模拟几乎所有静态协议
典型结构:
Protocol: BinRAW
Bit: 1572
TE: 597
Bit_RAW: 260
Data_RAW: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0F 4A B5 55 4C B3 52 AC D5 2D 53 52 AD 4A D5 35 00
五、配置文件系统
1. Keeloq 制造商密钥文件
路径:/ext/subghz/assets/keeloq_mfcodes_user
格式示例:
AABBCCDDEEFFAABB:1:Test1
AABBCCDDEEFFAABB:1:Test2
密钥格式说明:
- 前16字符:64位制造商密钥
- 数字:加密方法(0-4)
- 最后部分:密钥名称(不超过64字符)
2. 用户设置文件
路径:/ext/subghz/assets/setting_user
主要功能:
- 添加自定义频率
- 配置跳频频率
- 定义自定义预设
关键配置项:
Add_standard_frequencies: true # 是否加载标准频率
Default_frequency: 433920000 # 默认频率
Frequency: 300000000 # 添加接收频率
Hopper_frequency: 310000000 # 添加跳频频率
六、最佳实践建议
-
信号录制技巧:
- 录制时间应足够长以确保数据完整性
- 复杂信号建议使用BinRAW格式
- 简单协议信号可使用键值格式
-
性能优化:
- 避免过长的RAW数据序列
- 使用高性能SD卡存储信号文件
- 合理设置跳频频率数量
-
自定义配置:
- 修改配置前备份原始文件
- 逐项测试自定义预设效果
- 参考CC1101数据手册优化寄存器配置
结语
Flipper Zero 的 SubGhz 文件系统提供了高度灵活的无线信号处理能力。通过深入理解这些文件格式,用户可以充分发挥设备的无线功能,从简单的信号重放到复杂的协议分析。无论是安全研究人员还是无线电爱好者,掌握这些知识都将大大扩展Flipper Zero的应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考