Flipper Zero Unleashed 固件 Sub-GHz 危险频率扩展(DangerousSettings)完全指南:CC1101 扩展频段、风险与固件实现原理

发布时间:2026/9/13 17:07:34
Flipper Zero Unleashed 固件 Sub-GHz 危险频率扩展(DangerousSettings)完全指南:CC1101 扩展频段、风险与固件实现原理 Flipper Zero Unleashed 固件 Sub-GHz 危险频率扩展DangerousSettings完全指南CC1101 扩展频段、风险与固件实现原理【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware导读本文围绕 Unleashed 固件仓库中的 DangerousSettings.md 展开系统讲解如何通过 microSD 卡上的subghz/assets/dangerous_settings配置文件解锁 CC1101 芯片的危险扩展频率范围并深入解读固件侧从启动加载、频率合法性校验到 RF 通路切换的完整实现链路。读完本文你将理解 281–361 MHz / 378–481 MHz / 749–962 MHz 扩展频段的来龙去脉掌握配置文件的精确格式与启用步骤并能在源码层面说清危险频率到底是如何被固件放行的、为什么它可能损坏硬件。⚠️ 本文涉及的内容可能对硬件造成不可逆损伤请先完整阅读文中的风险章节再决定是否继续。什么是 DangerousSettings一个用配置文件开启的危险开关Unleashed 固件在默认状态下将 CC1101 的可用发射频率严格限制在硬件规格范围内而dangerous_settings则是固件内置的一个运行时解锁开关。它的存在逻辑非常直白默认情况下固件只允许在CC1101 数据手册规格范围内发射当用户将 microSD 卡上的配置文件开关从false改为true后固件会放行超出硬件规格的扩展频率范围281–361 MHz、378–481 MHz、749–962 MHz。该配置文件的实体位于仓库applications/main/subghz/resources/subghz/assets/dangerous_settings内容如下即文档中所说读第一行注释# Do you want to damage your flipper CC1101 radio chip by using Frequencies that outside HW specs? # CC1101 Frequency range specs: 300-348 MHz, 386-464 MHz, and 778-928 MHz # This setting will extend to: 281-361 MHz, 378-481 MHz, and 749-962 MHz yes_i_want_to_destroy_my_flipper: false配置文件采用 FlipperFormat 键值格式唯一的有效开关就是键yes_i_want_to_destroy_my_flipper取值为布尔量false/true。这个略带自嘲的键名本身就是固件开发者对危险性的直白警告。CC1101 硬件规格与扩展范围对照根据 DangerousSettings.md 与源码 furi_hal_subghz.c 中的注释两组范围对比如下频段CC1101 硬件规格默认范围扩展后的危险范围低频段300–348 MHz281–361 MHz中频段386–464 MHz378–481 MHz高频段778–928 MHz749–962 MHz需要特别注意两点增量细节默认范围在 Unleashed 固件中已被温和拓宽文档明确标注 350MHz and 467MHz was added to default range即默认可发射范围的上限实际上放宽到了 350 MHz 与 467.75 MHz见下文源码中299999755–350000335 Hz、386999938–467750000 Hz的判定区间扩展范围来自 YARD Stick One源码注释写明这段扩展范围是Modified by tkerby MX to the full YARD Stick One extended range即移植自 Yard Stick One 软件定义的完整扩展频段但移植到 Flipper Zero 上意味着超出 CC1101 芯片的硬件标称规格。风险声明为什么文档反复强调不要这么做原文档在开篇就给出了四条逐字警告这也是本文唯一建议你逐字记住的内容除非你确切知道自己在做什么否则不要开启该设置几乎所有使用场景都不需要扩展范围在超出硬件规格的频率上发射可能损坏你的硬件Flipper Devices 团队与 Unleashed 固件开发者均不对使用自制固件CFW或扩展频率范围造成的任何损坏负责。从源码角度进一步佐证在 furi_hal_subghz.c 中开发者同样留下了警示注释/* Modified by tkerby MX to the full YARD Stick One extended range of 281-361 MHz, 378-481 MHz, and 749-962 MHz. These changes are at your own risk. The PLL may not lock and FZ devs have warned of possible damage! */注释明确提到两层风险PLL 可能无法锁定频率不可用以及开发团队警告过的潜在硬件损伤。文档与源码的双重警告说明这不是形式主义——CC1101 的锁相环、射频前端匹配网络Flipper Zero 硬件上的 RF 开关与天线匹配电路都是按 300–348 / 386–464 / 778–928 MHz 三段设计的。启用步骤从 microSD 卡修改配置文件如果充分理解上述风险后仍确定需要该功能按原文档给出的步骤执行将 microSD 卡插入电脑或在 Flipper Zero 上通过 qFlipper / 文件管理器访问存储定位到 SD 卡上的subghz/assets/dangerous_settings文件用文本编辑器打开阅读文件开头注释即上文的配置内容将最后一行yes_i_want_to_destroy_my_flipper: false中的false改为true保存文件重启设备该设置在启动阶段被读取见下文原理章节。该文件在固件打包时随 subghz 应用的资源一起部署到 SD 卡。在仓库中它位于 applications/main/subghz/resources/subghz/assets/dangerous_settings对应设备上的/ext/subghz/assets/dangerous_settings/ext即 microSD 卡挂载点。如果希望恢复默认行为只需将值改回false并重启即可无需重刷固件。固件实现原理从启动加载到频率放行的完整链路启动阶段一个独立的 STARTUP 应用负责读取开关dangerous_settings的读取被实现为一个独立的启动级STARTUP应用其声明位于 applications/main/subghz/application.famApp( appidsubghz_load_dangerous_settings, apptypeFlipperAppType.STARTUP, entry_pointsubghz_dangerous_freq, requires[storage, subghz], order650, )即固件在启动阶段order650会执行 subghz_dangerous_freq.c 中的subghz_dangerous_freq()函数。其核心逻辑是打开RECORD_STORAGE记录获取存储服务通过 FlipperFormat 打开/ext/subghz/assets/dangerous_settings调用flipper_format_read_bool(fff_data_file, yes_i_want_to_destroy_my_flipper, is_extended_i, 1)读取开关值调用furi_hal_subghz_set_dangerous_frequency(is_extended_i)将状态写入 HAL 层顺带加载外部模块的功放/LED 控制状态subghz_last_settings_load与furi_hal_subghz_set_ext_leds_and_amp。因此修改配置文件后必须重启设备——该开关只在系统启动的这个瞬间被读取并固化到 HAL 状态结构体中。HAL 层状态位如何影响发射许可furi_hal_subghz_set_dangerous_frequency只是把布尔值写入FuriHalSubGhz结构体的dangerous_frequency_i位字段见 furi_hal_subghz.ctypedef struct { ... bool ext_leds_and_amp : 1; bool dangerous_frequency_i : 1; } FuriHalSubGhz;真正起裁决作用的是发射许可函数furi_hal_subghz_is_tx_allowedfuri_hal_subghz.c它的逻辑是典型的双阈值闸门开关为false默认频率必须落在默认范围内——实际判定区间为299999755–350000335 Hz、386999938–467750000 Hz、778999847–928000000 Hz注释说明 348→350、464→467.75 是 Unleashed 的温和放宽否则记录日志Frequency blocked - outside default range并拒绝发射开关为true危险模式改以furi_hal_subghz_is_frequency_valid判定即是否落在扩展范围281000000–361000000、378000000–481000000、749000000–962000000Hz 内否则记录Frequency blocked - outside dangerous range并拒绝。也就是说危险模式并非无限放开——它只是把许可窗口从硬件规格扩大到 Yard Stick One 的扩展区间超出 281–361 / 378–481 / 749–962 MHz 的频率依然会被拦截。在furi_hal_subghz_set_frequency中is_tx_allowed的裁决结果还会进一步决定regulation状态许可则置为SubGhzRegulationTxRx可收发不许可则降级为SubGhzRegulationOnlyRx仅接收。这意味着即使频率被设置只要超出许可范围设备也会自动退化为只听不发。RF 通路切换扩展范围如何映射到硬件路径CC1101 之外Flipper Zero 板载了射频开关RF switch不同频段需要切换不同的 RF 通路。furi_hal_subghz_set_frequency_and_pathfuri_hal_subghz.c展示了扩展范围与通路的对应关系频率范围RF 路径281–361 MHzFuriHalSubGhzPath315378–481 MHzFuriHalSubGhzPath433749–962 MHzFuriHalSubGhzPath868源码注释明确说明这段扩展区间只用于选择正确的 RF 路径并不决定你是否能发射真正决定能否发射的是上述is_tx_allowed。furi_hal_subghz_set_path则通过操作gpio_rf_sw_0引脚与 CC1101 的IOCFG2寄存器配置来切换对应通路。若传入的频率不落在任何已知区间固件会直接furi_crash(SubGhz: Incorrect frequency during set.)触发崩溃——可见频率校验在固件中是硬性约束。搭配使用在扩展范围内添加自定义频率开启危险模式后你还需要让目标频率出现在设备的频率列表中才能正常扫描与发射。这由另一份 SD 卡配置文件subghz/assets/setting_user控制完整说明见 SubGHzSettings.md核心要点如下设备上的用户配置为subghz/assets/setting_user把.example后缀去掉即可启用在默认频率列表之后追加自定义频率格式为一行一个例如Frequency: 928000000必须保持 9 位数字格式若希望只用自定义频率、禁用内置默认列表把Add_standard_frequencies: true改为false此时主频率列表与 Hopper 列表都需自行补齐否则列表为空Hopper跳频列表通过Hopper_frequency: 345000000追加官方建议保持精简否则跳频功能会失去实用价值。仓库中的默认频率与 Hopper 列表示例均可在 SubGHzSettings.md 中找到这里不再赘述。常见问题与最终提醒改了配置但没生效检查是否已重启设备——开关仅在启动阶段读取且文件路径必须位于 microSD 卡的subghz/assets/下改了配置仍提示频率被拦危险模式只放行 281–361 / 378–481 / 749–962 MHz超出该窗口的频率会被日志标记为outside dangerous range并拒绝发射如何确认固件读取到了配置可以观察设备日志中是否有Frequency blocked - outside default range或outside dangerous range的FURI_LOG_I记录以此判断频率裁决处于哪一层。最后再次强调原文档的立场扩展频率范围不是常规功能而是面向具备射频知识的开发者的调试级开关。默认范围含 Unleashed 温和放宽的 350 / 467.75 MHz已覆盖几乎所有合法使用场景开启危险模式意味着你接受 PLL 失锁、信号失真乃至射频前端损坏的可能性且无人为此负责。请务必在充分理解硬件原理、且所在地区法规允许的前提下操作。【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考