
Flipper Zero 固件源代码
我们的主要目标是围绕 Flipper 建立一个健康、可持续的社区,因此我们欢迎任何新想法和贡献。不过这里也有一定的规则和禁忌,请仔细阅读本页和我们的行为准则。
查找答案的最佳地点是我们的用户文档。如果在那里找不到答案,可以查看我们的 Discord 服务器。如果你想为固件开发做贡献,或根据自己的需求修改固件,也可以查看我们的开发者文档。
如果你发现了问题并希望上报,请查看我们的 Issues 页面。请确保描述中包含你使用的固件版本、平台信息,以及清晰的问题复现步骤。
如果你有功能需求,或想为已有的需求投票,请使用 Discussions,并遵守我们的讨论指南。
在提出 PR 之前,请确认你的更改确实需要包含在固件中。许多想法都可以轻松实现为外部应用,并发布到 Flipper 应用目录。如果你不确定,请通过 Discord 服务器 或 Issues 页面联系我们,我们会帮你找到合适的代码归属位置。
另外,请阅读我们的贡献指南和代码风格,并确保你的代码兼容我们的项目许可证。
最后,打开一个 Pull Request,并确保 CI/CD 状态全部为绿色。
Flipper Zero 固件使用 C 语言编写,其中部分代码使用 C++ 和 armv7m 汇编语言。建议具备中级 C 语言知识,以便更流畅地进行编程。Flipper 应用支持使用 C、C++ 和 armv7m 汇编语言开发。
支持的开发平台:
支持的在线调试器(可选,但强烈推荐):
Flipper 构建系统会自动处理所有其他依赖。
请确保你有足够的磁盘空间,然后克隆源代码:
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git
使用 Flipper 构建工具构建固件:
./fbt
将在线调试器连接到你的 Flipper,然后使用 Flipper 构建工具刷写固件:
./fbt flash
确保你的 Flipper 已开机且固件运行正常。用 USB 线连接 Flipper,然后使用 Flipper 构建工具刷写固件:
./fbt flash_usb
applications - 固件中使用的应用程序和服务applications_users - 存放你额外应用程序和服务的位置assets - 应用程序和服务使用的资源documentation - 文档生成系统的配置和输入文件furi - Furi Core:操作系统级原语和辅助工具lib - 我们及第三方的库、驱动、工具等...site_scons - 构建系统配置和模块scripts - 辅助脚本和各类 Python 库targets - 固件目标:平台相关代码另外,请参阅这些目录中的 ReadMe.md 文件以了解更多详情。