NyaZygisk WebUI 使用說明:每個功能是做什麼的、怎麼用

2768 字
14 分鐘
NyaZygisk WebUI 使用說明:每個功能是做什麼的、怎麼用

NyaZygisk 裝好之後,不用開終端機也能確認它有沒有正常運作,還能針對單一 App 關掉 Zygisk 模組。這些都在模組自帶的 WebUI 裡完成。這篇把 WebUI 的每個區塊說明一遍:它顯示什麼、資料從哪來、每個開關改了什麼。

先說結論:WebUI 只有兩個分頁,概覽(看狀態、看模組、兩個設定)和應用排除(挑 App 不載入模組)。日常只會用到後者。

Note

本文依據 NyaZygisk 倉庫的 module/src/webroot/(前端)與 zygiskd、loader(讀取設定的一端)原始碼整理,截稿時我沒有逐項在實機上重新操作一遍,介面文字以原始碼內的字串為準。如果你的版本和描述不一致,以實際畫面為準。


🚪 怎麼打開#

  1. 在 Root 管理器(KernelSU / APatch)的模組頁找到 NyaZygisk,點模組卡片上的 WebUI 入口(通常是個「開啟」或網頁圖示的按鈕)。
  2. 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 的管理器
Tip

裝完模組、重開機之後,第一件事就是開 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 進程

清單的來源是兩份資料合併:

  1. 掃描 /data/adb/modules/*,跳過有 disable 或 remove 標記的目錄,只保留含有 zygisk/<abi>.so 或 zn_modules.txt 的模組,並讀它的 module.prop。
  2. 守護進程回報的模組清單,補上類型(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 排除掉而不是停用整個模組。

怎麼用#

  1. 切到底部的應用排除分頁(分頁標籤上的數字是目前已排除的 App 數量)。
  2. 在列表裡找到目標 App:
    • 搜尋框支援依名稱或套件名搜尋;
    • 上方有「全部 N / 已排除 N」兩個篩選,可以只看已排除的。
  3. 打開該 App 右側的開關。每次切換都會立刻儲存,並彈出「已儲存」。
  4. 重新啟動那個 App(建議從最近任務裡徹底滑掉再開)。排除只在 App 下次啟動時生效,已經在跑的進程不受影響。尚未生效的項目旁邊會顯示「待重啟」標籤。

列表中已排除的項目會排在最前面,其餘依名稱排序。切換時列的位置不會跳走,所以連續勾選多個不會點錯。

「同時卸載模組掛載」#

分頁上方的這個開關(Unmount for excluded apps),預設開啟。

  • 開:被排除的 App 除了不載入模組之外,還會像 DenyList 一樣,把 Root 與模組的掛載從它的 mount namespace 裡卸掉。
  • 關:只是不載入模組,掛載痕跡不處理。

也就是說,開著這個開關時,勾選一個 App 的效果等於「既不讓模組進去,又讓它看不到掛載」。如果你本來就用 Root 管理器的「卸載模組」功能(APatch / KernelSU)或 Magisk 的 DenyList 處理過這個 App,這個開關和它們是並行的,不衝突。

Important

應用排除和 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_memory1 / 0匿名記憶體,沒有這個鍵視為關閉
exclude_unmount1 / 0同時卸載模組掛載,沒有這個鍵視為開啟
exclude_appspkg1,pkg2,...排除的套件名,逗號分隔

WebUI 寫入時只改自己的那一個鍵、其餘保留,並且先寫暫存檔再改名,避免寫到一半被讀到。守護進程會監看這個檔案的修改時間,變動後自動清掉快取,所以不用重啟守護進程,在 WebUI 之外手動編輯也一樣生效(同樣是對之後啟動的進程生效)。


小結#

  • 裝完先看概覽的狀態卡片:綠色就是 Zygisk 正常。
  • 模組清單用來確認「我的模組有沒有真的被識別、被當成哪一類」。
  • 應用排除是主要的日常功能:勾選 → 重啟該 App;想連掛載也藏掉就保持「同時卸載模組掛載」開著。
  • 匿名記憶體只有在 App 會掃 maps 的時候才需要開。

如果你發現說明和實際行為不符,或有想要的功能,歡迎到 GitHub 開 issue,或到 Telegram 頻道 @NyaZygisk 反映。

支持與分享

如果這篇文章對你有幫助,歡迎分享給更多人或打賞支持!

打賞
NyaZygisk WebUI 使用說明:每個功能是做什麼的、怎麼用
https://www.nkbe.top/posts/nyazygisk-webui-guide/
作者
NkBe
發布於
2026-10-21
許可協議
CC BY-NC-SA 4.0
文章目錄