行业资讯

Flipper Authenticator开发指南:使用ufbt构建并适配多款固件的完整流程

发布时间:2026/8/18 17:35:54
Flipper Authenticator开发指南:使用ufbt构建并适配多款固件的完整流程 Flipper Authenticator开发指南使用ufbt构建并适配多款固件的完整流程【免费下载链接】flipper-zero_authenticatorSoftware-based TOTP/HOTP authenticator for Flipper Zero device.项目地址: https://gitcode.com/gh_mirrors/fl/flipper-zero_authenticatorFlipper Authenticator是一款运行在Flipper Zero设备上的开源TOTP/HOTP两步验证应用功能与Google Authenticator类似却完全离线、软件实现。本文将手把手带你走完Flipper Authenticator开发指南全流程从安装ufbt构建工具、克隆项目源码到一键编译出可安装的FAP文件再到针对官方固件、Unleashed、Momentum等多款固件自由切换适配。即使是刚接触嵌入式开发的初学者也能在半小时内完成自己的第一版构建。Flipper Authenticator是什么核心功能速览简单说Flipper Authenticator就是把手机上的验证器App搬进Flipper Zero这个小海豚设备里。它支持TOTP 时间同步验证码遵循 RFC 6238 标准每30秒刷新一次动态密码HOTP 计数器验证码遵循 RFC 4226 标准支持手动递增计数器多算法支持SHA1、SHA256、SHA512甚至兼容 Steam 令牌算法PIN 码加密保护所有令牌密钥加密存储自动锁屏防偷窥USB/蓝牙自动输入验证码可直接通过模拟键盘或BadBT自动填入电脑完整 CLI 管理通过串口命令行即可增删改查所有令牌项目当前版本为 5.19.0主程序入口位于 totp/totp_app.c应用定义清单见 totp/application.fam其中声明了主应用和十余个CLI插件模块。开发环境准备安装ufbt构建工具ufbtuFBT全称 Flipper Build Tool是构建 Flipper Zero 应用的官方命令行工具负责自动下载对应固件SDK、编译并打包FAP文件。安装它只需一条命令pip install ufbt安装完成后在项目根目录执行ufbt相关命令即可。项目还提供了两个 PowerShell 包装脚本Windows 用户可直接使用ufbt.ps1固件选择 构建入口自动写入编译宏定义ufbt-fm.ps1固件管理脚本负责下载并切换各固件的SDK获取源码克隆Flipper Authenticator项目在终端中执行以下命令克隆项目到本地git clone https://gitcode.com/gh_mirrors/fl/flipper-zero_authenticator克隆完成后进入目录你会看到清晰的目录结构totp/应用全部源码按模块划分totp/ui/界面层包含各场景scene实现totp/services/配置、加密、字体等底层服务totp/workers/后台工作线程码生成、USB/蓝牙输入totp/cli/命令行插件体系docs/文档与配置说明firmwares.json支持的固件索引清单一键构建ufbt编译Flipper Authenticator的最快方法构建之前uFBT 需要先初始化对应固件的 SDK 环境。项目通过firmwares.json维护了六种固件渠道的索引地址首次构建时脚本会自动拉取对应SDK。最常用的构建命令是Windows PowerShell 下.\ufbt.ps1 official-stable执行后脚本会完成以下操作解析official-stable固件别名找到对应的SDK更新源调用ufbt update下载匹配的固件SDK在totp/config/app/下自动生成ufbt_def.h写入目标固件宏运行ufbt执行编译、打包最终在dist/目录生成totp.fap安装包Linux/macOS 用户同样可以用项目中的构建逻辑或直接手动指定宏定义后执行ufbt。多固件适配官方、Unleashed、Momentum一键切换Flipper Authenticator 最值得称道的能力就是一套源码适配多款主流固件。构建时只需更换第一个参数即可目标固件命令参数支持的别名官方稳定版official-stableos、off-stbl官方开发版official-devod、off-devUnleashedunleashedu、ulUnleashed 开发版unleashed-devud、uldMomentum 稳定版momentum-stablems、mtsMomentum 开发版momentum-devmd、mtd例如构建 Unleashed 版本.\ufbt.ps1 unleashed固件适配的关键在于编译期宏定义。每种固件对应一个专属宏定义于 totp/config/app/config.hTOTP_FIRMWARE_OFFICIAL_STABLETOTP_FIRMWARE_OFFICIAL_DEVTOTP_FIRMWARE_UNLEASHEDTOTP_FIRMWARE_MOMENTUM该文件还提供了大量可配置项例如TOTP_AUTO_LOCK_IDLE_TIMEOUT_SEC自动锁屏超时默认60秒TOTP_BADBT_AUTOMATION_ENABLED蓝牙输入自动化开关TOTP_UI_ADD_NEW_TOKEN_ENABLED界面添加新令牌功能开关uFBT 官方SDK会自动传入TARGET_FIRMWARE_*宏config.h 据此自动匹配正确的目标固件这也是一套代码多固件能成立的根本原因。编译产物与部署到设备编译成功后在totp/dist/目录下会生成totp.fap文件。将它拷贝到 Flipper Zero 的SD卡apps/Tools/目录即可在设备菜单中找到并启动 Authenticator。应用首次启动会在/ext/apps_data/totp/totp.conf生成配置文件关于每个配置项的详细说明可查阅 docs/conf-file_description.md包括加密密钥槽位、时区偏移、PIN设置等关键参数。深入开发CLI插件体系与代码结构如果你想二次开发推荐从 CLI 插件体系入手。totp/cli/plugins/下每个子目录对应一个命令插件例如add/添加令牌list/列出令牌update/更新令牌automation/自动输入配置export/导出令牌每个插件都由meta.h声明插件元信息和实现文件组成插件的注册列表统一维护在 totp/application.fam 中。新增一个命令插件只需新建目录并在此注册即可非常便于扩展。CLI 核心用法可通过totp help查看常用命令速记totp add Github -t totp -a sha1 -d 6 totp list totp pin set -c 12 totp automation -k QWERTY usb常见问题与解决思路Q1构建时提示找不到固件确认第一个参数拼写正确可先执行ufbt update手动初始化SDK再重新构建。Q2切换固件后报编译错误不同固件SDK的API存在差异建议先执行一次完整清理删除totp/dist与~/.ufbt/build缓存再重新构建。Q3验证码与手机不一致绝大多数情况是时区未设置。在应用设置或CLI中执行totp timezone 8按你的UTC偏移填写即可修正。Q4如何恢复出厂设置CLI 中执行totp reset或直接删除totp.conf配置文件。总结从零到构建成功的完整路线图回顾整个流程安装 ufbt → 克隆源码 → 选择固件参数 → 一键构建 → 部署FAP文件 → 配置时区与PIN。得益于 ufbt 工具链和编译期宏抽象Flipper Authenticator 让你无需修改任何业务代码就能在官方、Unleashed、Momentum 三大主流固件生态之间自由切换。希望这份Flipper Authenticator开发指南能帮你顺利迈出 Flipper Zero 应用开发的第一步快去构建属于你自己的验证器吧【免费下载链接】flipper-zero_authenticatorSoftware-based TOTP/HOTP authenticator for Flipper Zero device.项目地址: https://gitcode.com/gh_mirrors/fl/flipper-zero_authenticator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考