Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

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

Select an option

Save zhangzhibin/bc9594a83328e6ed43e0ad11a0069ed4 to your computer and use it in GitHub Desktop.
Android 上一鍵安裝 FNF V-Slice mod 的可行性探索(繁體中文)

如何一鍵安裝 V-Slice Mod(Android 探索筆記)

結論先行: 對一般玩家而言,第三方 App 目前無法可靠地一鍵把 mod 裝進官方 FNF 手機版。最穩定的仍是 官方手動流程(OPEN DATA FOLDER)。進階變通方案存在,但不適合大眾。


為什麼會研究這個問題

我是在讀這篇 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 須與遊戲版本相符(文章截至 2026 年 7 月已核對 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 實際裝在哪?

OnePlus 12 + 官方 FNF v0.8.5 上,實際路徑是:

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

這是 FNF 的 應用程式專屬外部儲存空間,遊戲至少執行過一次後才會建立。

許多教學仍提到 Android/obb/me.funkin.fnf/mods/,但在我的裝置上 該 OBB 路徑並不存在。請以遊戲實際建立的目錄為準。

OPEN DATA FOLDER 能運作,是因為 FNF 透過自訂 DocumentProvider 暴露自己的資料目錄(介面可能顯示 「FNF」 而非套件名稱)。這與第三方 App 用 SAF 隨意選資料夾 不是同一回事


我嘗試過的方案

方案 A:SAF(Storage Access Framework)

想法: 讓使用者透過 ACTION_OPEN_DOCUMENT_TREE 授權 mods/,再寫入檔案。

結果:失敗。

  • 選擇器無法跳到 FNF 目錄,退回「所有檔案」
  • Android/ 底下只看到 mediaobj 等—— 沒有 data / obb

這與 Google 官方文件 一致:Android 11+ 上,App 無法用 SAF 請求 Android/dataAndroid/obb


方案 B:所有檔案存取權(MANAGE_EXTERNAL_STORAGE

想法: 像檔案管理器一樣申請「所有檔案存取權」,直接寫入 mods/

結果:失敗。

  • 系統設定顯示權限已授予(allow
  • adb 可以看到 mods/ 目錄
  • Mod Loader 行程仍顯示:exists=trueread=falsewrite=false

Google 文件 明確說明:即使擁有 MANAGE_EXTERNAL_STORAGE,App 仍無法存取 Android/data/ 下其他 App 的目錄。

這是 Android 平台政策(見 Android 11 儲存空間變更),不是 OnePlus 獨有問題。


方案 C:解壓到 Downloads + 引導手動複製

想法: App 只負責下載、解壓、驗證,再引導使用者走 OPEN DATA FOLDER 手動複製。

結果:可行,但幾乎稱不上「Mod Loader」。

本質接近「教學 + ZArchiver」,多了一點驗證。最難的那一步並沒有被拿掉。


方案 D:Shizuku + 按需 shell 複製(進階)

想法: 使用者透過無線偵錯啟動 Shizuku Server;安裝 mod 時由 Mod Loader 執行 cp 寫入 mods/

狀態:理論上可行,不適合一般玩家。

  • 需開啟開發人員選項、配對無線偵錯;重開機後常需重新啟動 Server
  • Play 商店版 Shizuku 在新裝置上可能顯示不相容(例如 OnePlus 12)——改從 GitHub Releases 側載
  • 裝置差異大,須逐機驗證

設計筆記:shizuku-mod-loader-design.md


為什麼 Play 商店幾乎沒有「一鍵 FNF Mod Loader」

不是沒人想做——而是 Android 擋住了核心需求

路徑 第三方 App 官方 FNF
SAF 寫入 mods/ ❌ 系統阻擋
所有檔案存取 Android/data ❌ 政策排除
OPEN DATA FOLDER 內手動複製 ✅ 官方設計
遊戲內 zip 安裝 API ⚠️ 需官方支援(長期最佳解)

社群工具(ZArchiver、Shizuku 等)都是變通方案,不是零門檻的一般玩家解法。

FNF 維護者在 GitHub #5366 提到:透過第三方檔案管理器寫入 Android/data 可能導致 polymod_meta.json 讀取失敗。官方支援的路徑仍是 從遊戲內 Open Data Folder


「一鍵安裝」還有沒有戲?

一般玩家(建議)

目前無法靠第三方 App 達成。 請使用官方 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
  • api_version 與遊戲版本相符
  • 沒有多餘的外層包裝資料夾

開發者 / 進階玩家

  1. Shizuku 按需安裝(側載、進階)——部分裝置可跳過手動複製,設定成本高
  2. 向上游提功能 / PR——在 FunkinCrew/Funkin 內建「從 zip 安裝 mod」才是可持續的一鍵路線

開源程式碼已有相關基礎:DataFolderProviderPolymodHandler,以及選項中的 OPEN DATA FOLDER

研究專案

我把實驗過程與小型 Android MVP 記錄在這裡:

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

內含可行性報告與 Shizuku 設計草稿。


總結

問題 答案
為什麼 Android 裝 V-Slice mod 很麻煩? mod 在 FNF 私有目錄,系統阻擋第三方寫入
第三方 App 能一鍵寫入 mods/ 嗎? 基本上不行(SAF 與所有檔案存取權實測均失敗)
官方建議怎麼做? OPEN DATA FOLDER 手動複製(見上文 V-Slice 文章)
有進階變通嗎? Shizuku + shell(小眾、不穩定、非 Play 取向)
長期最佳解? 官方遊戲內安裝支援

參考資料


最後更新:2026-07-06 · 測試裝置:OnePlus 12 · 遊戲:FNF Android v0.8.5

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