Export RPC + loader internals to apps

The public rpc_* and loader_* APIs are already exported by stock firmware
(RPC sessions, app data exchange, launch/enqueue/lock/menu); enable them
explicitly via EXPORT_ENABLE so they stay on. Add the internal loader
header set (loader_i.h, loader_menu.h, loader_queue.h, loader_applications.h)
to the SDK so the internal Loader handle and the menu/queue helpers are
reachable from apps. rpc_i.h is skipped: it depends on the protobuf headers
which are not part of the app SDK. API version -> 87.3; firmware links.
This commit is contained in:
2026-06-30 00:50:17 +01:00
parent 142d47ad08
commit 54be3a041f
2 changed files with 39 additions and 1 deletions
+9
View File
@@ -187,6 +187,15 @@ symbol costs one API-table entry.
An app can read and modify internal flash directly. **This can brick the
device or wipe storage.** Enabled here for research; build with
`EXPORT_FLASH=0 ./build.sh` to leave these disabled.
* **RPC + loader internals**: the public `rpc_*` and `loader_*` APIs (RPC
session open/feed/close, app data exchange, launching and enqueuing apps,
lock/unlock, showing the app menu) are already exported by stock firmware and
are the supported way to script the Flipper from a host or launch other apps;
this build enables them explicitly and adds the internal loader headers
(`loader_i.h`, `loader_menu.h`, `loader_queue.h`, `loader_applications.h`) so
the internal loader/menu/queue helpers are reachable too. `rpc_i.h` is not
exported because it depends on the protobuf headers, which are not in the SDK;
the public RPC API covers host scripting.
`build.sh` also widens the GAP roles the firmware initialises
(`GAP_PERIPHERAL_ROLE | GAP_CENTRAL_ROLE | GAP_OBSERVER_ROLE`) in