<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>NkBe</title><description>nkbe.top</description><link>https://www.nkbe.top/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.16.8</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年11月8日 下午08:03:30</lastBuildDate><item><title>你好，這裡是 NkBe 的新站</title><link>https://www.nkbe.top/posts/hello/</link><guid isPermaLink="true">https://www.nkbe.top/posts/hello/</guid><description>個人站改用 Astro 重建，這是第一篇文章。</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;這個站原本只是一頁導航，現在換成 Astro + Firefly 主題，之後會把專案紀錄和技術筆記寫在這裡。&lt;/p&gt;
&lt;p&gt;目前還在整理中，專案請先看 &lt;a href=&quot;/projects/&quot;&gt;專案頁&lt;/a&gt;。&lt;/p&gt;</content:encoded></item><item><title>一加 Ace 6T 免深度測試秒解 Bootloader、偽回鎖與永久 Root 實錄</title><link>https://www.nkbe.top/posts/oneplus-ace6t-bl-unlock-root/</link><guid isPermaLink="true">https://www.nkbe.top/posts/oneplus-ace6t-bl-unlock-root/</guid><description>記錄一加 Ace 6T（SM8845 / ColorOS 16）透過內核漏洞臨時提權、刷入工程 ABL 與 GBL efisp 注入 superfastboot 秒解 BL、偽回鎖綠標特性，以及專用魔改版 TWRP 的使用與避坑實測。</description><pubDate>Sun, 08 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;近期一加收緊了新機型的官方 Bootloader 解鎖申請。這篇記錄在一加 Ace 6T（代號 &lt;code&gt;macan&lt;/code&gt;，型號 &lt;code&gt;PLR110&lt;/code&gt;，搭載高通 SM8845 / 驍龍 8 Gen 5，系統版本 &lt;code&gt;PLR110_16.0.10.500(CN01)&lt;/code&gt;）上，利用內核漏洞臨時提權、替換引導分區注入 &lt;code&gt;superfastboot&lt;/code&gt; 秒解 BL、達成綠標「偽回鎖」並部署 SukiSU 永久 Root 的完整實測流程。&lt;/p&gt;
&lt;p&gt;文末同時附上我們二次魔改的 Android 16 專用 TWRP Recovery，以及針對「非官方深度測試真解鎖」環境下的使用規範與踩坑記錄。&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;&lt;h2&gt;💡 方案特性總結&lt;a href=&quot;#-方案特性總結&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;免深度測試秒解 BL&lt;/strong&gt;：不走官方排隊審核，利用漏洞臨時提權寫入紫標 ABL 與 GBL &lt;code&gt;efisp&lt;/code&gt;，透過 &lt;code&gt;superfastboot&lt;/code&gt; 直接達成 &lt;code&gt;unlocked: yes&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;偽回鎖綠標狀態&lt;/strong&gt;：系統底層回報 &lt;code&gt;ro.boot.vbmeta.device_state=locked&lt;/code&gt; 與 &lt;code&gt;ro.boot.verifiedbootstate=green&lt;/code&gt;，開機無 Orange State 解鎖黃字警告，能無痛通過依賴 BL 狀態的各類環境檢測。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一氣呵成永久 Root&lt;/strong&gt;：在解鎖清數據的同一趟引導流程中刷入修補好的 &lt;code&gt;init_boot&lt;/code&gt;，開機即完成 SukiSU 永久 Root。&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🧩 整體原理：四個關鍵環節&lt;a href=&quot;#-整體原理四個關鍵環節&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;整個方案由四個環節組成：&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;環節&lt;/th&gt;&lt;th&gt;目標&lt;/th&gt;&lt;th&gt;核心操作&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;1. 臨時提權（越獄）&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;在未解鎖系統上取得 &lt;code&gt;root&lt;/code&gt; 權限&lt;/td&gt;&lt;td&gt;利用 &lt;code&gt;CVE-2026-43499-S26&lt;/code&gt; 漏洞載入臨時 KernelSU，授權給 &lt;code&gt;adb shell&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;2. 預提取與修補&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;準備永久 Root 與原機防磚備份&lt;/td&gt;&lt;td&gt;提取原廠 &lt;code&gt;abl_a/b&lt;/code&gt;、&lt;code&gt;efisp&lt;/code&gt;、&lt;code&gt;recovery_a&lt;/code&gt; 備份，並預先將 &lt;code&gt;init_boot&lt;/code&gt; 交由 SukiSU 修補&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;3. 注入 &lt;code&gt;superfastboot&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;替換引導程序與偽回鎖模組&lt;/td&gt;&lt;td&gt;寫入具備高通硬體簽名的工程 &lt;code&gt;abl.img&lt;/code&gt; 與基於 EDK2/GBL 的 &lt;code&gt;efisp.img&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;4. 攔截秒解與固化&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;秒解 BL、雙清與進系統&lt;/td&gt;&lt;td&gt;狂點「音量下」進 &lt;code&gt;superfastboot&lt;/code&gt; 秒解 BL，刷入修補好的 &lt;code&gt;init_boot&lt;/code&gt; 並進官方 Recovery 格式化資料&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔓 第一步：利用內核漏洞臨時提權（越獄）&lt;a href=&quot;#-第一步利用內核漏洞臨時提權越獄&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;未解鎖狀態下無法從 Fastboot 刷入未簽名分區，因此第一步需在系統內臨時取得 Root：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ColorOS 16（&lt;code&gt;16.0.10.500&lt;/code&gt;）&lt;/strong&gt;：
安裝 &lt;code&gt;GhostLock_1.2.apk&lt;/code&gt; 與 &lt;code&gt;KernelSU_v3.3.1.apk&lt;/code&gt;，匯入 &lt;code&gt;offsets-6.12.38-...&lt;/code&gt; 符號偏移配置，利用 &lt;code&gt;CVE-2026-43499-S26&lt;/code&gt; 內核漏洞取得臨時 Root 權限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ColorOS 17（待測）&lt;/strong&gt;：
提權工具可改用 &lt;code&gt;Shark-v2.0.apk&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;提權後開啟 KernelSU，在超級用戶中將 &lt;strong&gt;&lt;code&gt;Shell&lt;/code&gt;&lt;/strong&gt; 勾選授權，確保 &lt;code&gt;adb shell&lt;/code&gt; 具備 &lt;code&gt;su&lt;/code&gt; 執行能力。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;📦 第二步：提取備份與預先修補 &lt;code&gt;init_boot&lt;/code&gt;&lt;a href=&quot;#-第二步提取備份與預先修補-init_boot&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;解鎖 BL 會強制清空 &lt;code&gt;userdata&lt;/code&gt;，因此必須先將永久 Root 鏡像修補好並拉回電腦：&lt;/p&gt;&lt;section&gt;&lt;h3&gt;1. 備份原機關鍵分區&lt;a href=&quot;#1-備份原機關鍵分區&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;shell&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;su -c &apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/dev/block/by-name/abl_a of=/data/local/tmp/orig_abl_a.img &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/dev/block/by-name/abl_b of=/data/local/tmp/orig_abl_b.img &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/dev/block/by-name/efisp of=/data/local/tmp/orig_efisp.img &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/dev/block/by-name/recovery_a of=/data/local/tmp/stock_recovery_a.img &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/dev/block/by-name/init_boot_a of=/sdcard/Download/init_boot.img &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;chmod 644 /data/local/tmp/*.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&apos;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pull&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/local/tmp/orig_abl_a.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pull&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/local/tmp/orig_efisp.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pull&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/local/tmp/stock_recovery_a.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pull&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/sdcard/Download/init_boot.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./init_boot_stock.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. 修補 SukiSU 鏡像&lt;a href=&quot;#2-修補-sukisu-鏡像&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在手機上安裝 &lt;code&gt;SukiSU_v4.3.0-r2.apk&lt;/code&gt;，修補 &lt;code&gt;/sdcard/Download/init_boot.img&lt;/code&gt;，完成後拉回電腦：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pull&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/sdcard/Download/kernelsu_patched_&lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./init_boot_sukisu_patched.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🛠️ 第三步：刷入工程 &lt;code&gt;abl.img&lt;/code&gt; 與 GBL &lt;code&gt;efisp.img&lt;/code&gt;&lt;a href=&quot;#️-第三步刷入工程-ablimg-與-gbl-efispimg&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;工程紫標 &lt;code&gt;abl.img&lt;/code&gt;&lt;/strong&gt;：帶有高通 &lt;code&gt;OPLUS SM8845 Attestation&lt;/code&gt; 合法硬體簽名，可安全通過 Secure Boot，並支援引導 &lt;code&gt;efisp&lt;/code&gt; 中的 GBL 模組。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GBL 引導模組 &lt;code&gt;efisp.img&lt;/code&gt;&lt;/strong&gt;：基於 EDK2 / GBL 編譯，開機攔截按鍵提供 &lt;code&gt;superfastboot&lt;/code&gt;（序號 &lt;code&gt;0000000000000000&lt;/code&gt;），並在引導系統時注入偽回鎖參數（&lt;code&gt;device_state=locked&lt;/code&gt; / &lt;code&gt;verifiedbootstate=green&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;push&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;abl.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/local/tmp/abl.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;push&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;efisp.img&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/local/tmp/efisp.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;adb&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;shell&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;su -c &apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/data/local/tmp/abl.img of=/dev/block/by-name/abl_a &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/data/local/tmp/abl.img of=/dev/block/by-name/abl_b &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dd if=/data/local/tmp/efisp.img of=/dev/block/by-name/efisp &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sync&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&apos;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;⚠️ 第四步：關鍵避坑——按「音量下」秒解 BL&lt;a href=&quot;#️-第四步關鍵避坑按音量下秒解-bl&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;其實開機時螢幕上就清清楚楚寫著這幾行字（根本不用刻意去逆向字串表）：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Press Volume Down key to enter Fastboot mode&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Press Volume Up key to enter Normal mode&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;boot confirmation is blocked before unlocking&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;換句話說，引導模組的邏輯非常直白：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;音量下（Volume Down）&lt;/strong&gt;：進入 &lt;code&gt;superfastboot&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;音量上（Volume Up）&lt;/strong&gt;：跳過並嘗試一般開機。但在&lt;strong&gt;未完成解鎖前按音量上會觸發防護直接掉入 900E&lt;/strong&gt;！很多人習慣性按音量上進 Fastboot，結果一按就黑屏掉進 900E。&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;若誤入 900E，長按「電源 + 音量下」約 10～15 秒強制斷電重啟，重啟瞬間改為連續狂點「音量下」即可脫離 900E 進入 &lt;code&gt;superfastboot&lt;/code&gt;。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;section&gt;&lt;h3&gt;操作步驟：&lt;a href=&quot;#操作步驟&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;電腦端先執行指令守候：
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fastboot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;flashing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;unlock&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;手機執行重啟，黑屏瞬間&lt;strong&gt;連續狂點「音量下鍵」&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;進入 &lt;code&gt;superfastboot&lt;/code&gt; 後指令瞬間返回 &lt;code&gt;OKAY&lt;/code&gt;，確認 &lt;code&gt;unlocked: yes&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;直接刷入預先修補好的 SukiSU 鏡像並進入官方 Recovery：
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fastboot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;flash&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;init_boot_a&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;init_boot_sukisu_patched.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fastboot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;flash&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;init_boot_b&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;init_boot_sukisu_patched.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fastboot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;reboot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;recovery&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;官方 Recovery 內點選「格式化數據分區（Format Data）」，輸入驗證碼清除數據並重啟。&lt;/li&gt;
&lt;li&gt;進系統後安裝 &lt;code&gt;SukiSU_v4.3.0-r2.apk&lt;/code&gt;，即享永久 Root 與偽回鎖狀態！&lt;/li&gt;
&lt;/ol&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;📦 附加內容：一加 Ace 6T 專用魔改版 TWRP Recovery&lt;a href=&quot;#-附加內容一加-ace-6t-專用魔改版-twrp-recovery&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;為方便維護與刷入模組，我們基於社群底包（鳴謝 &lt;a href=&quot;https://t.me/colorospro/1724&quot; target=&quot;_blank&quot;&gt;@colorospro/1724&lt;/a&gt; / color597）對閉源 TWRP 進行了二次客製化：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;版本自訂&lt;/strong&gt;：界面與屬性更新為 &lt;strong&gt;&lt;code&gt;3.7.1_16-Macan_NkBe918-V1.3&lt;/code&gt;&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;標識重構&lt;/strong&gt;：將設備顯示名重定義為標準 &lt;code&gt;ro.product.model.display=OnePlus Ace 6T&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;管理器注入&lt;/strong&gt;：保留 &lt;code&gt;Magisk-v30.7.zip&lt;/code&gt;，剔除舊版 Kitsune，全新注入 &lt;strong&gt;&lt;code&gt;SukiSU-v4.3.0-r2.zip&lt;/code&gt;&lt;/strong&gt;（內建自動適配插槽與自動執行 &lt;code&gt;ksud boot-patch&lt;/code&gt; 修補 &lt;code&gt;init_boot&lt;/code&gt; 的專用 &lt;code&gt;update-binary&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;&lt;section&gt;&lt;h3&gt;⚠️ 特別注意：未真正深度測試解鎖時的使用規範&lt;a href=&quot;#️-特別注意未真正深度測試解鎖時的使用規範&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;實測證實，本機在當前的「偽回鎖」機制下，使用 TWRP 需遵循以下規則：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Snapdragon 8 Gen 5 不支援 &lt;code&gt;fastboot boot&lt;/code&gt; 臨時引導&lt;/strong&gt;：
Qualcomm SM8845 的工程 ABL 屬於純 64 位元 UEFI 架構，其 fastboot 記憶體引導僅接受具備 EFI Stub 標頭的映像。執行 &lt;code&gt;fastboot boot twrp.img&lt;/code&gt; 會直接報錯 &lt;code&gt;No EFI image found in boot.img&lt;/code&gt;，必須透過 &lt;code&gt;fastboot flash recovery_a&lt;/code&gt; 寫入分區。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非深度測試真解鎖的設備，開機前必須刷回原廠 Recovery&lt;/strong&gt;：
透過該方案秒解 BL 的設備，其引導鏈本質上處於「偽回鎖」狀態，正常進入系統時仍受官方原廠 &lt;code&gt;vbmeta&lt;/code&gt; 的嚴格驗證。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;可以正常使用 TWRP&lt;/strong&gt;：需要救磚、進 TWRP 操作或刷入模組時，隨時可以 &lt;code&gt;fastboot flash recovery_a TWRP-16-OPAce6T-NkBe918-V1.3.img&lt;/code&gt; 刷入並進入 TWRP，觸控與各功能均完全正常；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;但在重啟進入 ColorOS 系統前&lt;/strong&gt;：&lt;strong&gt;必須將 &lt;code&gt;recovery&lt;/code&gt; 刷回原廠 Recovery 鏡像&lt;/strong&gt;（&lt;code&gt;stock_recovery_16.0.10.500.img&lt;/code&gt;），否則系統在開機驗證階段發現 recovery 與 vbmeta 雜湊不匹配將無法正常引導開機。&lt;/li&gt;
&lt;li&gt;&lt;em&gt;（註：若是日後通過官方深度測試審核、真正走官方通道完全解開 BL 的設備，則可常駐保留第三方 Recovery）&lt;/em&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;💾 資源整合包與網盤下載&lt;a href=&quot;#-資源整合包與網盤下載&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;已將解鎖所需的全套工程引導、GBL 模組、臨時提權工具、SukiSU、專用魔改版 TWRP、原廠 16.0.10.500 恢復鏡像及內建推薦工具（含最新正式版 Shizuku）打包整合。提供以下載點供按需取用：&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;雲端平台&lt;/th&gt;&lt;th&gt;下載方式 / 說明&lt;/th&gt;&lt;th&gt;連結與提取碼&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Google Drive&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;ZIP 整合包，海外高速&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://drive.google.com/drive/folders/1bHqB0dS8CKm5QjSqtR3ZRVGvAmZkpdfK?usp=drive_link&quot; target=&quot;_blank&quot;&gt;Google 雲端硬碟&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;123 雲盤&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;資料夾形式，免登錄不限速&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://1855577741.share.123pan.cn/123pan/xWcNvd-0oII?pwd=nkbe#&quot; target=&quot;_blank&quot;&gt;123 雲盤&lt;/a&gt; &lt;br /&gt;提取碼：&lt;code&gt;nkbe&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;百度網盤&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;資料夾與 ZIP 完整收錄&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://pan.baidu.com/s/1s_RkpCiMjAEyiuEWmPuMuA?pwd=nkbe&quot; target=&quot;_blank&quot;&gt;百度網盤&lt;/a&gt; &lt;br /&gt;提取碼：&lt;code&gt;nkbe&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;section&gt;&lt;h3&gt;整合包目錄結構清單：&lt;a href=&quot;#整合包目錄結構清單&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;OnePlus_Ace6T_BL_Unlock_Root_Pack/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── 1_Privilege_Escalation/       # 臨時提權 (GhostLock 1.2, KernelSU, 6.12.38 內核偏移)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── 2_Fastboot_Unlock_Files/       # 解鎖關鍵 (高通簽名 abl.img, superfastboot efisp.img)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── 3_Root_Managers/               # Root 管理器 (SukiSU v4.3.0-r2)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── 4_TWRP_Recovery/               # TWRP-16-OPAce6T-NkBe918-V1.3.img &amp;amp; stock_recovery_16.0.10.500.img&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── 5_Flash_Scripts/               # 刷入與還原輔助腳本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;└── 7_Recommended_Tools/           # 內建推薦工具 (含 Shizuku v13.6.2 正式版)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>NyaZygisk WebUI 使用說明：每個功能是做什麼的、怎麼用</title><link>https://www.nkbe.top/posts/nyazygisk-webui-guide/</link><guid isPermaLink="true">https://www.nkbe.top/posts/nyazygisk-webui-guide/</guid><description>逐項說明 NyaZygisk WebUI 的狀態總覽、裝置資訊、模組清單、匿名記憶體、自訂鏈接器、應用排除與語言切換，以及狀態異常時該怎麼判讀。</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;NyaZygisk 裝好之後，不用開終端機也能確認它有沒有正常運作，還能針對單一 App 關掉 Zygisk 模組。這些都在模組自帶的 WebUI 裡完成。這篇把 WebUI 的每個區塊說明一遍：它顯示什麼、資料從哪來、每個開關改了什麼。&lt;/p&gt;
&lt;p&gt;先說結論：WebUI 只有兩個分頁，&lt;strong&gt;概覽&lt;/strong&gt;（看狀態、看模組、三個設定）和&lt;strong&gt;應用排除&lt;/strong&gt;（挑 App 不載入模組）。日常只會用到後者。&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;本文依據 NyaZygisk 倉庫的 &lt;code&gt;module/src/webroot/&lt;/code&gt;（前端）與 &lt;code&gt;zygiskd&lt;/code&gt;、&lt;code&gt;loader&lt;/code&gt;（讀取設定的一端）原始碼整理，截稿時我沒有逐項在實機上重新操作一遍，介面文字以原始碼內的字串為準。如果你的版本和描述不一致，以實際畫面為準。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;section&gt;&lt;h2&gt;🚪 怎麼打開&lt;a href=&quot;#-怎麼打開&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;在 Root 管理器（KernelSU / APatch）的模組頁找到 &lt;strong&gt;NyaZygisk&lt;/strong&gt;，點模組卡片上的 WebUI 入口（通常是個「開啟」或網頁圖示的按鈕）。&lt;/li&gt;
&lt;li&gt;Magisk 本身沒有 WebUI 入口，要用支援 WebUI 的第三方管理器開。前端內建的橋接介面有 &lt;code&gt;window.kernelsu&lt;/code&gt;、&lt;code&gt;KernelSU&lt;/code&gt;、&lt;code&gt;WebUIX&lt;/code&gt;、&lt;code&gt;apatch&lt;/code&gt;、&lt;code&gt;mmrl&lt;/code&gt; 這幾種，偵測不到任何一種時，頁面會跳出「找不到支援的 WebUI bridge」。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;WebUI 所有資料都是透過管理器提供的 &lt;code&gt;exec&lt;/code&gt; 介面，以 root 身分執行 shell 命令取得的，不是靠網路，離線也能用。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;📊 分頁一：概覽&lt;a href=&quot;#-分頁一概覽&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;頂部：版本與重新整理&lt;a href=&quot;#頂部版本與重新整理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;標題下方的小字是 &lt;code&gt;NyaZygisk 版本 · Root 方案與版本&lt;/code&gt;，例如 &lt;code&gt;v2.5 · KernelSU …&lt;/code&gt;。右上角的圓形箭頭是&lt;strong&gt;重新整理&lt;/strong&gt;，會重新讀取所有狀態並重新載入應用清單，成功後底部會彈出「已重新整理」。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;狀態卡片：Zygisk 現在到底有沒有在運作&lt;a href=&quot;#狀態卡片zygisk-現在到底有沒有在運作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;最上面的大卡片用顏色和圖示直接告訴你結論，下面列出三個組件的狀態：&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;組件&lt;/th&gt;&lt;th&gt;含義&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Zygote 監控&lt;/strong&gt;（Zygote Monitor）&lt;/td&gt;&lt;td&gt;盯著 Zygote 進程、負責注入的監控組件，它停了就不會有注入&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Zygote&lt;/strong&gt;（會標示 64-bit / 32-bit）&lt;/td&gt;&lt;td&gt;Zygote 進程有沒有被注入&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;守護進程&lt;/strong&gt;（Daemon）&lt;/td&gt;&lt;td&gt;&lt;code&gt;zygiskd&lt;/code&gt;，負責給模組提供檔案、companion 等服務&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;每個組件的狀態字樣分兩類：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;正常（綠）：&lt;code&gt;運行中&lt;/code&gt;、&lt;code&gt;已注入&lt;/code&gt;、&lt;code&gt;追蹤中&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;異常（紅）：&lt;code&gt;已停止&lt;/code&gt;、&lt;code&gt;已退出&lt;/code&gt;、&lt;code&gt;已崩潰&lt;/code&gt;、&lt;code&gt;未注入&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;其他（灰）：&lt;code&gt;未知&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;大卡片的總結按下面的規則決定，這是前端 &lt;code&gt;overallTone&lt;/code&gt; 的邏輯：&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;卡片&lt;/th&gt;&lt;th&gt;條件&lt;/th&gt;&lt;th&gt;怎麼辦&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;✅ 運行正常&lt;/td&gt;&lt;td&gt;三個組件全部正常&lt;/td&gt;&lt;td&gt;不用管&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;⚠️ 部分異常&lt;/td&gt;&lt;td&gt;監控與 Zygote 都沒問題，但別的組件異常（通常是守護進程）&lt;/td&gt;&lt;td&gt;模組可能載入不了，先重新整理，再重開機&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;❌ 未運行&lt;/td&gt;&lt;td&gt;監控或 Zygote 有一個異常&lt;/td&gt;&lt;td&gt;Zygisk 沒生效，重開機；仍然不行就收集 debug 日誌回報&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;❔ 狀態未知&lt;/td&gt;&lt;td&gt;讀不到狀態，或剛裝好還沒重開機&lt;/td&gt;&lt;td&gt;重開機後再看；若同時出現橋接錯誤，換一個支援 WebUI 的管理器&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;裝完模組、重開機之後，第一件事就是開 WebUI 看這張卡片。README 的安裝步驟最後一步也是這個。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;裝置與環境&lt;a href=&quot;#裝置與環境&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;這張卡片列出：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Root 方案&lt;/strong&gt;：偵測 APatch / FolkPatch / KernelSU / Magisk，能取得版本時一併顯示。做法是檢查 &lt;code&gt;apd&lt;/code&gt;、&lt;code&gt;fpd&lt;/code&gt;、&lt;code&gt;magiskd&lt;/code&gt; 進程與 &lt;code&gt;/data/adb/ksu&lt;/code&gt; 目錄，SukiSU 這類會顯示為 KernelSU 或 SukiSU。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系統&lt;/strong&gt;：只有偵測到廠商 ROM 才會出現。目前認得 ColorOS / OxygenOS、HyperOS、MIUI、One UI，版本取自各家的系統屬性。AOSP 類系統這格會隱藏。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;內核&lt;/strong&gt;、&lt;strong&gt;Android SDK&lt;/strong&gt;、&lt;strong&gt;ABI&lt;/strong&gt;：直接讀自守護進程回報的資料。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;回報問題時，把這張卡片截圖附上最省事，維護者不用再追問你的環境。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;已啟用模組&lt;a href=&quot;#已啟用模組&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;列出目前&lt;strong&gt;啟用中&lt;/strong&gt;、並且是 Zygisk 或 ZN 模組的項目，右上角的數字是總數。每個模組顯示名稱、版本、說明、作者，以及標籤：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Zygisk&lt;/code&gt;：走 Magisk Zygisk API 的模組（例如 LSPosed 這一類）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ZN&lt;/code&gt;：走 Zygisk Next API 的模組。若它的注入目標不是 zygote，會多顯示一行「目標：xxx」&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Companion&lt;/code&gt;：這個模組有使用 companion 進程&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;清單的來源是兩份資料合併：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;掃描 &lt;code&gt;/data/adb/modules/*&lt;/code&gt;，跳過有 &lt;code&gt;disable&lt;/code&gt; 或 &lt;code&gt;remove&lt;/code&gt; 標記的目錄，只保留含有 &lt;code&gt;zygisk/&amp;lt;abi&amp;gt;.so&lt;/code&gt; 或 &lt;code&gt;zn_modules.txt&lt;/code&gt; 的模組，並讀它的 &lt;code&gt;module.prop&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;守護進程回報的模組清單，補上類型（Zygisk / ZN）、目標和 companion 資訊。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;所以如果某個模組沒出現在這裡，先檢查它是不是被停用了，或者它根本不是 Zygisk 模組（沒有 &lt;code&gt;zygisk/&lt;/code&gt; 目錄也沒有 &lt;code&gt;zn_modules.txt&lt;/code&gt;）。反過來，剛啟用還沒重開機的模組，可能已經在清單裡但還沒真正載入，要以重開機後的狀態為準。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;設定&lt;a href=&quot;#設定&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;匿名記憶體（Anonymous memory）&lt;/strong&gt;——「特化後隱藏模組的記憶體映射」，預設關閉。&lt;/p&gt;&lt;p&gt;打開後，App 進程完成特化（specialize）之後，NyaZygisk 會把 &lt;code&gt;/proc/self/maps&lt;/code&gt; 裡由模組產生的映射（路徑名含 &lt;code&gt;jit-cache-zygisk&lt;/code&gt;、&lt;code&gt;zygisk-module&lt;/code&gt;、&lt;code&gt;zn-module&lt;/code&gt; 的私有映射）改成匿名映射，同時把 rwx 的映射去掉寫入權限。目的是讓偵測 App 掃描 maps 時，看不到這些帶有模組特徵的名字。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;適合：你的 App 會掃 maps 找 Zygisk 痕跡，且你已經確認需要這個功能。&lt;/li&gt;
&lt;li&gt;不適合：沒有這種需求的情況不用開。它會改動進程的記憶體屬性，有用戶反饋開啟後出現過系統介面進不去、狀態顯示 &lt;code&gt;Monitor: NO&lt;/code&gt; 等問題。遇到類似狀況，先把它關掉確認是不是原因。&lt;/li&gt;
&lt;li&gt;開關改動後即寫入設定，&lt;strong&gt;對之後啟動的 App 進程生效&lt;/strong&gt;，已經在跑的 App 要重新啟動。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;自訂鏈接器（Custom linker）&lt;/strong&gt;——「不經過系統鏈接器載入模組（實驗性）」，預設關閉。&lt;/p&gt;&lt;p&gt;一般情況下，模組是交給系統的動態鏈接器（&lt;code&gt;android_dlopen_ext&lt;/code&gt;）載入的，載入後會登記在鏈接器的 solist 裡。打開這個開關後，NyaZygisk 改用自己內建的 ELF 載入器把模組映射進記憶體並完成重定位，模組不會進入系統鏈接器的紀錄；搭配匿名記憶體時，還能直接映射成匿名頁面，不留下 memfd 的名字。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;適合：想進一步減少模組在系統鏈接器裡留下的痕跡，並且願意承擔實驗性功能風險的人。&lt;/li&gt;
&lt;li&gt;不適合：一般使用。它是實驗功能，所以預設不啟用。載入失敗或遇到不支援的模組時，會自動退回系統鏈接器；但如果開啟後出現閃退或模組異常，請先關掉它再回報。&lt;/li&gt;
&lt;li&gt;同樣&lt;strong&gt;對之後啟動的 App 進程生效&lt;/strong&gt;。想確認模組是由哪個載入器載入的，可以用 debug 版看日誌裡的 &lt;code&gt;modloader:&lt;/code&gt; 紀錄。&lt;/li&gt;
&lt;li&gt;從 v2.5-r2 起，沒有設定這個鍵時視為關閉；先前版本在沒設定時是開啟的，更新後如果還要用，需要在 WebUI 重新打開。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;語言（Language）&lt;/strong&gt;——EN / 繁中 / 简中，切換後立刻生效，選擇記在 WebUI 自己的本機儲存裡，不影響模組本身。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🛡️ 分頁二：應用排除&lt;a href=&quot;#️-分頁二應用排除&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;這是 WebUI 裡最實用的功能：&lt;strong&gt;勾選的 App 完全不載入任何 Zygisk 模組&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;典型場景：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;某個 App 偵測到 Zygisk 或 Hook 就拒絕運行或封號，又不需要任何模組的功能。&lt;/li&gt;
&lt;li&gt;某個模組對特定 App 造成閃退，你想先把那個 App 排除掉而不是停用整個模組。&lt;/li&gt;
&lt;/ul&gt;&lt;section&gt;&lt;h3&gt;怎麼用&lt;a href=&quot;#怎麼用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;切到底部的&lt;strong&gt;應用排除&lt;/strong&gt;分頁（分頁標籤上的數字是目前已排除的 App 數量）。&lt;/li&gt;
&lt;li&gt;在列表裡找到目標 App：
&lt;ul&gt;
&lt;li&gt;搜尋框支援依&lt;strong&gt;名稱或套件名&lt;/strong&gt;搜尋；&lt;/li&gt;
&lt;li&gt;上方有「&lt;strong&gt;全部&lt;/strong&gt; N / &lt;strong&gt;已排除&lt;/strong&gt; N」兩個篩選，可以只看已排除的。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;打開該 App 右側的開關。每次切換都會立刻儲存，並彈出「已儲存」。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重新啟動那個 App&lt;/strong&gt;（建議從最近任務裡徹底滑掉再開）。排除只在 App 下次啟動時生效，已經在跑的進程不受影響。尚未生效的項目旁邊會顯示「&lt;strong&gt;待重啟&lt;/strong&gt;」標籤。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;列表中已排除的項目會排在最前面，其餘依名稱排序。切換時列的位置不會跳走，所以連續勾選多個不會點錯。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;「同時卸載模組掛載」&lt;a href=&quot;#同時卸載模組掛載&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;分頁上方的這個開關（&lt;code&gt;Unmount for excluded apps&lt;/code&gt;），&lt;strong&gt;預設開啟&lt;/strong&gt;。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;開：被排除的 App 除了不載入模組之外，還會像 DenyList 一樣，把 Root 與模組的掛載從它的 mount namespace 裡卸掉。&lt;/li&gt;
&lt;li&gt;關：只是不載入模組，掛載痕跡不處理。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;也就是說，開著這個開關時，勾選一個 App 的效果等於「既不讓模組進去，又讓它看不到掛載」。如果你本來就用 Root 管理器的「卸載模組」功能（APatch / KernelSU）或 Magisk 的 DenyList 處理過這個 App，這個開關和它們是並行的，不衝突。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;應用排除和 DenyList 不是同一個東西：DenyList 管的是&lt;strong&gt;掛載&lt;/strong&gt;（Zygisk 模組還是會被載入），應用排除管的是&lt;strong&gt;模組載入&lt;/strong&gt;（再加上可選的卸載掛載）。要徹底把 App 隔離在模組之外，用應用排除並保持「同時卸載模組掛載」開啟。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;它的限制&lt;a href=&quot;#它的限制&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;介面頂部的提示已經寫了，這裡再展開：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;只列出使用者安裝的 App&lt;/strong&gt;（&lt;code&gt;pm list packages -3&lt;/code&gt;）。系統 App 不會出現，也不能排除，這是刻意的：&lt;code&gt;system_server&lt;/code&gt; 和系統 UID 永遠不受影響，避免把系統搞壞。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;共用 UID 的 App 會一起切換。&lt;/strong&gt; 如果多個套件共用同一個 UID，排除其中一個等於排除全部，列表裡會標出「與另外 N 個套件共用 UID，會一起切換」。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;與系統套件共用 UID 的 App 無法排除。&lt;/strong&gt; 這類項目開關是灰的，並註明「與系統套件共用 UID，無法排除」。原因是守護進程只有在同一 UID 下所有套件都在排除清單裡才會排除，而系統套件不允許被列進去。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;已解除安裝的套件會被自動清掉&lt;/strong&gt;，不會留下看不見的殘留項目。&lt;/li&gt;
&lt;li&gt;顯示 App 名稱需要管理器提供套件資訊介面（KernelSU 系的 WebUI 有）；沒有時只顯示套件名，功能不受影響。&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🧰 常見狀況&lt;a href=&quot;#-常見狀況&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;現象&lt;/th&gt;&lt;th&gt;可能原因與處理&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;打開後全是 &lt;code&gt;-&lt;/code&gt; 和「狀態未知」，彈出「找不到支援的 WebUI bridge」&lt;/td&gt;&lt;td&gt;用的管理器沒有提供 &lt;code&gt;exec&lt;/code&gt; 介面，換成 KernelSU / APatch 自帶的入口，或支援 WebUI 的第三方管理器&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;狀態是「部分異常」&lt;/td&gt;&lt;td&gt;守護進程沒起來，先重新整理，再重開機；仍異常就用 debug 版收集日誌&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;「未運行」&lt;/td&gt;&lt;td&gt;Zygisk 沒生效。確認沒有同時安裝別的 Zygisk 實作（NeoZygisk、ReZygisk、Zygisk Next），Magisk 用戶要關閉內建 Zygisk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;模組清單是空的&lt;/td&gt;&lt;td&gt;模組沒啟用，或不是 Zygisk / ZN 模組&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;勾選排除後 App 還是載入了模組&lt;/td&gt;&lt;td&gt;沒有重啟該 App，或該 App 與系統套件共用 UID（開關是灰的）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;彈出「儲存設定失敗」&lt;/td&gt;&lt;td&gt;寫入 &lt;code&gt;config.prop&lt;/code&gt; 失敗，開關會自動彈回原狀態，檢查管理器是否給了 WebUI root 權限&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔧 給進階使用者：設定存在哪&lt;a href=&quot;#-給進階使用者設定存在哪&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;WebUI 的所有設定都是寫進同一個檔案：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;/data/adb/nyazygisk/config.prop&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;鍵&lt;/th&gt;&lt;th&gt;值&lt;/th&gt;&lt;th&gt;含義&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;anonymous_memory&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt; / &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&lt;td&gt;匿名記憶體，沒有這個鍵視為關閉&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;custom_linker&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt; / &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&lt;td&gt;自訂鏈接器，沒有這個鍵視為關閉（只有 &lt;code&gt;1&lt;/code&gt; 才啟用）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;exclude_unmount&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt; / &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&lt;td&gt;同時卸載模組掛載，沒有這個鍵視為開啟&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;exclude_apps&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;pkg1,pkg2,...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;排除的套件名，逗號分隔&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;WebUI 寫入時只改自己的那一個鍵、其餘保留，並且先寫暫存檔再改名，避免寫到一半被讀到。守護進程會監看這個檔案的修改時間，變動後自動清掉快取，所以&lt;strong&gt;不用重啟守護進程&lt;/strong&gt;，在 WebUI 之外手動編輯也一樣生效（同樣是對之後啟動的進程生效）。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;小結&lt;a href=&quot;#小結&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;裝完先看&lt;strong&gt;概覽&lt;/strong&gt;的狀態卡片：綠色就是 Zygisk 正常。&lt;/li&gt;
&lt;li&gt;模組清單用來確認「我的模組有沒有真的被識別、被當成哪一類」。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;應用排除&lt;/strong&gt;是主要的日常功能：勾選 → 重啟該 App；想連掛載也藏掉就保持「同時卸載模組掛載」開著。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;匿名記憶體&lt;/strong&gt;只有在 App 會掃 maps 的時候才需要開。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自訂鏈接器&lt;/strong&gt;是實驗功能，預設關閉；開啟後若出問題，先關掉再回報。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;如果你發現說明和實際行為不符，或有想要的功能，歡迎到 &lt;a href=&quot;https://github.com/HSSkyBoy/NyaZygisk&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; 開 issue，或到 Telegram 頻道 &lt;a href=&quot;https://t.me/NYAZYGISK&quot; target=&quot;_blank&quot;&gt;@NyaZygisk&lt;/a&gt; 反映。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>Zygisk 實作怎麼選：多個 Zygisk 實作的詳細對比</title><link>https://www.nkbe.top/posts/zygisk-implementations-compare/</link><guid isPermaLink="true">https://www.nkbe.top/posts/zygisk-implementations-compare/</guid><description>逐項對照 Zygisk Next、NyaZygisk、NeoZygisk、ReZygisk、ZNNext 的 API、注入方式、隱藏機制、平台適配與維護狀況，並說明 NyaZygisk 的定位與取捨。</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在 KernelSU、APatch 上用 Zygisk 模組，或者想替換 Magisk 內建的 Zygisk，現在有好幾個選擇。它們名字相近，能力卻差很多，有的甚至不是同一類東西。&lt;/p&gt;
&lt;p&gt;先說結論：&lt;strong&gt;如果你想要一個開源、裝一個就能同時跑 Zygisk 模組與 Zygisk Next 模組、並且把「精簡」和「隱藏」當成首要目標的方案，推薦 NyaZygisk&lt;/strong&gt;。下文逐項對照每個專案實際做了什麼、沒做什麼，NyaZygisk 不適合的情況也會寫出來，你可以對照自己的需求確認。&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;利益揭露&lt;/strong&gt;：我是 NyaZygisk 的維護者，所以這篇會推薦它。但比較的部分只寫能在原始碼或官方文件裡找到依據的事實，NyaZygisk 的限制也一併寫出。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;資料來源&lt;/strong&gt;：各倉庫 2026-10-20 取得的預設分支原始碼、README 與 GitHub 資料。Zygisk Next 已閉源，它的資訊只來自官方 README、API 文件與發佈頁，無法核實內部實作，下文凡是這種情況都會標明。「原始碼中沒有找到」只代表我讀過相關程式碼沒看到實作，不等於一定不支援。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;section&gt;&lt;h2&gt;🧭 先釐清：這五個不是同一類東西&lt;a href=&quot;#-先釐清這五個不是同一類東西&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;講「Zygisk」時，其實混了兩套不同的模組 API：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Magisk Zygisk API&lt;/strong&gt;：Magisk 定義的模組介面（入口 &lt;code&gt;zygisk_module_entry&lt;/code&gt;），LSPosed 等大多數 Zygisk 模組都用這套。目前最新版本是 v5。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zygisk Next API（ZN API）&lt;/strong&gt;：Zygisk Next 閉源之後自己新增的介面（入口 &lt;code&gt;zn_module&lt;/code&gt;，用 &lt;code&gt;zn_modules.txt&lt;/code&gt; 登記）。它可以注入由 init 啟動的進程，提供 inline / PLT hook 與符號解析介面，還有 HyperOS Rust Runtime 的回呼。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;各專案對兩套 API 的支援不同：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zygisk Next&lt;/strong&gt; 兩套都支援，是 ZN API 的原始定義者，但已閉源。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt; 兩套都支援，是目前&lt;strong&gt;唯一同時支援兩套 API 的開源實作&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NeoZygisk&lt;/strong&gt;、&lt;strong&gt;ReZygisk&lt;/strong&gt; 只實作 Magisk Zygisk API。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZNNext&lt;/strong&gt;（原名 ZygiskNextNext）只載入 ZN 模組，&lt;strong&gt;本身不是 Zygisk 實作&lt;/strong&gt;，要用 Zygisk 模組得另外裝一個。&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;📋 總覽&lt;a href=&quot;#-總覽&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Zygisk Next&lt;/th&gt;&lt;th&gt;NyaZygisk&lt;/th&gt;&lt;th&gt;NeoZygisk&lt;/th&gt;&lt;th&gt;ReZygisk&lt;/th&gt;&lt;th&gt;ZNNext&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;維護者&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Dr-TSNG（LSPosed）&lt;/td&gt;&lt;td&gt;HSSkyBoy / NkBe&lt;/td&gt;&lt;td&gt;JingMatrix&lt;/td&gt;&lt;td&gt;PerformanC&lt;/td&gt;&lt;td&gt;VeryBaaad&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;與其他專案的關係&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;原始專案&lt;/td&gt;&lt;td&gt;fork 自 NeoZygisk&lt;/td&gt;&lt;td&gt;延續 Zygisk Next 開源時期的程式碼（2024-12 改名）&lt;/td&gt;&lt;td&gt;fork 自 Zygisk Next 開源時期，以 C 重寫&lt;/td&gt;&lt;td&gt;從零實作的 ZN 模組載入器&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;授權&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;閉源（v4-0.9.2 起）&lt;/td&gt;&lt;td&gt;GPL-3.0&lt;/td&gt;&lt;td&gt;GPL-3.0&lt;/td&gt;&lt;td&gt;AGPL-3.0&lt;/td&gt;&lt;td&gt;GPL-3.0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;能否審計原始碼&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Magisk Zygisk API&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅ v5&lt;/td&gt;&lt;td&gt;✅ v5&lt;/td&gt;&lt;td&gt;✅ v5&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;ZN API&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅ v4&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;✅ v4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;HyperOS Runtime API&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅ v1&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;✅ v1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;單一模組即可跑兩類模組&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;td&gt;❌&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;主要語言&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;未公開&lt;/td&gt;&lt;td&gt;C++ + Rust&lt;/td&gt;&lt;td&gt;C++ + Rust&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;C++ + Rust（injector）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;最低 Android&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;8.0&lt;/td&gt;&lt;td&gt;7.1&lt;/td&gt;&lt;td&gt;8.0&lt;/td&gt;&lt;td&gt;7.1&lt;/td&gt;&lt;td&gt;5.0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;架構&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;arm64、armv7、x86、x86_64、riscv64&lt;/td&gt;&lt;td&gt;arm64、armv7、x86_64、riscv64&lt;/td&gt;&lt;td&gt;arm64、armv7、x86、x86_64&lt;/td&gt;&lt;td&gt;arm64、armv7、x86、x86_64&lt;/td&gt;&lt;td&gt;arm64、armv7、x86、x86_64、riscv64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;WebUI&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;有（README 提到翻譯）&lt;/td&gt;&lt;td&gt;有&lt;/td&gt;&lt;td&gt;無&lt;/td&gt;&lt;td&gt;有&lt;/td&gt;&lt;td&gt;有&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;最新釋出版本&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;v1.5.2（2026-10-15）&lt;/td&gt;&lt;td&gt;v2.5-r1（2026-10-23）&lt;/td&gt;&lt;td&gt;v2.4（2026-08-08）&lt;/td&gt;&lt;td&gt;v1.0.0（2026-05-10）&lt;/td&gt;&lt;td&gt;v2.2.0（2026-10-24）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;近三個月提交數&lt;/strong&gt;¹&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;216&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;¹&lt;/td&gt;&lt;td&gt;10.7k&lt;/td&gt;&lt;td&gt;286&lt;/td&gt;&lt;td&gt;2.5k&lt;/td&gt;&lt;td&gt;4.1k&lt;/td&gt;&lt;td&gt;65&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;blockquote&gt;&lt;p&gt;¹ 取自 GitHub，統計區間為 2026-07-20 至 2026-10-20。「最新釋出版本」一列於 2026-10-25 更新。Zygisk Next 的提交數只計公開倉庫，它的原始碼不公開，所以這個數字不代表實際開發量。&lt;/p&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;「最低 Android」「架構」取自各專案安裝腳本、建置設定或公開說明。架構欄是依專案釋出與社群實測彙整。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Stars 與提交數只是側面參考：Stars 反映知名度與使用者基數，提交數反映開發活躍度，兩者都不等於穩定或好用。NyaZygisk 的使用者基數相對小，這是客觀事實，意味著問題回饋與社群經驗都比 NeoZygisk、ReZygisk 少。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔒 開源這件事為什麼重要&lt;a href=&quot;#-開源這件事為什麼重要&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Zygisk 實作以 root 權限執行，能注入每一個應用進程。它做什麼、收集什麼，原則上只有看得到原始碼才能確認。&lt;/p&gt;&lt;p&gt;Zygisk Next 從 v4-0.9.2 起改為保留所有權利，授權明確禁止修改、再散佈，以及拆出任何部分用在其他專案。ReZygisk 的 README 把這點講得很直接：閉源讓社群無法貢獻，也無法審計，對一個 root 級別的模組來說是重大的安全疑慮。&lt;/p&gt;&lt;p&gt;Zygisk Next 的開發者在社群裡有很好的信譽，這篇不是在質疑他們。但如果你的原則是「root 權限的元件必須可審計」，那 Zygisk Next 就不在選項內。&lt;/p&gt;&lt;p&gt;這也是 NyaZygisk 存在的主要理由：&lt;strong&gt;在開源方案裡，想同時用 Zygisk 模組與 ZN 模組，過去只能是「NeoZygisk / ReZygisk + ZNNext」兩個模組疊在一起&lt;/strong&gt;；NyaZygisk 把兩套 API 放進同一個 GPL-3.0 的實作裡，裝一個就夠。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔬 逐項對照&lt;a href=&quot;#-逐項對照&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;1. 注入方式與模組載入&lt;a href=&quot;#1-注入方式與模組載入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;NyaZygisk&lt;/th&gt;&lt;th&gt;NeoZygisk&lt;/th&gt;&lt;th&gt;ReZygisk&lt;/th&gt;&lt;th&gt;ZNNext&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;注入目標進程的方式&lt;/td&gt;&lt;td&gt;&lt;code&gt;ptrace&lt;/code&gt; 遠端呼叫 &lt;code&gt;dlopen&lt;/code&gt; 載入 &lt;code&gt;libzygisk.so&lt;/code&gt;&lt;/td&gt;&lt;td&gt;同左&lt;/td&gt;&lt;td&gt;&lt;code&gt;ptrace&lt;/code&gt; + 自製遠端 linker（CSOLoader），不經過系統 linker&lt;/td&gt;&lt;td&gt;獨立的 injector 常駐進程，用 &lt;code&gt;ptrace&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;發現目標進程的方式&lt;/td&gt;&lt;td&gt;監控 &lt;code&gt;execve&lt;/code&gt;，辨識 Zygote 與 &lt;code&gt;hyos_spawner&lt;/code&gt;&lt;/td&gt;&lt;td&gt;監控 &lt;code&gt;execve&lt;/code&gt;，辨識 Zygote&lt;/td&gt;&lt;td&gt;監控 Zygote&lt;/td&gt;&lt;td&gt;tracefs &lt;code&gt;sched_process_exec&lt;/code&gt;、proc connector、eBPF、fanotify、KPM，都不可用時退回 &lt;code&gt;/proc&lt;/code&gt; 輪詢&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;載入 Zygisk 模組&lt;/td&gt;&lt;td&gt;daemon 為每個模組建立密封的唯讀 memfd，進程用 &lt;code&gt;android_dlopen_ext&lt;/code&gt; 從 fd 載入&lt;/td&gt;&lt;td&gt;同左&lt;/td&gt;&lt;td&gt;自製 linker 載入&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;載入 ZN 模組&lt;/td&gt;&lt;td&gt;依 &lt;code&gt;zn_modules.txt&lt;/code&gt;，同樣經 memfd 載入&lt;/td&gt;&lt;td&gt;不支援&lt;/td&gt;&lt;td&gt;不支援&lt;/td&gt;&lt;td&gt;依 &lt;code&gt;zn_modules.txt&lt;/code&gt; 載入&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ZN 模組可注入的目標&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Zygote、&lt;code&gt;hyos_spawner&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;name=&lt;/code&gt; / &lt;code&gt;path=&lt;/code&gt; 指定的任意 init 啟動進程&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;進程旗標查詢&lt;/td&gt;&lt;td&gt;daemon 以共享記憶體（memfd + mmap）快取，其餘走 IPC&lt;/td&gt;&lt;td&gt;每次 IPC 查詢&lt;/td&gt;&lt;td&gt;IPC&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hook 後端&lt;/td&gt;&lt;td&gt;Dobby（riscv64 上改用 rv64hook）、LSPlt&lt;/td&gt;&lt;td&gt;LSPlt&lt;/td&gt;&lt;td&gt;PLTI&lt;/td&gt;&lt;td&gt;Dobby、ShadowHook、rv64hook、And64InlineHook；LSPlt、PLTI、ByteHook、xHook，可選擇&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;幾點說明：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;NyaZygisk 與 NeoZygisk 的注入流程基本一致（這是 fork 關係），差別主要在 Nya 多了 &lt;code&gt;hyos_spawner&lt;/code&gt; 目標與 ZN 載入器。&lt;/li&gt;
&lt;li&gt;ReZygisk 的取向不同：它不使用系統 linker，目的是對抗基於 linker 的檢測（例如檢查 &lt;code&gt;solist&lt;/code&gt;）。這和 Neo / Nya「用系統 linker 載入、事後清理痕跡」是兩種思路，沒有絕對優劣。&lt;/li&gt;
&lt;li&gt;ZNNext 的目標發現方式最多元，對核心要求最低，這是它支援 Android 5.0 與 riscv64 的原因之一。&lt;/li&gt;
&lt;li&gt;NyaZygisk 的 ZN 注入範圍是&lt;strong&gt;真實的功能缺口&lt;/strong&gt;：daemon 雖然會解析 &lt;code&gt;path=&lt;/code&gt;，但進程監控只攔截 Zygote 與 &lt;code&gt;hyos_spawner&lt;/code&gt;，所以指定注入其他系統守護進程的 ZN 模組不會生效。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. 隱藏與痕跡處理&lt;a href=&quot;#2-隱藏與痕跡處理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;下表只比較&lt;strong&gt;原始碼中能確認存在的實作&lt;/strong&gt;。「—」代表我在原始碼裡沒有找到對應實作。&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;項目&lt;/th&gt;&lt;th&gt;NyaZygisk&lt;/th&gt;&lt;th&gt;NeoZygisk&lt;/th&gt;&lt;th&gt;ReZygisk&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;DenyList 應用的 mount namespace&lt;/td&gt;&lt;td&gt;Zygote 內直接卸載，失敗或被中止則 &lt;code&gt;setns&lt;/code&gt; 切換到快取的乾淨 namespace&lt;/td&gt;&lt;td&gt;同左&lt;/td&gt;&lt;td&gt;&lt;code&gt;setns&lt;/code&gt; 切換到 daemon 準備的 Clean / Mounted namespace&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;偵測到關鍵 overlay 時放棄直接卸載&lt;/td&gt;&lt;td&gt;✅（如 &lt;code&gt;/product&lt;/code&gt;）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;為所有 isolated 進程提供一致的 mount 視圖&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;卸載模組後清除 linker 內的痕跡（&lt;code&gt;solist&lt;/code&gt;）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;不適用（不經系統 linker）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;清除 libc / linker 載入痕跡、&lt;code&gt;fossil&lt;/code&gt; 偽裝&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;卸載動作自身留下的痕跡&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅（v2.4 之後的提交 #161）&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;清除 &lt;code&gt;ptrace_message&lt;/code&gt;&lt;/td&gt;&lt;td&gt;✅（seccomp / &lt;code&gt;PTRACE_SYSCALL&lt;/code&gt; 混合）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅（seccomp）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DenyList 應用移除 release 日誌&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;模組記憶體映射匿名化（maps）&lt;/td&gt;&lt;td&gt;✅ 可選，需在 WebUI 開啟「匿名記憶體」&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CFI shadow 同步處理&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;TracerPid&lt;/code&gt; 清理&lt;/td&gt;&lt;td&gt;✅（FD 追蹤，hook &lt;code&gt;open&lt;/code&gt; / &lt;code&gt;openat&lt;/code&gt; / &lt;code&gt;close&lt;/code&gt; / &lt;code&gt;read&lt;/code&gt;）&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;系統屬性欺騙（&lt;code&gt;spoof.prop&lt;/code&gt;）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;逐應用的模組排除清單&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;接管 KernelSU 的 &lt;code&gt;kernel_umount&lt;/code&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;幾點說明：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nya 的隱藏處理是疊加在 Neo 之上的&lt;/strong&gt;。表中標 ✅ 且 NeoZygisk 也有的項目，是 Nya 從上游繼承的；Nya 自己新增的是匿名記憶體、CFI shadow、&lt;code&gt;TracerPid&lt;/code&gt;、屬性欺騙和逐應用排除。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;TracerPid&lt;/code&gt; 清理有範圍限制&lt;/strong&gt;：它只 hook &lt;code&gt;libandroid_runtime&lt;/code&gt;、&lt;code&gt;libart&lt;/code&gt;、&lt;code&gt;libjavacore&lt;/code&gt;、&lt;code&gt;libopenjdk&lt;/code&gt;、&lt;code&gt;libbase&lt;/code&gt; 這幾個庫的 PLT，攔截的是經由它們讀取 &lt;code&gt;/proc/*/status&lt;/code&gt; 的路徑，不涵蓋應用自己的 native 程式碼直接發出的系統呼叫。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;匿名記憶體預設不啟用&lt;/strong&gt;，因為它會改動映射，需要使用者自己在 WebUI 裡開啟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;屬性欺騙會改變系統屬性的回傳值&lt;/strong&gt;，預設的 &lt;code&gt;spoof.prop&lt;/code&gt; 涵蓋 Bootloader 狀態、build type、debuggable 旗標，以及 MIUI、Realme、OPlus 的專屬屬性；&lt;code&gt;ro.boot.vbmeta.digest&lt;/code&gt; 每次載入時隨機產生。不需要的人可以刪掉相應行。&lt;/li&gt;
&lt;li&gt;ReZygisk 在隱藏上選擇了「根本不碰系統 linker」的路線，所以沒有 &lt;code&gt;solist&lt;/code&gt; 清理；它在 &lt;code&gt;TracerPid&lt;/code&gt;、屬性欺騙、maps 偽裝這幾項我沒有找到對應實作。&lt;/li&gt;
&lt;li&gt;Zygisk Next 和 ZNNext 是否有同類處理，Zygisk Next 無法核實；ZNNext 的隱藏重點在注入器本身的行為，與上表的 Zygisk 實作面向不同，這裡不做逐項比較。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;沒有任何一個專案能保證通過所有檢測&lt;/strong&gt;，我也沒有逐機型、逐應用實測。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;3. 平台與環境適配&lt;a href=&quot;#3-平台與環境適配&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;NyaZygisk&lt;/th&gt;&lt;th&gt;NeoZygisk&lt;/th&gt;&lt;th&gt;ReZygisk&lt;/th&gt;&lt;th&gt;ZNNext&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;APatch / KernelSU / Magisk&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;KernelSU Next 等變體辨識&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Magisk Alpha / Kitsune 辨識&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;未找到&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;KernelSU LKM 後載入（late-load）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;KernelSU 模擬軟重啟（臨時 root）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;✅（含 &lt;code&gt;emulated-soft-reboot.sh&lt;/code&gt;）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HyperOS &lt;code&gt;hyos_spawner&lt;/code&gt;&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android 17 Zygote 簽名&lt;/td&gt;&lt;td&gt;✅（繼承上游）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BTI 設備&lt;/td&gt;&lt;td&gt;✅（繼承上游）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 位元 PLT hook 修正&lt;/td&gt;&lt;td&gt;✅（繼承上游）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;4. 管理介面&lt;a href=&quot;#4-管理介面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;NyaZygisk&lt;/th&gt;&lt;th&gt;NeoZygisk&lt;/th&gt;&lt;th&gt;ReZygisk&lt;/th&gt;&lt;th&gt;ZNNext&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;WebUI&lt;/td&gt;&lt;td&gt;✅ 分頁式：概覽、模組、設定&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;✅ Vue 3，兩套外觀&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;多語言&lt;/td&gt;&lt;td&gt;繁中、簡中、英文&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;透過 Crowdin 翻譯&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;區分模組類型（Zygisk / Next）&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;td&gt;不適用&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;顯示 ROM、核心、ABI、SDK&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;action.sh&lt;/code&gt; 狀態輸出&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;✅&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;td&gt;未逐項核實&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔍 各專案小結&lt;a href=&quot;#-各專案小結&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;Zygisk Next&lt;a href=&quot;#zygisk-next&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;優勢&lt;/strong&gt;：兩套 API 都支援，ZN 模組可以注入任意由 init 啟動的進程；HyperOS Runtime API 由它提出；新的 ZN 模組通常以它為首要測試對象；活躍維護，v1.5.2 剛在 2026-10-15 釋出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：閉源，無法審計，也不能被修改或 fork。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;NyaZygisk&lt;a href=&quot;#nyazygisk&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;優勢&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;開源，且單一模組同時載入 Magisk Zygisk 模組（v5）、ZN 模組（v4）與 HyperOS Runtime 模組（v1）；&lt;/li&gt;
&lt;li&gt;在 NeoZygisk 的 DenyList 基礎上疊加了 &lt;code&gt;TracerPid&lt;/code&gt;、屬性欺騙、匿名記憶體、CFI shadow 與逐應用排除；&lt;/li&gt;
&lt;li&gt;支援 KernelSU LKM 後載入與模擬軟重啟；&lt;/li&gt;
&lt;li&gt;最低支援 Android 7.1，比上游 NeoZygisk 的 8.0 更低；&lt;/li&gt;
&lt;li&gt;v2.5-r1 起支援 riscv64（需 Android 15 以上），ZN 的 inline hook 在 riscv64 上由 rv64hook 提供；&lt;/li&gt;
&lt;li&gt;有 WebUI，可以區分 &lt;code&gt;[Zygisk]&lt;/code&gt; / &lt;code&gt;[Next]&lt;/code&gt; 模組並設定逐應用排除。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ZN 模組只會注入 Zygote 與 &lt;code&gt;hyos_spawner&lt;/code&gt;&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;不支援 32 位元 x86，最低 Android 版本也高於 ZNNext 的 5.0；&lt;/li&gt;
&lt;li&gt;使用者基數與社群經驗少於 NeoZygisk、ReZygisk（Stars 286，對比 2.5k 與 4.1k）；&lt;/li&gt;
&lt;li&gt;程式碼量與維護面比上游大（見下文）；&lt;/li&gt;
&lt;li&gt;屬性欺騙這類行為改變了系統屬性的回傳值，若你不需要，就多了一份額外的行為。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;NeoZygisk&lt;a href=&quot;#neozygisk&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;優勢&lt;/strong&gt;：NyaZygisk 的上游，專注做好 Magisk Zygisk API，功能範圍克制，社群經驗多（Stars 2.5k）；DenyList 的 Zygote 直接卸載加 &lt;code&gt;setns&lt;/code&gt; 後備就設計在這裡；跟進 Android 17 與 BTI 設備的支援。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：不支援 ZN API，ZN 模組無法使用；無 WebUI；最低 Android 8.0；沒有 &lt;code&gt;TracerPid&lt;/code&gt; 清理與屬性欺騙。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;ReZygisk&lt;a href=&quot;#rezygisk&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;優勢&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;整個程式碼庫用 C 重寫，二進位更小；&lt;/li&gt;
&lt;li&gt;自製 linker（CSOLoader），不經系統 linker，對抗基於 linker 的檢測，這個設計方向在五者中獨有；&lt;/li&gt;
&lt;li&gt;使用者基數大（Stars 4.1k），WebUI 翻譯與社群管道完整；&lt;/li&gt;
&lt;li&gt;最低支援 Android 7.1；&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：不支援 ZN API；在 &lt;code&gt;TracerPid&lt;/code&gt;、屬性欺騙、maps 偽裝這幾項我沒有找到對應實作；最近一個正式版是 v1.0.0（2026-05-10）。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;ZNNext&lt;a href=&quot;#znnext&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;優勢&lt;/strong&gt;：ZN API 實作完整，可注入任意由 init 啟動的進程；對核心要求最低，支援 Android 5.0 起與 riscv64；開發最活躍（近三個月 216 次提交，最新版 v2.2.0 在 2026-10-24 釋出）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：&lt;strong&gt;它不是 Zygisk 實作&lt;/strong&gt;，Magisk Zygisk 模組（例如 LSPosed）不會被它載入，必須搭配另一個 Zygisk 實作使用，也就是要裝兩個模組。&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;✅ 按需求選&lt;a href=&quot;#-按需求選&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;你的需求&lt;/th&gt;&lt;th&gt;推薦&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;想要開源，又要同時跑 Zygisk 模組和 ZN 模組&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;用 HyperOS，需要 HyperOS Runtime 模組&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;只用 Magisk Zygisk 模組（如 LSPosed），但在意屬性與注入痕跡的隱藏&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;用 KernelSU LKM 後載入或臨時 root&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;只用 Magisk Zygisk 模組，想要最精簡、不需要額外隱藏處理，且重視社群經驗&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NeoZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;只用 Magisk Zygisk 模組，重視對 linker 檢測的對抗，或偏好 C 程式碼庫&lt;/td&gt;&lt;td&gt;&lt;strong&gt;ReZygisk&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ZN 模組要注入 Zygote 以外的系統守護進程&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Zygisk Next&lt;/strong&gt;，或 &lt;strong&gt;NeoZygisk + ZNNext&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;riscv64 設備，想用開源方案同時跑兩類模組&lt;/td&gt;&lt;td&gt;&lt;strong&gt;NyaZygisk&lt;/strong&gt;（v2.5-r1 起）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android 5.0 ~ 7.0，需要 ZN 模組&lt;/td&gt;&lt;td&gt;&lt;strong&gt;ZNNext&lt;/strong&gt;（Zygisk Next 最低要 8.0；本文比較的 Zygisk 實作最低都要 7.1，Zygisk 模組那一側需另找相容方案）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;幾點補充：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不要同時裝多個 Zygisk 實作&lt;/strong&gt;。NyaZygisk、NeoZygisk、ReZygisk、Zygisk Next 彼此是替代關係，Magisk 使用者也要先關閉內建 Zygisk。ZNNext 是唯一設計成與 Zygisk 實作並存的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Magisk 使用者&lt;/strong&gt;：在 NyaZygisk / NeoZygisk 上，請勿開啟 Magisk 的「強制執行排除列表（Enforce DenyList）」，它是 Magisk 自己的機制，可能與實作本身的隱藏機制衝突。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隱藏效果因機型與檢測方案而異&lt;/strong&gt;。以上只描述各專案的機制，沒有任何一個能保證通過所有檢測。&lt;/li&gt;
&lt;/ul&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🎯 NyaZygisk 的定位：精簡，與隱藏&lt;a href=&quot;#-nyazygisk-的定位精簡與隱藏&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;最後說明 NyaZygisk 想做什麼，也方便你判斷它是不是你要的。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;精簡&lt;/strong&gt;，指的是目標，不是行數。NyaZygisk 把力氣花在注入引擎與模組載入引擎本身，不往模組管理、線上更新、主題之類的方向堆功能；ZN API 這一層也只做模組真正需要的部分（hook、符號解析、companion），而不是複製整個 Zygisk Next。&lt;/p&gt;&lt;p&gt;需要說清楚的是：這不代表程式碼量最少。以注入器與 daemon 的原始碼行數粗估，NyaZygisk 約 1.4 萬行，NeoZygisk 約 1.1 萬行，ReZygisk 約 1.1 萬行，ZNNext 約 1.3 萬行（不含第三方庫與 WebUI 前端）。相比上游多出來的部分，主要是 ZN 相容層、隱藏處理和 WebUI。如果「精簡」對你來說就是「程式碼最少」，NeoZygisk 更符合。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;隱藏&lt;/strong&gt;，是 NyaZygisk 和上游拉開差距的主要方向：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;在上游 DenyList（Zygote 直接卸載 + &lt;code&gt;setns&lt;/code&gt; 後備）的基礎上，補上 &lt;code&gt;TracerPid&lt;/code&gt;、屬性欺騙、匿名記憶體、CFI shadow 處理；&lt;/li&gt;
&lt;li&gt;模組全部卸載後把痕跡清乾淨，包括卸載動作自己留下的；&lt;/li&gt;
&lt;li&gt;這些額外的隱藏處理都盡量做成可選或可調整的，例如匿名記憶體需要手動開啟、&lt;code&gt;spoof.prop&lt;/code&gt; 可以自己編輯，不強迫所有人接受。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;所以，如果你的需求是「模組能載入、盡量少露痕跡、不想為了兩套 API 裝兩個模組」，NyaZygisk 就是為這個場景做的；如果你只需要最基本的 Zygisk，或需要 ZN 模組注入任意系統進程，上面的表格已經列出了更合適的選擇。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;🔗 相關連結&lt;a href=&quot;#-相關連結&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;Zygisk Next&lt;/a&gt;（README 與 API 標頭檔）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/HSSkyBoy/NyaZygisk&quot; target=&quot;_blank&quot;&gt;NyaZygisk&lt;/a&gt;（&lt;a href=&quot;/nyazygisk/&quot;&gt;介紹頁&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/JingMatrix/NeoZygisk&quot; target=&quot;_blank&quot;&gt;NeoZygisk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;ReZygisk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/VeryBaaad/ZNNext&quot; target=&quot;_blank&quot;&gt;ZNNext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/5ec1cff/ZygiskNextModuleSample&quot; target=&quot;_blank&quot;&gt;ZygiskNextModuleSample&lt;/a&gt;：ZN 模組範例&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;</content:encoded></item><item><title>一加內核開源，發現新增「和平精英」專項檢測</title><link>https://www.nkbe.top/posts/oplus-kernel-security-check/</link><guid isPermaLink="true">https://www.nkbe.top/posts/oplus-kernel-security-check/</guid><description>一加 Ace 6 Ultra 開源內核模組中新增 oplus_kernel_security_check.c，針對系統調用表與 ko 模組加載進行完整性檢測。</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在一加開源的 Ace 6 Ultra（聯發科 MT6993）內核模組原始碼中，出現了一個新的檔案 &lt;code&gt;oplus_kernel_security_check.c&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;檔案頭部註釋說明，這是為了「和平精英」的需求進行的內核完整性檢測，作者署名為 cenjun，日期標註為 2025 年 12 月。&lt;/p&gt;
&lt;p&gt;它的思路並不複雜：&lt;strong&gt;不攔截，只記錄&lt;/strong&gt;。&lt;code&gt;ko&lt;/code&gt; 檔案照常載入，程序不會被終止，也沒有任何封禁動作，異常只會記錄為事件，等待用戶空間讀取。&lt;/p&gt;
&lt;hr /&gt;
&lt;section&gt;&lt;h2&gt;🔍 檢測了什麼&lt;a href=&quot;#-檢測了什麼&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;1. 系統調用表（Syscall Table）&lt;a href=&quot;#1-系統調用表syscall-table&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;開機時，為整個表記錄一份 SHA256 指紋，之後每小時重新計算一次。&lt;/li&gt;
&lt;li&gt;如果與初始值不符，就會記錄一條帶有時間戳記的事件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：只比較表中的函數指標，不檢查函數本體，因此 inline hook 是無法檢測到的。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. ko 模組載入（Kernel Module Loading）&lt;a href=&quot;#2-ko-模組載入kernel-module-loading&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;掛載在內核的 &lt;code&gt;load_module&lt;/code&gt; 上，每次載入一個 &lt;code&gt;ko&lt;/code&gt; 檔案，就會對其映像計算雜湊值，然後與名單進行比較：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不在名單中&lt;/strong&gt;：記錄為未知模組&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;雜湊值不匹配&lt;/strong&gt;：記錄為被篡改&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;雜湊值一致&lt;/strong&gt;：放行&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;名單由系統程序 &lt;code&gt;oplus_kohashpro&lt;/code&gt; 寫入，並且必須等待系統報告開機完成後，檢測才會啟動。每類事件最多保留 10 條，超出部分會丟棄最舊的。&lt;/p&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;⬆️ 對 root 用戶意味著什麼&lt;a href=&quot;#️-對-root-用戶意味著什麼&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;判定方式只有一條：&lt;strong&gt;是否在名單上&lt;/strong&gt;。即使是自己編譯、完全無害的 &lt;code&gt;ko&lt;/code&gt; 檔案，在它看來也與被篡改的 &lt;code&gt;ko&lt;/code&gt; 檔案沒有區別。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;KSU 的模組&lt;/strong&gt;：不經過 &lt;code&gt;load_module&lt;/code&gt;，不在檢測範圍內。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;KernelSU 本體&lt;/strong&gt;：如果以 LKM 方式載入，它自己的 &lt;code&gt;ko&lt;/code&gt; 檔案會被記錄為未知模組（此項依程式碼邏輯推斷，尚未經實際設備驗證）。這也代表從理論上使用 GKI 或 Magisk 就能規避該項檢測。&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;p&gt;不少 root 玩家表示，他們同樣反感作弊行為，也理解遊戲方維護公平環境的需要，只希望這類訊號僅作為參考，不要直接等同於作弊證據。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;以上內容均基於對公開原始碼的解讀。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;原始碼來源&lt;/strong&gt;：&lt;a href=&quot;https://github.com/OnePlusOSS/android_kernel_modules_and_devicetree_oneplus_mt6993/blob/oneplus/mt6993_b_16.0_ace_6_ultra/vendor/oplus/kernel/secureguard/gki2.0/rootguard_new/oplus_kernel_security_check.c&quot; target=&quot;_blank&quot;&gt;OnePlusOSS / android_kernel_modules_and_devicetree_oneplus_mt6993&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;</content:encoded></item><item><title>適配 Minecraft 26.1.x：技術遷移實錄</title><link>https://www.nkbe.top/posts/mc-26-1/</link><guid isPermaLink="true">https://www.nkbe.top/posts/mc-26-1/</guid><description>深度解析 Java 25、Unobfuscated Loom 與 Mojang 官方對映的適配細節，涵蓋工具鏈升級、對映遷移、GUI 重構與 Mixin 修復。</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;&lt;p&gt;深度解析 Java 25、Unobfuscated Loom 與 Mojang 官方對映的適配細節&lt;/p&gt;&lt;p&gt;由 Gemini 3.1 Pro 自我的 md 原稿重寫為 html，換行好像都是問題///&lt;/p&gt;&lt;/blockquote&gt;
&lt;section&gt;&lt;h2&gt;序言&lt;a href=&quot;#序言&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;隨著 &lt;strong&gt;Minecraft 26.1.x&lt;/strong&gt; 的釋出，Fabric 模組開發生態迎來了一次真正意義上的&lt;em&gt;分水嶺&lt;/em&gt;。&lt;/p&gt;&lt;p&gt;這不只是一次例行的版本升級——而是 &lt;strong&gt;26.1 Fabric&lt;/strong&gt; 所代表的&lt;strong&gt;工具鏈、對映體系與開發流程&lt;/strong&gt;的整體轉向。&lt;/p&gt;&lt;p&gt;不僅 Java 版本躍升至 &lt;strong&gt;25&lt;/strong&gt;，構建工具 &lt;strong&gt;Loom&lt;/strong&gt; 的核心架構、對映機制與 GUI 系統都發生了根本性的重構。&lt;/p&gt;&lt;p&gt;本文將以 &lt;code&gt;BoatFly&lt;/code&gt; 與 &lt;code&gt;PetPhraseX&lt;/code&gt; 的完整適配過程為例，簡單說下有關本次遷移的&lt;strong&gt;技術細節&lt;/strong&gt;與&lt;strong&gt;踩坑經驗&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第一部分：工具鏈與環境配置&lt;a href=&quot;#第一部分工具鏈與環境配置&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;1.1 Java 版本升級至&lt;a href=&quot;#11-java-版本升級至&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Minecraft 26.1.x 要求最低 &lt;strong&gt;Java 25&lt;/strong&gt; 作為編譯與執行環境，這不只是版本號上的遞進，更涉及 JVM 的多項新特性與效能最佳化。&lt;/p&gt;&lt;p&gt;在 &lt;code&gt;gradle.properties&lt;/code&gt; 中，我們需要明確指定目標版本，如：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;org.gradle.jvmargs&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; -Xmx4096m -&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Dfile.encoding&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;UTF-8&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;target_java_version&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; 25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;minecraft_version&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; 26.1.2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Warning&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;**注意：**若使用 Gradle Wrapper 需升級至 &lt;strong&gt;9.4.0+&lt;/strong&gt;。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;1.2 Fabric Loader 與 Loom 的版本對齊&lt;a href=&quot;#12-fabric-loader-與-loom-的版本對齊&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Loom 1.15-SNAPSHOT&lt;/strong&gt; 是適配 26.1.x 的關鍵版本。它引入了全新的編譯流程，&lt;em&gt;不再依賴 Yarn 對映&lt;/em&gt;的中間層轉換。&lt;/p&gt;&lt;p&gt;同時也建議將 &lt;strong&gt;Fabric Loader&lt;/strong&gt;升級至 &lt;strong&gt;0.18.6+&lt;/strong&gt;，以支援新的模組載入機制。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;plugins {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// 引入支援 Unobfuscated 流程的最新版 Loom 外掛&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;id &lt;/span&gt;&lt;span&gt;&apos;net.fabricmc.fabric-loom&apos;&lt;/span&gt;&lt;span&gt; version &lt;/span&gt;&lt;span&gt;&apos;1.16-SNAPSHOT&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;dependencies {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// 指定目標 Minecraft 版本為 26.1.2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;minecraft &lt;/span&gt;&lt;span&gt;&quot;com.mojang:minecraft:26.1.2&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// 引入支援新模組載入機制的 Fabric Loader 0.18.6+&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;compileOnly &lt;/span&gt;&lt;span&gt;&quot;net.fabricmc:fabric-loader:0.18.6&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;1.3 fabric.mod.json 後設資料規範更新&lt;a href=&quot;#13-fabricmodjson-後設資料規範更新&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;伴隨 Fabric Loader 0.18.6+ 的升級，模組後設資料檔案的校驗規則迎來了強約束更新，過往寬鬆的欄位宣告將直接導致模組無法載入，甚至出現啟動器校驗不透過的問題。&lt;/p&gt;&lt;p&gt;核心變更集中在依賴宣告、環境限定與 Java 版本約束三個維度，尤其針對 Minecraft 26.1.x 與 Java 25 的強制要求，必須在後設資料中明確宣告。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Warning&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;必須在 &lt;code&gt;depends&lt;/code&gt; 中明確宣告 &lt;code&gt;&quot;java&quot;: &quot;&amp;gt;=25&quot;&lt;/code&gt;，否則 Loader 可能會直接阻斷模組載入，無任何容錯空間。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;1.4 IDE 開發環境適配最佳化&lt;a href=&quot;#14-ide-開發環境適配最佳化&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;針對 Java 25 與全新 Loom 工具鏈，主流 IDE 也需要完成對應的配置最佳化，才能避免同步失敗、原始碼對映錯亂、除錯斷點失效等問題。&lt;/p&gt;&lt;p&gt;以 IntelliJ IDEA 為例，核心適配步驟如下：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;升級 IDEA 至 2025.3+ 版本，才能獲得 Java 25 語法的完整支援與 Gradle 9.4+ 的原生相容&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;專案結構 → SDK&lt;/code&gt; 中新增 Java 25 正式版 SDK，並將專案的 SDK、語言級別均設定為 Java 25&lt;/li&gt;
&lt;li&gt;在 Gradle 設定中，將「使用 Gradle 來自」設定為 &lt;code&gt;gradle-wrapper.properties&lt;/code&gt;，並指定 Gradle JVM 為 Java 25&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第二部分：對映機制遷移&lt;a href=&quot;#第二部分對映機制遷移&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;2.1 從 Yarn 到 Mojang 的範式變革&lt;a href=&quot;#21-從-yarn-到-mojang-的範式變革&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;本次 26.1.x 適配最核心的變革，莫過於 Loom 1.15+ 帶來的 &lt;strong&gt;Unobfuscated 原生官方對映開發流程&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;過往 Fabric 模組開發的標準流程，是基於社群維護的 Yarn 命名對映編寫程式碼，編譯時通過 Loom 轉換為 Intermediary 中間對映，最終在執行時匹配遊戲的混淆位元組碼。&lt;/p&gt;&lt;p&gt;而全新的 Unobfuscated 流程，直接基於 Mojang 官方釋出的 deobfuscation 對映進行開發，徹底移除了 Yarn 中間層的依賴：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;編譯流程大幅簡化，無需執行對映轉換，構建速度將會有所提升&lt;/li&gt;
&lt;li&gt;命名與官方原始碼完全對齊，避免了 Yarn 與官方對映的命名差異帶來的理解成本&lt;/li&gt;
&lt;li&gt;與 Forge 生態的命名體系完全一致，跨載入器模組開發的適配成本大幅降低&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;在 &lt;code&gt;build.gradle&lt;/code&gt; 中，無需再引入任何 Yarn 對映依賴，僅需保留 Minecraft 官方依賴即可完成對映配置，這也是本次工具鏈升級最具顛覆性的變化。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2.2 大規模包名與類名變更&lt;a href=&quot;#22-大規模包名與類名變更&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;官方對映的引入，導致了&lt;strong&gt;數百個類&lt;/strong&gt;的重新命名。以下是在我專案中常出現的變更對照：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;// 文本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;net.minecraft.text.Text → net.minecraft.network.chat.Component&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;// GUI&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;net.minecraft.client.gui.screen.Screen → net.minecraft.client.gui.screens.Screen&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;net.minecraft.client.gui.widget.ButtonWidget → net.minecraft.client.gui.components.Button&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;// 渲染&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;net.minecraft.client.gui.DrawContext → net.minecraft.client.gui.GuiGraphics&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Warning&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;**注意：**除了命名變更，大量方法的引數順序、返回值型別也發生了調整，切勿僅做簡單的查詢替換，需逐行核對方法簽名的完整性，避免出現執行時崩潰。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第三部分：GUI 系統重構&lt;a href=&quot;#第三部分gui-系統重構&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;3.1 渲染生命週期的變更&lt;a href=&quot;#31-渲染生命週期的變更&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在我的專案中，最重大的 API 變更發生在 &lt;code&gt;Screen&lt;/code&gt; 類。&lt;/p&gt;&lt;p&gt;舊版本使用 &lt;code&gt;render()&lt;/code&gt;，新版本則改為 &lt;code&gt;extractRenderState()&lt;/code&gt;——必須重新適應新的&lt;em&gt;圖形提取模式&lt;/em&gt;。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;提示：&lt;/strong&gt;&lt;code&gt;GuiGraphicsExtractor&lt;/code&gt; 的 &lt;code&gt;text()&lt;/code&gt; 預設為&lt;strong&gt;左對齊&lt;/strong&gt;，不再內建居中功能，反正開發文件裡我沒看到。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;@&lt;/span&gt;&lt;span&gt;Override&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;extractRenderState&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;GuiGraphicsExtractor&lt;/span&gt;&lt;span&gt;&lt;span&gt; graphics&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&lt;span&gt; mouseX&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&lt;span&gt; mouseY&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;float&lt;/span&gt;&lt;span&gt; delta) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;super&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;extractRenderState&lt;/span&gt;&lt;span&gt;(graphics, mouseX, mouseY, delta);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// 手動計算居中位置&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; titleWidth &lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;font&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;width&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; centerX &lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;width&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; titleWidth) &lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;graphics&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;, centerX, &lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0xFFFFFF&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第四部分：Mixin 注入體系適配要點&lt;a href=&quot;#第四部分mixin-注入體系適配要點&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;本次 26.1.x 版本升級中，Mixin 注入邏輯的調整，是多數模組啟動崩潰的核心誘因。&lt;/p&gt;&lt;p&gt;除了前文提到的類名、方法名全量變更，遊戲核心類的執行流程、位元組碼結構也有深層重構，過往的注入點會出現無效異常，甚至直接阻斷遊戲啟動。&lt;/p&gt;&lt;p&gt;以下為本次適配的核心規則，均來自 BoatFly 與 PetPhraseX 的實戰驗證。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;4.1 注入目標的全量重定位&lt;a href=&quot;#41-注入目標的全量重定位&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;官方對映體系下，Mixin 注入的核心目標，必須完全替換為 Mojang 官方的命名規範，而非簡單替換 Yarn 對映的名稱。&lt;/p&gt;&lt;p&gt;核心調整包含三個維度：&lt;/p&gt;&lt;p&gt;其一，&lt;code&gt;@Mixin&lt;/code&gt; 註解的目標類，需替換為官方對映的全限定類名，不可繼續沿用 Yarn 體系的類路徑。&lt;/p&gt;&lt;p&gt;其二，&lt;code&gt;@At&lt;/code&gt; 註解中的注入目標，無論是方法呼叫還是欄位訪問，都需同步更新為官方對映的命名與描述符。&lt;/p&gt;&lt;p&gt;其三，&lt;code&gt;@Shadow&lt;/code&gt; 註解的欄位與方法，必須與官方對映的簽名完全一致，否則會同時出現編譯與執行期雙重異常。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;4.2 注入規範的強約束更新&lt;a href=&quot;#42-注入規範的強約束更新&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;伴隨 Loom 1.15+ 的升級，Mixin 新增了編譯期強校驗機制，過往寬鬆的注入寫法將直接導致構建失敗。&lt;/p&gt;&lt;p&gt;最核心的變更，是要求所有注入點必須顯式宣告 &lt;code&gt;require&lt;/code&gt; 屬性，推薦強制每個注入點必須匹配到對應目標以防止靜默崩潰。&lt;/p&gt;&lt;p&gt;同時，介面注入、訪問器的目標類與方法，也需同步完成官方對映的替換，並嚴格按客戶端、服務端環境拆分配置，避免服務端載入客戶端專屬 Mixin 導致的崩潰。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;4.3 配置檔案的規範調整&lt;a href=&quot;#43-配置檔案的規範調整&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Mixin 配置檔案需同步完成兩項核心調整，否則會直接導致 Mixin 無法載入。&lt;/p&gt;&lt;p&gt;第一，必須顯式宣告 &lt;code&gt;compatibilityLevel&lt;/code&gt; 為 &lt;code&gt;JAVA_25&lt;/code&gt;，確保 Mixin 適配 Java 25 的位元組碼版本。&lt;/p&gt;&lt;p&gt;第二，必須顯式宣告 &lt;code&gt;required&lt;/code&gt; 為 &lt;code&gt;true&lt;/code&gt;，明確告知 Loader 該配置為模組必需，避免載入時的警告與潛在異常。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第五部分：Fabric API 核心體系變更&lt;a href=&quot;#第五部分fabric-api-核心體系變更&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Fabric API 針對 26.1.x 同步完成了架構重構，大量常用事件、工具類被標記為棄用甚至移除，事件的觸發時機、引數列表也有破壞性變更。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;5.1 客戶端生命週期事件重構&lt;a href=&quot;#51-客戶端生命週期事件重構&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;伴隨 GUI 渲染系統的重寫，客戶端核心生命週期事件也同步完成了調整。&lt;/p&gt;&lt;p&gt;螢幕渲染相關事件，完全對應新的 &lt;code&gt;extractRenderState&lt;/code&gt; 生命週期，替換了舊版本的 &lt;code&gt;render&lt;/code&gt; 相關事件，觸發時機與傳入引數均有對應調整。&lt;/p&gt;&lt;p&gt;客戶端 Tick、螢幕開啟關閉等核心事件，也進行了名稱空間與分類的重構，需按新的事件路徑完成註冊，否則會出現事件不生效的問題。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;5.2 聊天與文本系統適配&lt;a href=&quot;#52-聊天與文本系統適配&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;除了前文提到的 &lt;code&gt;Text&lt;/code&gt; 到 &lt;code&gt;Component&lt;/code&gt; 的類名變更，聊天訊息的事件監聽、文本元件構建 API 也有全量調整。&lt;/p&gt;&lt;p&gt;文本元件的構建方法，需替換為官方對映對應的靜態方法，樣式設定的流式 API 也有對應調整。&lt;/p&gt;&lt;p&gt;聊天訊息相關事件進行了強約束重構，新增了訊息取消機制，攔截或修改聊天訊息需按新的規範返回對應結果，否則會出現訊息重複傳送、攔截失效的問題。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;5.3 輸入與按鍵繫結系統調整&lt;a href=&quot;#53-輸入與按鍵繫結系統調整&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;客戶端輸入處理的重構，也帶來了按鍵繫結、滑鼠鍵盤事件的對應變更。&lt;/p&gt;&lt;p&gt;按鍵繫結需使用新的註冊 API，而非舊版本的直接例項化註冊。&lt;/p&gt;&lt;p&gt;按鍵按下/釋放、滑鼠點選滾動等輸入事件，也進行了名稱空間重構，引數列表新增了視窗上下文資訊，需同步完成適配。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;第六部分：常見踩坑與解決方案&lt;a href=&quot;#第六部分常見踩坑與解決方案&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 BoatFly 與 PetPhraseX 的完整適配過程中，我們整理了多數開發者都會遇到的共性問題，對應的解決方案可大幅縮短適配週期。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;6.1 編譯與環境類問題&lt;a href=&quot;#61-編譯與環境類問題&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;最常見的「無效的目標發行版: 25」報錯，核心原因無非三點：Gradle 版本過低、IDE 配置的 Java SDK 版本不正確、目標版本宣告錯誤。&lt;/p&gt;&lt;p&gt;對應解決方案也很明確：升級 Gradle Wrapper 至 9.4.0+ 版本，在 IDE 中配置 Java 25 正式版 SDK，並將專案與 Gradle 的 JVM 均設定為 Java 25，同時確認配置檔案中的目標版本號正確。&lt;/p&gt;&lt;p&gt;另一類常見的依賴同步失敗問題，多是 Loom 版本與 Minecraft 版本不匹配，需使用 1.15-SNAPSHOT 及以上的 Loom 版本，才能完整支援 26.1.x 的官方對映流程。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;6.2 執行與載入類問題&lt;a href=&quot;#62-執行與載入類問題&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;模組載入時提示「依賴約束不滿足」，核心是 &lt;code&gt;fabric.mod.json&lt;/code&gt; 中的依賴宣告不符合新規範。&lt;/p&gt;&lt;p&gt;必須在依賴中顯式宣告 Java 25、對應的 Fabric Loader 與 Minecraft 版本範圍，否則 Loader 會直接阻斷模組載入，無任何容錯空間。&lt;/p&gt;&lt;p&gt;遊戲啟動時的「模組訪問許可權異常」，是 Java 25 強化了模組系統的訪問控制，需在執行引數中新增對應的模組開放配置，解決反射訪問的許可權問題。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;6.3 功能與渲染類問題&lt;a href=&quot;#63-功能與渲染類問題&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;GUI 渲染時文本錯位、元件不顯示，多是未遷移至新的渲染生命週期，仍沿用舊的 &lt;code&gt;render&lt;/code&gt; 方法，或是文本座標計算不符合新 API 的預設規則。&lt;/p&gt;&lt;p&gt;需將所有螢幕渲染邏輯遷移至 &lt;code&gt;extractRenderState&lt;/code&gt; 方法，手動計算文本與元件的座標，不再依賴舊版本的內建居中功能。&lt;/p&gt;&lt;p&gt;Mixin 注入失效、功能不生效，需先開啟 Mixin 除錯模式，檢視詳細的注入日誌，核對注入目標的命名、描述符是否與官方對映完全一致，多數問題都來自命名的細微偏差。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;總結&lt;a href=&quot;#總結&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Minecraft 26.1.x 的適配雖然涉及&lt;strong&gt;深度的技術重構&lt;/strong&gt;，但也為模組開發生態帶來了長期的&lt;em&gt;穩定性&lt;/em&gt;與&lt;em&gt;可維護性&lt;/em&gt;。&lt;/p&gt;&lt;p&gt;透過採用&lt;strong&gt;官方對映&lt;/strong&gt;、&lt;strong&gt;新的 GUI API&lt;/strong&gt; 與&lt;strong&gt;改進的構建流程&lt;/strong&gt;，我們現在能編寫更清晰、更易維護的程式碼。&lt;/p&gt;&lt;/section&gt;</content:encoded></item></channel></rss>