Flipper BLE Spam 移植 OFW + 外挂 ESP32 拉距离
ble-spam-esp32-boost 是个 Flipper Zero 的外部 app(.fap),往外广播 BLE 广告包,触发附近手机电脑弹配对框、通知、设备发现。起因是 Flipper 刷回官方固件 OFW 1.4.3,Momentum 那套 BLE Spam 用了一堆 Momentum 专属 API,官方固件下全废,所以我把 Momentum BLE Spam v6.6 移植了过来,顺手加了 ESP32 外挂拉广播距离。
内置 11 种攻击,Apple Continuity、Google FastPair、Samsung EasySetup、微软 SwiftPair,还有 NameFlood 和 LoveSpouse。纯 Flipper 就能跑,走机器里那颗 STM32WB 的 BLE 射频,距离一到三米。
ESP32 双射频
本机功率小,稍微远点就没信号,所以做了个可选 boost:GPIO UART 外接一颗刷了 Ghost ESP 固件的 ESP32,两颗射频一起开火,距离能拉到十几二十米。接线不复杂,Flipper 的 TX(pin13)、RX(pin14)、GND、3V3 对着 ESP32 接过去,115200 baud。
检测是自动的。app 启动抢 USART 通道,发条 info 探一下,通得了就启用 boost,标题栏变成 “BLE Spam+ESP”。之后每选一个攻击,映射成对应 Ghost ESP 命令 blespam -apple / -google / -samsung / -ms / -random 从 UART 发过去,两颗芯片同时开火。LoveSpouse 那两个没有对应 ESP 命令,只走本机,没插 ESP32 也照跑。
移植踩的坑
OFW 和 Momentum 的 API 差异是主要工作量,记两个印象深的。FontBatteryPercent 是 Momentum 专属字体枚举,OFW 没有,换成 FontSecondary;variable_item_list_get() 这个 getter OFW 也不给,只能自己把 VariableItem* 引用存下来复用。剩下是 SDK 版本对齐,ufbt 对着 1.4.3 SDK 构建,产物 dist/ble_spam.fap 丢进 Flipper 的 apps/Bluetooth/ 就完事。
这玩意拿来在自己设备上玩、研究 BLE 广播协议,它会干扰周围人,别拿去骚扰。上游框架和协议实现是 Willy-JL、ECTO-1A、Spooks4576 几位的功劳,我做的是 ESP32 boost 和 OFW 1.4.3 移植,基于 Momentum BLE Spam v6.6,GPL v3.0。仓库 https://github.com/dwgx/ble-spam-esp32-boost