Flipper Zero 等级修改完全指南:通过 .dolphin.state 文件自由升级与降级(Official / Unleashed / RogueMaster / Xtreme)
【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper
Flipper Zero 内置的 Dolphin 养成系统会根据你的使用行为积累经验(icounter)并逐步提升等级,而等级文件.dolphin.state存放在设备内部存储(Internal Flash)中。本指南以本仓库 Dolphin_Level 目录提供的全套状态文件为核心,系统讲解如何通过替换该文件实现等级的自由升级与降级,覆盖官方(Official)、Unleashed、RogueMaster 以及已归档的 Xtreme 固件,读完你即可独立完成备份、替换、回滚的全流程操作。
一、原理:Dolphin 等级到底存储在哪里
Flipper Zero 的 Dolphin 系统(即设备上的虚拟宠物养成模块)会把玩家的行为数据持久化到一个名为.dolphin.state的二进制文件中,存放在设备的Internal Flash(内部存储)根目录,而不是 SD 卡上。设备每次开机都会读取该文件来决定当前的等级、经验值(icounter)与情绪状态(butthurt)。
因此,修改等级的思路非常简单:准备好一个写入目标经验值的.dolphin.state文件,替换掉设备上原有的同名文件,然后重启设备,Flipper 就会按新文件中的经验值重新计算等级并播放对应的升级动画。
本仓库 Dolphin_Level 目录中的全部.dolphin.state.*文件都是通过 DroomOne_FlipperScripts 中的dolphin_state.py脚本生成的,文件名末尾的数字即为写入的经验值(文档中记作DO#)。
1.1 二进制文件结构(源码级验证)
.dolphin.state是一个采用 Flipper 固件saved_struct序列化格式的二进制文件,并非普通文本。使用仓库自带的 dolphin_state.py 脚本可以直接解析其内部结构,其布局如下:
- 头部 8 字节:
magic(0xD0)、version(1)、checksum、flags、timestamp; - 随后 8 字节:SubGhz、RFID、NFC、IR、iButton、BadUSB、U2F 七个功能模块的计数以及
butthurt_daily_limit; - 再往后依次是
flags、icounter(4 字节无符号整数)、butthurt(4 字节)、timestamp(8 字节)。
本仓库中官方/Unleashed 用状态文件均为40 字节,校验和是除头部前 2 字节外所有字节之和的模 256。我实测解析了仓库中的文件,确认其 icounter 值与文档标注完全一致:
| 文件 | 实测 icounter | 文档标注DO# | 含义 |
|---|---|---|---|
.dolphin.state.ZERO | 2 | 0 | 从零开始 |
.dolphin.state.TOP1 | 734 | 734 | 下一次操作即升到 2 级 |
.dolphin.state.LVL2a | 735 | 735 | 重启后直接播放升 2 级动画 |
.dolphin.state.TOP2 | 2939 | 2939 | 下一次操作即升到 3 级 |
.dolphin.state.LVL3a | 2940 | 2940 | 重启后直接播放升 3 级动画 |
.dolphin.state.FIN3 | 2941 | 2941 或更大 | 满级(Level 3)终点 |
说明:早期官方固件满级为 3 级,因此"满级"文件 icounter 只需 2941;而 RogueMaster、Xtreme 等第三方固件把等级上限扩展到了 30 级,对应文件数值会大得多(见后文)。
1.2 为什么文件必须"以点开头"
文档特别强调:由于近期固件变更,替换文件必须以点号.开头命名(即最终名称必须是.dolphin.state,而不能是dolphin.state)。因为 GitHub 对点开头的隐藏文件不太友好,下载后务必确认文件名仍以点号开头,否则固件将无法正确识别并加载。
二、快速上手:官方 / Unleashed 固件的五种状态文件
如果你不想折腾脚本,只想"一步到位"(原文:git'r'done),可以直接从仓库根目录下载以下文件之一,它们分别对应不同的等级目标:
- .dolphin.state.ZERO —— 从零开始的萌新状态(_DO#: 0)
- .dolphin.state.TOP1 —— 下一次操作即升级到 LVL 2(_DO#: 734)
- .dolphin.state.LVL2a —— 重启后立即播放 LVL 2 升级动画(_DO#: 735)
- .dolphin.state.TOP2 —— 下一次操作即升级到 LVL 3(_DO#: 2939)
- .dolphin.state.LVL3a —— 重启后立即播放 LVL 3 升级动画(_DO#: 2940)
- .dolphin.state.FIN3 —— 已是满级,无需再肝(_DO#: 2941 及以上)
其中TOP*系列把经验值设置在升级门槛前 1 点,让你手动触发一次升级动画;LVL*a系列直接越过门槛,重启即播放动画;FIN3则是官方固件下的最高等级状态。所有文件实测butthurt(情绪值)均为 0,属于"心情良好"的初始状态。
三、替换操作全流程(qFlipper 图形界面)
3.1 第一步:下载并重命名
把上面选中的文件(如.dolphin.state.TOP1)下载到本地任意位置后,重命名为.dolphin.state(去掉后缀)。再次确认文件名以点号开头。
3.2 第二步:通过 qFlipper 进入内部存储
打开 qFlipper 连接设备,进入文件浏览器(File browser)区域,可以看到Internal Flash(内部存储)和外部 SD 卡两个分区。双击打开Internal Flash——等级文件存在这里,而不是 SD 卡。
3.3 第三步:开启隐藏文件显示
内部存储里的文件不多,但关键文件是隐藏的。在 qFlipper 中开启"显示隐藏文件"选项,即可看到已存在的.dolphin.state文件。
3.4 第四步:备份原文件
右键点击.dolphin.state,选择Rename...(重命名),把它改成你认得出来、以后还能改回去的名字,例如.dolphin.state.mine。这一步是安全回滚的前提,请务必执行。
3.5 第五步:拖入新文件并重启
把从仓库下载并重命名好的.dolphin.state文件直接拖入同一个目录位置。至此替换完成,重启 Flipper 后即可看到新等级生效(如 Level 3 满级动画)。
3.6 第六步(可选):恢复原等级
想回到原来的进度?重复上述流程:先删除新放入的.dolphin.state文件,再把之前备份的.dolphin.state.mine(或你自定义的名字)重命名回.dolphin.state,再次重启 Flipper 即可完全恢复。该过程可以无限次重复,随时在自定义等级与原始进度之间切换。
四、进阶:用 DroomOne 脚本 DIY 任意经验值
仓库在 Dolphin_Level/DroomOne_Python.zip 中打包了 DroomOne 的dolphin_state.py脚本(以及配套的示例文件与说明),适合"爱折腾"的玩家自己生成任意经验值的状态文件。解压后用法如下:
# 查看某个 .dolphin.state 文件的当前内容 python3 dolphin_state.py .dolphin.state # 修改经验值(icounter)并另存为新文件 python3 dolphin_state.py .dolphin.state --icounter 5000 --out my.state # 修改情绪值(butthurt)并另存(注意最大为 14) python3 dolphin_state.py .dolphin.state --butthurt 0 --out my.state脚本参数一览:
| 参数 | 作用 | 说明 |
|---|---|---|
file | 必填 | 输入.dolphin.state文件的路径 |
--out <path> | 可选 | 输出新文件路径;修改 icounter/butthurt 时必须指定 |
--icounter <int> | 可选 | 覆盖 icounter(经验值) |
--butthurt <int> | 可选 | 覆盖 butthurt(情绪值),最大值 14,超出会被脚本拒绝 |
脚本底层用struct按固定布局读写 40 字节数据,并且在保存时会重新计算并写回校验和(dolphin_state_save函数),因此生成的文件可以被固件正常加载。它还能打印每个功能模块(SubGhz/RFID/NFC/IR/iButton/BadUSB/U2F)的使用计数和butthurt_daily_limit,方便你完整了解当前状态文件。
五、各固件等级表与专属文件
5.1 RogueMaster:30 级制
RogueMaster 固件扩展了等级体系,需要专门的等级文件,位于 Dolphin_Level/RogueMaster 目录。其完整等级-经验对照表如下(每个等级文件icounter实测与该表一致):
| 等级 | 经验阈值 | 等级 | 经验阈值 | 等级 | 经验阈值 |
|---|---|---|---|---|---|
| LVL01 | 0 | LVL11 | 16250 | LVL21 | 58250 |
| LVL02 | 500 | LVL12 | 19250 | LVL22 | 65250 |
| LVL03 | 1250 | LVL13 | 22500 | LVL23 | 73250 |
| LVL04 | 2250 | LVL14 | 26000 | LVL24 | 82250 |
| LVL05 | 3500 | LVL15 | 29750 | LVL25 | 92250 |
| LVL06 | 5000 | LVL16 | 33750 | LVL26 | 103250 |
| LVL07 | 6750 | LVL17 | 38000 | LVL27 | 115250 |
| LVL08 | 8750 | LVL18 | 42500 | LVL28 | 128250 |
| LVL09 | 11000 | LVL19 | 47250 | LVL29 | 142250 |
| LVL10 | 13500 | LVL20 | 52250 | LVL30 | 157250 |
- LVL 系列:如 .dolphin.state.LVL01 ~ .dolphin.state.LVL30,直接落在对应等级的经验阈值上;
- TOPL 系列:如 .dolphin.state.TOPL01 ~ .dolphin.state.TOPL29,取"上一个等级门槛减 1"的数值,让你下一步操作就能触发升级;
- FIN:.dolphin.state.FIN(icounter=157251),即 30 级满级后的终点状态。
例如实测 .dolphin.state.LVL15 的 icounter 为 29750,与表中 LVL15 的阈值完全对应。
5.2 Xtreme(已归档):含 AT_LEVEL / TOP_LEVEL 双目录
对于曾运行 Xtreme(ClaraCrazy/Dexv)固件的用户,仓库提供了 Dolphin_Level/Xtreme (Archived)/ReadMe.md) 归档目录,所有文件同样是butthurt=0的"Wet"状态:
- AT_LEVEL/AT_LEVEL/) 目录:
AT_LEVEL/.dolphin.state.LVL01~LVL30,直接到达指定等级并触发升级提示; - TOP_LEVEL/TOP_LEVEL/) 目录:
TOP_LEVEL/.dolphin.state.TOP1~TOP30,差一步升级,下一次操作即升级; - 彩蛋文件 .dolphin.state.XXX/.dolphin.state.XXX):实测 icounter 恰好为6969(对应等级 25,经验 6969/7100),非常有趣的"lucky"数值。
仓库还附带了 Create_Xtreme_Files.zip/Create_Xtreme_Files.zip),供需要自行重新生成 Xtreme 系列文件的玩家参考。替换与回滚流程与官方固件完全一致,同样使用 qFlipper 操作内部存储中的.dolphin.state。
六、注意事项与常见问题
- 以点开头:因近期固件变更,文件必须以
.开头(.dolphin.state)。GitHub 下载点开头的文件偶尔会丢点,下载后务必检查; - 文件位置:
.dolphin.state位于 Internal Flash(内部存储),不是 SD 卡;操作前先开启 qFlipper 的隐藏文件显示; - 务必先备份:重命名原文件(如
.dolphin.state.mine)是唯一可靠的恢复手段,删除原文件前一定要确认备份存在; - 固件匹配:不同固件(Official/Unleashed、RogueMaster、Xtreme)等级体系不同,请选择对应目录下的文件,混用会导致等级计算与预期不符;
- 数值上限:DIY 时注意 RogueMaster 满级为 157251(FIN),butthurt 上限为 14,脚本会拒绝超出范围的写入;
- 替换后需要重启:放入新文件后必须重启 Flipper,等级与升级动画才会生效。
七、相关资料索引
- 官方/Unleashed 等级文件与完整说明:Dolphin_Level/ReadMe.md
- RogueMaster 专属等级文件:Dolphin_Level/RogueMaster
- Xtreme 归档等级文件:Dolphin_Level/Xtreme (Archived)/ReadMe.md)
- 生成与解析工具:Dolphin_Level/DroomOne_Python.zip(内含
dolphin_state.py、示例状态文件与 README)
【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考