news 2026/9/30 8:14:01

3 条路线把 FAP 插件装进 Flipper Zero Unleashed

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 条路线把 FAP 插件装进 Flipper Zero Unleashed

3 条路线把 FAP 插件装进 Flipper Zero Unleashed

【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware

Flipper Zero Unleashed 是 Flipper Zero 的开源固件,它和官方固件最大的区别在于支持以 FAP(Flipper App Package,应用包)格式安装第三方应用:把一个 .fap 文件放进 SD 卡,设备就多了新能力,不用重刷固件。读完这篇,你能从零装好一个 FAP 插件、用 fbt 一条命令部署自己的应用,跑不起来时也知道往哪儿查。

下图展示的是 Flipper Zero Unleashed 设备上跑一个自写应用的效果,也就是我们这条"装上去、能打开"闭环的终点。

📦 先跑通闭环:把第一个 FAP 放进 SD 卡

安装前确认固件版本和 SD 卡目录

动手前花 30 秒确认两件事:

  • 固件 API 版本:在设备端打开设置 > 系统 > 关于,记下"API 版本"。FAP 的主版本号必须和固件一致,否则 Loader(负责把应用读进内存执行的系统组件)会直接拒绝运行。
  • SD 卡目录:在 SD 卡根目录建一个apps目录,里面可以再按功能分子目录,比如apps/遥控、apps/游戏。FAP 文件放apps或其任意子目录里都可以。

把 FAP 文件放进 SD 卡 apps 目录

手里只有 SD 卡的时候,走这条最省事:从可信来源下载 .fap 文件,复制到apps目录,安全弹出,插回设备,重启。开机后新应用会出现在主菜单"应用"分组里。全程不碰编译,第一次操作的人五分钟也能走完。

换条路走:按场景选安装方式

我们按场景分一下,你挑适合自己的那条。

习惯敲命令的时候:用 fbt 一条命令推到设备

固件源码已经 clone 到本地、平时爱敲命令的话,fbt(项目自带的构建部署工具)最快。把应用源码放进applications_user目录,然后:

# 编译并通过 USB 直接推到设备 ./fbt launch APPSRC=applications_user/hello_world

这条命令会解析清单里的依赖、编译出 FAP,再通过 USB 推到设备上立刻运行。开发阶段改一行代码再跑一次,就是大多数插件开发者用的迭代循环。构建与部署参数的细节见 FAP 安装和管理指南。

设备已联网的时候:走应用商店

设备装了 WiFi 模块并能正常联网时,直接在设备上打开应用 > 应用商店,按分类浏览,点"安装",下载和安装都由系统完成。适合人在外面、想快速补一个工具的场景,不用电脑参与。

🩹 装完跑不起来时的自救

别急,九成"跑不起来"都落在下面三种症状里,每条给一步验证:

症状:启动时报"API 版本不匹配"原因:FAP 主版本号和固件主版本号不一致。 验证:去设置 > 系统 > 关于核对固件 API 版本,和清单里的版本字段比对;自己编译的话,把版本改成一致再重新构建。

症状:apps 目录里有文件,应用列表却看不到原因:扩展名不是.fap,或者应用列表没刷新。 验证:确认文件扩展名,然后重启一次设备,强制重建应用列表。

症状:应用闪退,或提示内存不足原因:FAP 要整体加载进 RAM,可用堆比内置应用更小,栈分配过小还会直接溢出崩溃。 验证:用 CLI(命令行)跑top和free看内存占用,再把清单里stack_size调大试试是否还崩。

往深走一步:做一个自己的 FAP

最小清单加一个 C 入口

一个 FAP 应用就两部分:application.fam清单(声明应用 ID、入口函数、依赖、版本)和 C 源码。最小清单长这样:

App( appid="hello_world", apptype=FlipperAppType.EXTERNAL, name="你好世界", entry_point="hello_world_app", stack_size=1024, )

C 侧就是一个入口函数:打开 GUI 记录、注册带绘制回调的 view_port(负责往屏幕上画内容的组件)、等用户退出事件。完整写法参考应用清单规范和仓库里自带的示例应用。编译后跑./fbt fap_hello_world,产物会落在构建目录的.extapps里,复制到 SD 卡即可。

嫌 C 重的话:用 JS SDK 写

如果 C 写起来费劲,Unleashed 的 JS SDK 让你几行脚本就能上手:把.js放进 SD 卡apps/Scripts目录,从菜单"脚本"里运行,或者在 CLI 里直接js 脚本名。写法细节看 JS 开发指南。

这张图是 JS SDK 开发环境里的代码补全效果,输入时就能看到可用 API,fbt 部署应用前写代码的体验会舒服很多。

值得装的 3 个插件

不用全装,挑你真用得上的:

  • 红外遥控码库扩展 —— 内置遥控库覆盖面有限,装码库扩展是提升最直观的一步
  • SubGHz 遥控插件 —— 要控制车库门、卷帘门、老式遥控器时,它覆盖大部分低频场景
  • 经典小游戏合集 —— 摸鱼时有用,顺带还能当设备内存的负载测试

读完之后先做的一件事

第一件事:找一个可信来源的 FAP 放进 SD 卡apps目录,重启看它出现在不在菜单里,这是最快建立手感的路。之后 clone 固件源码,用 fbt 部署一个自己的 hello world,你就正式进圈了。中间任何一步崩了,回到上面自救一节逐条对症状,别急着全盘推翻。

【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 8:13:53

5 分钟上手 wiliwili:跨平台 B 站客户端完整指南

5 分钟上手 wiliwili:跨平台 B 站客户端完整指南 【免费下载链接】wiliwili 第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili 睡前窝在沙发上手柄…

作者头像 李华
网站建设 2026/9/30 8:12:14

大数据预处理全攻略:从数据清洗到工程化实践

1. 为什么数据预处理是大数据项目的隐形地基1.1 数据预处理到底是什么我入行大数据这么多年,有个感受越来越深:真正决定一个项目成败的,往往不是算法模型有多高级,也不是集群规模有多大,而是最不起眼的那一步——数据预…

作者头像 李华
网站建设 2026/9/30 8:12:14

EOS8.3.3附件删除权限控制:多上传人场景下只能删自己上传的

附件删除权限这件事,在EOS8.3.3上做过的朋友应该都懂那种纠结:需求一句话,“附件允许多选,不是同一个人上传的,只能删除自己上传的”,写起来却要拆出一整套逻辑。多附件、多上传人、前端的删除入口、后端的…

作者头像 李华