Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save zhangzhibin/1b211c1728e1bdf7368cff78703fab52 to your computer and use it in GitHub Desktop.

Select an option

Save zhangzhibin/1b211c1728e1bdf7368cff78703fab52 to your computer and use it in GitHub Desktop.
Android 上一键安装 FNF V-Slice mod 的可行性探索总结

如何一键安装 V-Slice Mod(Android 探索笔记)

写在前面:本文记录我为了回答「安卓上能不能一键装官方 FNF 的 V-Slice mod」所做的调研与实测结论。
结论先行:对普通玩家,第三方 App 目前做不到真正的一键安装;官方推荐的手动流程仍是最稳的路。 若你愿意折腾进阶方案,文末有备选方向。


起因:官方流程对新手并不友好

我是在读这篇 V-Slice 入门与排错文章时产生这个想法的:

Modding FNF V-Slice: Setup, Mobile Workflow, and Troubleshooting

文章把官方移动端装 mod 的流程写得很清楚,核心步骤是:

  1. 打开官方 Friday Night Funkin'(Google Play,me.funkin.fnf
  2. 进入 OPTIONS → OPEN DATA FOLDER
  3. 在系统文件界面里,把 mod 文件夹复制进游戏沙盒内的 mods/ 目录
  4. 重启游戏

同时强调了几条容易踩坑的规则:

  • 必须是 V-Slice / Polymod mod(含 _polymod_meta.json),Psych Engine 等社区引擎 mod 不能直接套用
  • 注意 api_version 与游戏版本匹配(文内核对过 Desktop v0.8.4、Android v0.8.5 hotfix)
  • 避免 双层目录mods/MyMod/MyMod/... 会导致游戏读不到)
  • 不要轻信非官方的「Mod APK」重打包

这些说明本身没问题,但对很多手机用户来说,实际操作仍然很麻烦:

  • 要先找到正确的 mod 包、解压
  • 要理解 V-Slice 目录结构
  • 要在文件管理器里完成复制——而 Android 11+ 对 Android/data 的限制 又让这一步对小白极不友好

于是我开始想:能不能做一个 Mod Loader,让玩家点一下就把 mod 装进 mods/


目标:什么叫「一键安装」?

