尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Momentum Firmware SubGHz 区域锁绕过与频率扩展(Bypass Region / Extend Bands)完全指南

Momentum Firmware SubGHz 区域锁绕过与频率扩展(Bypass Region / Extend Bands)完全指南 Momentum Firmware SubGHz 区域锁绕过与频率扩展Bypass Region / Extend Bands完全指南【免费下载链接】Momentum-Firmware Feature-rich, stable and customizable Flipper Firmware项目地址: https://gitcode.com/GitHub_Trending/mo/Momentum-Firmware导读本文围绕 Momentum Firmware 中 SubGHz 发射限制的两种解除手段展开Bypass Region Lock绕过区域锁与Extend Freq Bands扩展频率范围。文章先系统梳理固件在发射前的频率合法性判定流程区域文件、默认范围、硬件支持范围三层检查再逐步讲解两种功能的开启位置、生效原理、配置文件格式与底层实现最后给出风险提示与合规建议。读完本文你将能准确理解 Region is not provisioned 等报错的真实含义知道何时该用哪个开关并能在源码层面解释它们是如何工作的。背景Momentum Firmware 与官方的 SubGHz 限制差异Flipper Zero 的 SubGHz 模块基于 TI CC1101 收发芯片其合法发射频率受所在国家/地区法规限制。固件通过一个名为/int/.region_data的文件来获知当前国家允许的频段信息。该文件由 WebUpdater、Flipper Lab 或 Flipper Mobile App 在刷写固件时写入 SD 卡内部存储/int内容是 protobuf 编码的PB_Region结构包含国家代码与若干允许频段每个频段含起始/结束频率、功率上限、占空比。当/int/.region_data缺失时SubGHz 应用发射会提示Region in not provisioned区域未配置。官方固件与 Momentum 的行为差异场景官方固件Official FirmwareMomentum Firmware区域未配置时打开 SubGHz 应用应用无法打开应用可正常打开频率不在本地区域范围内时接收不允许完全不限制接收仅限制发射发射被限制时直接失败弹出对话框说明原因并给出解决路径从源码看这一差异体现在两个层面区域文件加载逻辑位于 applications/services/region/region.c。region_on_system_start在系统启动时订阅 SD 卡挂载事件一旦 SD 卡就绪就异步加载并解析/int/.region_data将频段信息通过furi_hal_region_set写入 HAL 层。发射权限判定集中在 targets/f7/furi_hal/furi_hal_subghz.c 的furi_hal_subghz_check_tx中。接收路径并不执行该检查只有发射TX会触发。发射被阻止时的四种报错与应对Momentum 在发射前会依次做三层检查任何一层不通过都会返回一个明确的错误码SubGHz 应用随即弹出对应对话框。错误码定义与对话框文案见 applications/main/subghz/subghz_i.c 的subghz_dialog_message_freq_error。报错信息含义底层原因解决方案Region in not provisioned区域未配置/int/.region_data缺失或为空见 region.c 中 Region file missing or empty 分支用 WebUpdater、Flipper Lab 或 Flipper Mobile App 重新更新/安装固件以补写区域文件若无法更新可临时使用 Bypass RegionFrequency outside of region range超出国家允许范围频率不在区域文件声明的频段内使用 Bypass Region绕过区域锁Frequency outside of default range超出默认支持范围频率不在固件内置默认频段内该范围已比官方略宽使用 Extend Bands扩展频率范围请先阅读风险章节Frequency is outside of supported range超出硬件支持范围频率不在 CC1101 及板载 RF 路径可工作的范围内无法以任何方式使用任何固件配置都无效底层检查逻辑三层判定顺序furi_hal_subghz_check_txfuri_hal_subghz.c按如下顺序判定硬件支持范围调用furi_hal_subghz_is_frequency_valid校验频率是否落在 CC1101 的合法规格内不通过则返回SubGhzTxUnsupported这是硬性上限。固件默认范围若未开启扩展且频率不在默认频段内返回SubGhzTxBlockedDefault。注意固件默认范围在官方基础上加入了两个额外频段见下文。区域限制若未开启绕过且区域未配置或频率不在区域内分别返回SubGhzTxBlockedRegionNotProvisioned与SubGhzTxBlockedRegion。只有三层全部通过才返回SubGhzTxAllowed。此外furi_hal_subghz_set_frequency会根据该判定结果设置SubGhzRegulationTxRx或SubGhzRegulationOnlyRx调节模式从而在硬件层面把发射与仅接收区分开。如何关闭 SubGHz 区域锁Bypass Region Lock功能说明开启该设置后固件将忽略国家/地区限制解锁 CC1101 芯片规格所允许的整个频率范围进行发射不再校验/int/.region_data。此操作与当前所在国家的法规无关请谨慎使用并自行核对当地法律。CC1101 频率范围规格300–348 MHz、386–464 MHz、778–928 MHzMomentum 还在默认范围内额外加入了 350 MHz 与 467 MHz 两个频段。对照源码可见默认范围检查furi_hal_subghz.c实际使用的是299.999755 – 350.000335 MHz官方 348 上限提升至 350386.999938 – 467.750000 MHz官方 464 上限提升至 467.75778.999847 – 928.000000 MHz也就是说即使不开启任何扩展Momentum 的默认可发射范围也已经比官方固件更宽。区域未配置时能否使用可以。当出现 Region is not provisioned 时Bypass Region 同样生效。但文档明确建议不推荐这样做。该报错的本意是我不知道哪些频率是允许的因为/int/.region_data缺失而不是这些频率一定不允许。你所在的国家可能完全合法。优先通过重新刷写固件恢复区域文件只有当无法更新固件时才建议用 Bypass Region 作为临时手段。开启路径在设备上进入Momentum Protocols SubGHz Bypass Region Lock从源码看该开关位于 applications/main/momentum_app/scenes/momentum_app_scene_protocols.c菜单项 SubGHz Bypass Region Lock 显示当前状态 ON/OFF点击开启时会弹出确认对话框文案为 Unlocks TX to 300-350, 387-467, 779-928 MHz / Use responsibly, check local laws需按 Yes 确认才会生效。源码层的生效链路场景回调将app-subghz_bypass置为true并标记save_subghz与require_rebootmomentum_app_scene_protocols.c。保存时momentum_app.c 将设置写入 SD 卡文件/ext/subghz/assets/extend_range.txtFlipper SubGhz Setting File # Whether to allow extended ranges that can break your flipper use_ext_range_at_own_risk: false ignore_default_tx_region: true设备重启或 SD 卡挂载时subghz_extended_freq.c 读取该文件并调用furi_hal_subghz_set_bypass_region。HAL 层将标志存入全局状态furi_hal_subghz.cfuri_hal_subghz_check_tx在区域检查处直接跳过。如何扩展 SubGHz 支持的频率范围Extend Freq Bands功能说明开启后固件允许发射的频率范围将从 CC1101 规格范围进一步扩展到超出芯片标称规格的范围扩展后范围281–361 MHz、378–481 MHz、749–962 MHz对照 furi_hal_subghz.c 中furi_hal_subghz_set_frequency_and_path的 RF 路径选择逻辑扩展范围在硬件层面同样被识别280.999633–360.999938 MHz 走 315 MHz 路径377.999755–481 MHz 走 433 MHz 路径748.999633–962 MHz 走 868 MHz 路径。官方警告务必先读文档在开启前给出了四条明确警告除非你确切知道自己在做什么否则不要开启此功能几乎所有使用场景都不需要扩展频率范围在超出硬件规格的频率上发射可能损坏硬件CC1101 芯片本身及板载功放、滤波器均按标称频段设计Flipper Devices 团队与 Momentum FW 开发者不对因使用第三方固件或扩展频率范围造成的任何损坏负责。设备端的确认对话框也同步提示 Extends TX to 281-361, 378-481, 749-962 MHz / Use at own risk, may damage Flipper必须二次确认。开启路径Momentum Protocols SubGHz Extend Freq Bands注意两个开关之间的依赖关系momentum_app_scene_protocols.cExtend Bands 在 Bypass Region Lock 关闭时处于锁定状态提示 Must bypass region lock first!。因为扩展范围必然越过区域限制必须先绕过区域锁才能扩展。开启 Bypass 后Extend 项自动解锁反之关闭 Bypass 时 Extend 也会一并锁定。配置文件中的对应项同样的/ext/subghz/assets/extend_range.txt文件第二项布尔值即为扩展开关Flipper SubGhz Setting File # Whether to allow extended ranges that can break your flipper use_ext_range_at_own_risk: true ignore_default_tx_region: trueuse_ext_range_at_own_risk对应furi_hal_subghz_set_extended_rangefuri_hal_subghz.c命名本身就传达了自担风险的含义。配置文件的完整生命周期理解两个开关后再串起配置的完整生命周期对排障和手动修改配置都有帮助写入在 Momentum 设置页修改后momentum_app.c 以 FlipperFormat 格式写回/ext/subghz/assets/extend_range.txt包含文件头Flipper SubGhz Setting File与版本号 1。加载SD 卡挂载事件触发subghz_extended_freqsubghz_extended_freq.c读取该文件并解析两个布尔字段分别写入 HAL 状态正常开机且 SD 卡就绪时也会立即应用一次。消费furi_hal_subghz_check_tx在每次发射前读取这两个标志完成放行lib/subghz/devices/devices.c也会将两个标志透传给具体射频设备驱动见 devices.c 中的.extended_range与.bypass_region供驱动层按需调整。生效时机改动后会标记require_reboot需要重启设备后生效直接手动编辑该文件同理下次开机或 SD 卡重新挂载时生效。风险与合规建议总结绕过区域锁会让设备在本地区规不允许的频率上发射属于无线电法规范畴请以发射地法律为准自行承担后果扩展频率范围发射的是超出硬件规格的频率可能直接损坏 CC1101 芯片与射频前端属于硬件风险与法规无关无法通过任何方式规避官方支持范围之外的频率如低于 281 MHz 或高于 962 MHz在任何配置下都无法使用不要尝试接收RX在 Momentum 中不受任何限制上述所有开关仅影响发射TX。按需、懂法、量力而行是使用这两个功能唯一正确的姿势。相关源码入口汇总区域文件解析applications/services/region/region.c发射权限判定与 HAL 标志targets/f7/furi_hal/furi_hal_subghz.c设置项场景与确认弹窗applications/main/momentum_app/scenes/momentum_app_scene_protocols.c设置持久化applications/main/momentum_app/momentum_app.c设置加载应用applications/main/subghz/subghz_extended_freq.c报错对话框文案applications/main/subghz/subghz_i.c【免费下载链接】Momentum-Firmware Feature-rich, stable and customizable Flipper Firmware项目地址: https://gitcode.com/GitHub_Trending/mo/Momentum-Firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表