|
1 | | -## 🚀 v2.3 - Robustness & Improved Root Support 🚀 |
| 1 | +# 🚀 NeoZygisk-Fork v2.3-290 更新發佈 |
2 | 2 |
|
3 | | -This release focuses on improving stability for older architectures, ensuring compatibility with the latest KernelSU interfaces. |
| 3 | +### 🛡️ 隱藏與反偵測機制強化 |
| 4 | +* **升級 APatch & KSU 隱藏**:新增 Bootloader 屬性隱藏與偽裝邏輯。 |
| 5 | +* **深度記憶體隱藏 (hide_map)**:確保注入模組在記憶體映射中被徹底清理。原本 `memfd` 載入的 zygisk-module 現在會偽裝成私有匿名記憶體 (Private Anonymous Memory),進一步降低被反作弊系統掃描的風險。 |
| 6 | +* **VBMeta 隨機化**:改用 `/dev/urandom` 生成 VBMeta digest,大幅提升特徵隨機性。 |
4 | 7 |
|
5 | | -### 🛠 KernelSU & Root Integration |
6 | | -* **KernelSU Supercall Support**: Implemented the new `ioctl`-based supercall interface for KernelSU (v20000+). This replaces the deprecated `prctl` method, ensuring compatibility with the latest KernelSU versions. |
7 | | -* **Relaxed Version Checks**: Version limits for KernelSU have been relaxed to support community variants, with warnings now issued in logs instead of strict enforcement. |
| 8 | +### ⚙️ 核心注入與相容性升級 |
| 9 | +* **支援階層式 Zygote 啟動 (Stub Process)**:重構 `ptrace` 監控邏輯,現在完美支援 `init` -> `stub_zygote` -> `zygote` 的啟動鏈(不再受限於只能是 init 的直接子進程)。這讓模組在各種魔改系統上的注入更具韌性! |
| 10 | +* **重構掛載命名空間 (Mount Namespace) 傳輸**:棄用舊版的 PID/FD 整數傳輸,改用 Unix Domain Sockets (`SCM_RIGHTS`) 直接傳遞 FD。徹底解決部分裝置(特別是 Android 12 / arm32 架構)上出現的 `Permission denied` 錯誤。 |
| 11 | +* **SELinux 規則補全**:允許 zygote 讀取 mount namespace,修復了在 AVD 模擬器 (qemu) 上因 SELinux 攔截導致命名空間更新失敗的問題。 |
| 12 | +* **直接呼叫二進位檔 bin/zygisk-ptrace64。** |
8 | 13 |
|
9 | | -### 📱 Android 12 & 32-bit Compatibility |
10 | | -* **Direct FD Passing**: Migrated mount namespace transfers to use Unix domain sockets (`SCM_RIGHTS`). This resolves "Permission denied" errors (Errno 13) encountered on certain Android 12 (arm32) devices when accessing namespace paths via `/proc`. |
11 | | -* **Ptrace Fallback Mechanism**: Introduced a fallback to `PTRACE_ATTACH` for kernels where `PTRACE_SEIZE` fails with an I/O error. This includes robust signal handling to ignore spurious "noise" signals during the injection process. |
12 | | -* **Legacy Register Support**: Added support for `PTRACE_GETREGS` and `PTRACE_SETREGS` for 32-bit ARM devices that do not support modern regset interfaces. |
13 | | -* **Path Correction**: Fixed the executable path for the 32-bit Zygote to correctly point to `/system/bin/app_process32`. |
14 | | - |
15 | | -### 🐛 Bug Fixes & Internal Improvements |
16 | | -* **Socket Communication Fix**: Resolved a critical buffer overwrite bug in `recv_fds` where control message validation was failing due to dummy data corruption. |
17 | | -* **Improved Fossil Detection**: Enhanced the detection of suspicious "zygote fossils" by monitoring loop device mounts, improving the stealth and cleanliness of the environment. |
18 | | -* **FD Sealing**: The daemon now gracefully ignores errors when adding seals to module file descriptors, improving compatibility with older or custom kernels that lack full sealing support. |
19 | | -* **Protocol Synchronization**: Added status byte checks to the communication protocol to prevent stream desynchronization during namespace transfers. |
| 14 | +### 🐛 崩潰修復與底層優化 |
| 15 | +* **修復特定內核設備崩潰 (SIGSEGV)**:針對 Redmi Note 10 Pro (Kernel 4.14) 等設備,在讀取主執行緒堆疊時新增了 `PROT_READ` 權限檢查,跳過不可讀的 Stack Guard Pages,解決開機或執行時的隨機崩潰。 |
| 16 | +* **修復緩衝區覆寫 Bug**:修正了 `recv_fds` 在處理 Rust 守護進程傳遞的 Dummy Payload 時,錯誤覆寫控制訊息長度的問題。 |
| 17 | +* **編譯與程式碼健壯性修復**: |
| 18 | + * 新增 `g_art_inode` 與 `g_art_dev` 全域變數快取,徹底解決 `/libart.so` 相關的 undeclared identifier 編譯報錯。 |
| 19 | + * 修復指標轉型報錯(補上 `reinterpret_cast`),解決 C++ 嚴格型別檢查問題。 |
| 20 | + * 修復記憶體洩漏與非法地址訪問問題。 |
| 21 | +* **效能與日誌優化**:優化 `/proc/self/mountinfo` 解析效能,並減少不必要的錯誤日誌干擾。 |
| 22 | +* **兼容 Android 17 preview**:添加 (de-)constructor 符號回退至 ProtectedData |
0 commit comments