我这里的「一键」指的是:

  1. 用户选择或下载一个 V-Slice mod(通常是 .zip
  2. App 自动完成:解压 → 校验格式 → 写入 FNF 的 mods/ 目录
  3. 打开游戏即可玩

不包含:Root、拆包改 APK、非官方整合包。


先搞清楚:mod 实际装在哪?

在一加 12 + 官方 FNF v0.8.5 上实测,mod 目录是:

/storage/emulated/0/Android/data/me.funkin.fnf/files/mods/

这是 FNF 自己的 app-specific 外部存储,由游戏在首次运行后创建。

网上不少教程仍写 Android/obb/me.funkin.fnf/mods/,但在我的设备上 obb 路径并不存在——以游戏自己创建的目录为准。

官方 OPEN DATA FOLDER 能打开,是因为游戏通过自带的 DocumentProvider 暴露了自己的数据目录(界面可能显示为 「FNF」 而不是包名),这和第三方 App 随便选一个文件夹不是一回事。


我试了哪些方案?

方案 A:SAF 授权(Storage Access Framework)

思路:让用户在系统文件选择器里选中 mods 目录,App 获得持久 URI 权限后写入。

结果:失败。

  • 选择器没有跳到 FNF 目录,而是回到「全部文件」
  • Android/ 下只能看到 mediaobj 等,看不到 data / obb

这与 Google 官方文档 一致:Android 11+ 起,第三方 App 不能 通过 ACTION_OPEN_DOCUMENT_TREE 申请 Android/dataAndroid/obb 的访问权。


方案 B:「所有文件访问」(MANAGE_EXTERNAL_STORAGE)

思路:像文件管理器一样申请 All files access,用文件路径直接写 mods/

结果:失败。

  • 系统设置里权限显示已开启(allow
  • adb 能看到 mods/ 目录存在
  • 但 Mod Loader 进程访问时:exists=trueread=falsewrite=false

Google 官方说明 写得很直白:即使获得 MANAGE_EXTERNAL_STORAGE仍不能访问属于其他 App 的 Android/data/ 下目录

这不是一加「单独搞特殊」,而是 Android 11+ 的通用策略(见 Storage updates in Android 11)。


方案 C:解压到 Download + 图文引导复制

思路:App 只负责下载、解压、校验,再引导用户走官方 OPEN DATA FOLDER 流程手动复制。

结果:能做,但很难叫「Mod Loader」。

和看教程 + ZArchiver 差别不大,只是多了格式校验和固定目录,没有解决最麻烦的那一步


方案 D:Shizuku + Shell 按需写入(进阶向)

思路:用户通过无线调试启动 Shizuku Server(shell 权限),Mod Loader 在安装时执行 cpmods/

状态:理论可行,但不适合大众。

  • 需要开发者选项、无线调试配对;重启后常要重新启动 Server
  • Play 商店版 Shizuku 在一加 12 上可能显示不兼容,需从 GitHub Releases sideload
  • 各机型差异大,需逐台验证;不能当作面向所有玩家的默认方案

更完整的草案见个人仓库:shizuku-mod-loader-design.md


为什么几乎没人做 Play 商店上的「一键 Mod Loader」?

不是因为没人想到,而是 Android 平台把路堵死了

路径 第三方 App 官方 FNF
SAF 选 mods/ ❌ 系统禁止
所有文件访问写 Android/data ❌ 政策排除
OPEN DATA FOLDER 内复制 ✅ 官方设计
游戏内直接接收 zip 安装 ⚠️ 需官方实现(最佳长期方案)

社区里常见的 ZArchiver、Shizuku 等,本质都是 绕路,不是给普通玩家准备的零门槛方案。

FNF 维护者在 GitHub #5366 也讨论过:通过第三方文件管理器硬写 Android/data 可能导致 polymod_meta.json 读失败;正确方式仍是游戏内 Open Data Folder


那「一键安装」还有没有戏?

对普通玩家(推荐)

暂时没有真正的第三方一键安装。 请继续遵循 V-Slice 官方移动端流程:

Modding FNF V-Slice — Official mobile workflow

简要复述:

  1. 安装并打开官方 FNF 至少一次
  2. OPTIONS → OPEN DATA FOLDER
  3. 把解压后的 mod 文件夹(根目录即有 _polymod_meta.json)复制进 mods/
  4. 重启游戏

装前核对:

  • mod 是 V-Slice / Polymod,不是 Psych Engine
  • _polymod_meta.jsonapi_version 与游戏版本匹配
  • 没有多余嵌套文件夹

对开发者 / 愿意折腾的玩家

  1. Shizuku 按需安装(sideload,进阶)—— 有机会省略手动复制,但 Setup 成本高
  2. 向 FunkinCrew 提需求 / PR —— 在官方工程(FunkinCrew/Funkin)里做「从 zip / 外部 App 安装 mod」,这才是可持续的「一键」正路

开源游戏里已有 Android 相关实现可借鉴,例如 DataFolderProviderPolymodHandler,以及 Options 里的 OPEN DATA FOLDER

对个人学习项目

我把调研过程和 MVP 代码放在:

https://github.com/open4game/fnf-v-slice-mod-loader

含可行性报告(中文)与 Shizuku 方案设计,供同好参考。


总结表

问题 答案
V-Slice 安卓装 mod 为什么麻烦? mod 在 FNF 私有目录;系统不让第三方随便写
第三方 App 能一键写入 mods/ 吗? 一般不能(SAF、所有文件访问均已实测失败)
官方推荐做法? OPEN DATA FOLDER 内复制(见上文 V-Slice 博文)
有没有进阶 workaround? Shizuku + shell(小众,不稳定,非 Play 向)
长期最优解? FNF 官方内置安装入口

参考链接


最后更新:2026-07-06 · 实测设备:一加 12 · 游戏版本:FNF Android v0.8.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment