NyaZygisk WebUI 使用說明:每個功能是做什麼的、怎麼用
NyaZygisk 裝好之後,不用開終端機也能確認它有沒有正常運作,還能針對單一 App 關掉 Zygisk 模組。這些都在模組自帶的 WebUI 裡完成。這篇把 WebUI 的每個區塊說明一遍:它顯示什麼、資料從哪來、每個開關改了什麼。
先說結論:WebUI 只有兩個分頁,概覽(看狀態、看模組、兩個設定)和應用排除(挑 App 不載入模組)。日常只會用到後者。
本文依據 NyaZygisk 倉庫的 module/src/webroot/(前端)與 zygiskd、loader(讀取設定的一端)原始碼整理,截稿時我沒有逐項在實機上重新操作一遍,介面文字以原始碼內的字串為準。如果你的版本和描述不一致,以實際畫面為準。
🚪 怎麼打開
- 在 Root 管理器(KernelSU / APatch)的模組頁找到 NyaZygisk,點模組卡片上的 WebUI 入口(通常是個「開啟」或網頁圖示的按鈕)。
- Magisk 本身沒有 WebUI 入口,要用支援 WebUI 的第三方管理器開。前端內建的橋接介面有
window.kernelsu、KernelSU、WebUIX、apatch、mmrl這幾種,偵測不到任何一種時,頁面會跳出「找不到支援的 WebUI bridge」。
WebUI 所有資料都是透過管理器提供的 exec 介面,以 root 身分執行 shell 命令取得的,不是靠網路,離線也能用。
📊 分頁一:概覽
頂部:版本與重新整理
標題下方的小字是 NyaZygisk 版本 · Root 方案與版本,例如 v2.5 · KernelSU …。右上角的圓形箭頭是重新整理,會重新讀取所有狀態並重新載入應用清單,成功後底部會彈出「已重新整理」。
狀態卡片:Zygisk 現在到底有沒有在運作
最上面的大卡片用顏色和圖示直接告訴你結論,下面列出三個組件的狀態:
| 組件 | 含義 |
|---|---|
| Zygote 監控(Zygote Monitor) | 盯著 Zygote 進程、負責注入的監控組件,它停了就不會有注入 |
| Zygote(會標示 64-bit / 32-bit) | Zygote 進程有沒有被注入 |
| 守護進程(Daemon) | zygiskd,負責給模組提供檔案、companion 等服務 |
每個組件的狀態字樣分兩類:
- 正常(綠):
運行中、已注入、追蹤中 - 異常(紅):
已停止、已退出、已崩潰、未注入 - 其他(灰):
未知
大卡片的總結按下面的規則決定,這是前端 overallTone 的邏輯:
| 卡片 | 條件 | 怎麼辦 |
|---|---|---|
| ✅ 運行正常 | 三個組件全部正常 | 不用管 |
| ⚠️ 部分異常 | 監控與 Zygote 都沒問題,但別的組件異常(通常是守護進程) | 模組可能載入不了,先重新整理,再重開機 |
| ❌ 未運行 | 監控或 Zygote 有一個異常 | Zygisk 沒生效,重開機;仍然不行就收集 debug 日誌回報 |
| ❔ 狀態未知 | 讀不到狀態,或剛裝好還沒重開機 | 重開機後再看;若同時出現橋接錯誤,換一個支援 WebUI 的管理器 |
裝完模組、重開機之後,第一件事就是開 WebUI 看這張卡片。README 的安裝步驟最後一步也是這個。
裝置與環境
這張卡片列出:
- Root 方案:偵測 APatch / FolkPatch / KernelSU / Magisk,能取得版本時一併顯示。做法是檢查
apd、fpd、magiskd進程與/data/adb/ksu目錄,SukiSU 這類會顯示為 KernelSU 或 SukiSU。 - 系統:只有偵測到廠商 ROM 才會出現。目前認得 ColorOS / OxygenOS、HyperOS、MIUI、One UI,版本取自各家的系統屬性。AOSP 類系統這格會隱藏。
- 內核、Android SDK、ABI:直接讀自守護進程回報的資料。
回報問題時,把這張卡片截圖附上最省事,維護者不用再追問你的環境。
已啟用模組
列出目前啟用中、並且是 Zygisk 或 ZN 模組的項目,右上角的數字是總數。每個模組顯示名稱、版本、說明、作者,以及標籤:
Zygisk:走 Magisk Zygisk API 的模組(例如 LSPosed 這一類)ZN:走 Zygisk Next API 的模組。若它的注入目標不是 zygote,會多顯示一行「目標:xxx」Companion:這個模組有使用 companion 進程
清單的來源是兩份資料合併:
- 掃描
/data/adb/modules/*,跳過有disable或remove標記的目錄,只保留含有zygisk/<abi>.so或zn_modules.txt的模組,並讀它的module.prop。 - 守護進程回報的模組清單,補上類型(Zygisk / ZN)、目標和 companion 資訊。
所以如果某個模組沒出現在這裡,先檢查它是不是被停用了,或者它根本不是 Zygisk 模組(沒有 zygisk/ 目錄也沒有 zn_modules.txt)。反過來,剛啟用還沒重開機的模組,可能已經在清單裡但還沒真正載入,要以重開機後的狀態為準。
設定
匿名記憶體(Anonymous memory)——「特化後隱藏模組的記憶體映射」,預設關閉。
打開後,App 進程完成特化(specialize)之後,NyaZygisk 會把 /proc/self/maps 裡由模組產生的映射(路徑名含 jit-cache-zygisk、zygisk-module、zn-module 的私有映射)改成匿名映射,同時把 rwx 的映射去掉寫入權限。目的是讓偵測 App 掃描 maps 時,看不到這些帶有模組特徵的名字。
- 適合:你的 App 會掃 maps 找 Zygisk 痕跡,且你已經確認需要這個功能。
- 不適合:沒有這種需求的情況不用開。它會改動進程的記憶體屬性,如果某個模組在開啟後行為異常,先關掉它確認是不是原因。
- 開關改動後即寫入設定,對之後啟動的 App 進程生效,已經在跑的 App 要重新啟動。
語言(Language)——EN / 繁中 / 简中,切換後立刻生效,選擇記在 WebUI 自己的本機儲存裡,不影響模組本身。
🛡️ 分頁二:應用排除
這是 WebUI 裡最實用的功能:勾選的 App 完全不載入任何 Zygisk 模組。
典型場景:
- 某個 App 偵測到 Zygisk 或 Hook 就拒絕運行或封號,又不需要任何模組的功能。
- 某個模組對特定 App 造成閃退,你想先把那個 App 排除掉而不是停用整個模組。
怎麼用
- 切到底部的應用排除分頁(分頁標籤上的數字是目前已排除的 App 數量)。
- 在列表裡找到目標 App:
- 搜尋框支援依名稱或套件名搜尋;
- 上方有「全部 N / 已排除 N」兩個篩選,可以只看已排除的。
- 打開該 App 右側的開關。每次切換都會立刻儲存,並彈出「已儲存」。
- 重新啟動那個 App(建議從最近任務裡徹底滑掉再開)。排除只在 App 下次啟動時生效,已經在跑的進程不受影響。尚未生效的項目旁邊會顯示「待重啟」標籤。
列表中已排除的項目會排在最前面,其餘依名稱排序。切換時列的位置不會跳走,所以連續勾選多個不會點錯。
「同時卸載模組掛載」
分頁上方的這個開關(Unmount for excluded apps),預設開啟。
- 開:被排除的 App 除了不載入模組之外,還會像 DenyList 一樣,把 Root 與模組的掛載從它的 mount namespace 裡卸掉。
- 關:只是不載入模組,掛載痕跡不處理。
也就是說,開著這個開關時,勾選一個 App 的效果等於「既不讓模組進去,又讓它看不到掛載」。如果你本來就用 Root 管理器的「卸載模組」功能(APatch / KernelSU)或 Magisk 的 DenyList 處理過這個 App,這個開關和它們是並行的,不衝突。
應用排除和 DenyList 不是同一個東西:DenyList 管的是掛載(Zygisk 模組還是會被載入),應用排除管的是模組載入(再加上可選的卸載掛載)。要徹底把 App 隔離在模組之外,用應用排除並保持「同時卸載模組掛載」開啟。
它的限制
介面頂部的提示已經寫了,這裡再展開:
- 只列出使用者安裝的 App(
pm list packages -3)。系統 App 不會出現,也不能排除,這是刻意的:system_server和系統 UID 永遠不受影響,避免把系統搞壞。 - 共用 UID 的 App 會一起切換。 如果多個套件共用同一個 UID,排除其中一個等於排除全部,列表裡會標出「與另外 N 個套件共用 UID,會一起切換」。
- 與系統套件共用 UID 的 App 無法排除。 這類項目開關是灰的,並註明「與系統套件共用 UID,無法排除」。原因是守護進程只有在同一 UID 下所有套件都在排除清單裡才會排除,而系統套件不允許被列進去。
- 已解除安裝的套件會被自動清掉,不會留下看不見的殘留項目。
- 顯示 App 名稱需要管理器提供套件資訊介面(KernelSU 系的 WebUI 有);沒有時只顯示套件名,功能不受影響。
🧰 常見狀況
| 現象 | 可能原因與處理 |
|---|---|
打開後全是 - 和「狀態未知」,彈出「找不到支援的 WebUI bridge」 | 用的管理器沒有提供 exec 介面,換成 KernelSU / APatch 自帶的入口,或支援 WebUI 的第三方管理器 |
| 狀態是「部分異常」 | 守護進程沒起來,先重新整理,再重開機;仍異常就用 debug 版收集日誌 |
| 「未運行」 | Zygisk 沒生效。確認沒有同時安裝別的 Zygisk 實作(NeoZygisk、ReZygisk、Zygisk Next),Magisk 用戶要關閉內建 Zygisk |
| 模組清單是空的 | 模組沒啟用,或不是 Zygisk / ZN 模組 |
| 勾選排除後 App 還是載入了模組 | 沒有重啟該 App,或該 App 與系統套件共用 UID(開關是灰的) |
| 彈出「儲存設定失敗」 | 寫入 config.prop 失敗,開關會自動彈回原狀態,檢查管理器是否給了 WebUI root 權限 |
🔧 給進階使用者:設定存在哪
WebUI 的所有設定都是寫進同一個檔案:
/data/adb/modules/zygisksu/config.prop| 鍵 | 值 | 含義 |
|---|---|---|
anonymous_memory | 1 / 0 | 匿名記憶體,沒有這個鍵視為關閉 |
exclude_unmount | 1 / 0 | 同時卸載模組掛載,沒有這個鍵視為開啟 |
exclude_apps | pkg1,pkg2,... | 排除的套件名,逗號分隔 |
WebUI 寫入時只改自己的那一個鍵、其餘保留,並且先寫暫存檔再改名,避免寫到一半被讀到。守護進程會監看這個檔案的修改時間,變動後自動清掉快取,所以不用重啟守護進程,在 WebUI 之外手動編輯也一樣生效(同樣是對之後啟動的進程生效)。
小結
- 裝完先看概覽的狀態卡片:綠色就是 Zygisk 正常。
- 模組清單用來確認「我的模組有沒有真的被識別、被當成哪一類」。
- 應用排除是主要的日常功能:勾選 → 重啟該 App;想連掛載也藏掉就保持「同時卸載模組掛載」開著。
- 匿名記憶體只有在 App 會掃 maps 的時候才需要開。
如果你發現說明和實際行為不符,或有想要的功能,歡迎到 GitHub 開 issue,或到 Telegram 頻道 @NyaZygisk 反映。
支持與分享
如果這篇文章對你有幫助,歡迎分享給更多人或打賞支持!

