Convert to external .fap; export ST BLE command API from the firmware

build.sh now adds ST's aci_*/hci_* headers to the SDK (with extern "C"
guards, the API table is C++), lets fbt regenerate api_symbols.csv and
enables the selected functions (BLE_API=hci,gatt default; min; all).
The app builds as a normal .fap shipped inside the update package and
loadable from SD, saving ~12 KB of firmware flash versus the built-in
(min mode: ~22 KB). qsort replaced with an insertion sort since libc's
qsort is not exported to apps. README documents modes and flash budget.
This commit is contained in:
2026-09-11 11:56:17 +01:00
parent e863616f82
commit 999b20f378
6 changed files with 201 additions and 36 deletions
+9 -5
View File
@@ -1,12 +1,16 @@
# Built-in (firmware-linked) app: it needs the ST GAP/GATT/HCI command API,
# which the firmware does not export to .fap apps. See ../build.sh.
# External app. Needs firmware built by ../build.sh: full BLE stack plus the
# ST aci_*/hci_* command API exported to apps.
App(
appid="bt_inspector",
name="BT Inspector",
apptype=FlipperAppType.APP,
apptype=FlipperAppType.EXTERNAL,
entry_point="bt_inspector_app",
requires=["gui", "storage"],
stack_size=4 * 1024,
icon="A_Plugins_14",
order=25,
fap_category="Bluetooth",
fap_icon="icon.png",
fap_version="1.0",
fap_description="BLE scanner and GATT explorer (full-stack firmware)",
fap_author="andydixon",
fap_weburl="https://github.com/andydixon/flipper-bt-inspector",
)