Releases: 7723mod/NPatch
v0.7.4
中文
統一介面風格並優化佈局
導入 ARM64 專用的 SVC/Seccomp 內核級簽名繞過 (Level 3),並全面強化檔案 I/O 重定向機制。
移除非 64位 架構的支持
优化 Manifest 权限与 authority 映射
修復 arsc 的正確壓縮和對齊
在 ZFileOptions 中為 .arsc 檔案添加 4 字節對齊規則,並在新增條目時將 resources.arsc 處理為原生程式庫。確保 resources.arsc 的正確對齊。
修復本地模式沙盒限制
引入 ConfigProvider 機制: 用 ConfigProvider,繞過 Android 應用沙盒的數據隔離限制,確保被修補應用能即時獲取配置。
- 重構加載邏輯: 將
NeoLocalApplicationService的讀取方式從SharedPreferences改為動態查詢ConfigProvider。 - 動態 APK 路徑解析: 透過
PackageManager實作模組 APK 路徑的動態解析,取代原有的靜態路徑,並強化錯誤日誌以利偵錯。
更新內核與依賴項
- 同步 LSPosed 內核至 v1.11.0: 解決 Android 10 以及 OnePlus 裝置上的特定兼容問題。
- 重構 Dex2Oat 邏輯: 消除 Missing Symbols 錯誤,並顯著提升裝置運行穩定性與處理速度。
解決 x86_64 架構構建與 SVC 問題
- 修正編譯錯誤: 解決
bypass_svc在 x86_64 環境下的編譯失敗問題,確保開發環境與模擬器的構建順暢。 - 架構隔離與 Stub 實現: 為非 ARM64 架構提供 Stub 空實現,防止連結階段出現未定義符號錯誤。
- 符號範圍優化: 將狀態變數
g_is_hook_active移至全域作用域,解決跨架構編譯時的符號可見性問題。 - 強化架構守衛: 針對 ARM64 特有的 Syscall 邏輯加入精確的架構守衛標籤。
優化效能與啟動速
- Gson 改為靜態單例,減少記憶體開銷。
- 配置保存改用異步 apply(),避免 I/O 阻塞主線程。
- 完善資源管理: 修復了 Provider Dex 注入流程中的文件檢查邏輯,並加強異常日誌輸出。
- 強化 NPE 防護: 針對模組列表、資源流讀取增加多處空指標檢查,杜絕啟動崩潰風險。
English
Unified ui style and layout optimization
Introduce ARM64-specific SVC/Seccomp kernel-level signature bypass (Level 3), and comprehensively enhance file I/O redirection mechanism.
Remove support for non-64-bit architecture
Optimize Manifest permissions and authority mapping
Fixing arsc's correct compression and alignment
Add a 4-byte alignment rule for .arsc files in ZFileOptions, and treat resources.arsc as a native library when adding entries. Ensure the correct alignment of resources.arsc.
Update core and dependencies
- Sync LSPosed kernel to v1.11.0: Resolve specific compatibility issues on Android 10 and OnePlus devices.
- Refactor Dex2Oat logic: Eliminate Missing Symbols errors, and significantly improve device stability and processing speed.
Fix Local Mode Sandbox Restrictions
Introduce ConfigProvider mechanism: Use ConfigProvider to bypass Android app sandbox data isolation restrictions, ensuring the patched app can instantly access configurations.
- Refactor loading logic: Change the loading method of
NeoLocalApplicationServicefromSharedPreferencesto dynamically queryConfigProvider. - Dynamic APK path resolution: Implement dynamic resolution of module APK paths via
PackageManager, replacing the original static paths, and enhance error logging for debugging.
Solving x86_64 Architecture Build and SVC Issues
- Fix compilation errors: Resolve the compilation failure issue of
bypass_svcin x86_64 environment, ensuring smooth build of development environment and simulator. - Architecture isolation and Stub implementation: Provide Stub empty implementations for non ARM64 architectures, preventing undefined symbol errors during linking stage.
- Symbol scope optimization: Move the state variable
g_is_hook_activeto global scope, addressing symbol visibility issues during cross-architecture compilation. - Strengthen architecture guard: Add precise architecture guard labels for ARM64-specific instruction set logic (Syscall).
Optimize performance and startup speed
- Gson changed to static singleton to reduce memory overhead.
- Configuration saving switched to asynchronous apply(), avoiding I/O blocking the main thread.
- Improved resource management: Fixed the document check logic in the Provider Dex injection process and enhanced exception log output.
- Strengthened NPE protection: Added multiple null pointer checks for module lists and resource stream reading to eliminate startup crash risks.
v0.7.3
中文
重命名部分組件
更新部分依賴
將所有 'lspatch' 轉為 'npatch' 以规避部分關鍵詞檢測
manager 新增簽名驗證防篡改(僅 java 讀取 hashCode )
支援手動重載列表
- 當卸載後重新整理程式清單
- 可手動下拉刷新應用列表與模組列表
優化應用列表取得
- 安裝及卸載應用後將重新獲取應用列表,應用本身會定期重新獲取應用列表(實驗性)
更嚴格的權限檢查
- Android 11 以上:檢查 Environment.isExternalStorageManager(),如果沒有權限,則跳轉到「所有檔案存取權」設定頁面。
- Android 10 及以下:檢查並請求 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 權限。
修復: 正確設定共享偏好設定鍵並提升加載穩定性
- 修正了 SharedPreferences 鍵配置錯誤,確保模組緩存能正確加載。
- 優化檔案注入器:減少 ZipFile 重複 I/O,提升啟動效率。
- 優化 profile 禁用:採用冪等性檢查和 Truncate 替代 Delete/Create 流程,增強對系統監控的穩定性,避免用戶配置意外清除。
- 代碼精簡:改進了變數命名和程式碼結構。
修復安裝完成提示(部分情況)
修正了某些裝置上注入載入器的 Crash 問題
English
Rename some components
Update some dependencies
Replace all 'lspatch' with 'npatch' to bypass some keyword detection
Manager adds signature verification to prevent tampering (only Java reads hashCode)
Support manual reload of list
- Reload program list after unloading
- Manually pull down to refresh the app list and module list
Optimize Application List Retrieval
- After installing or uninstalling an application, the application list will be re-fetched. The application itself will periodically re-fetch the application list (experimental).
More Strict Permission Checks
- Android 11 and above: Check Environment.isExternalStorageManager(). If no permission is granted, navigate to the "All File Access Permissions" settings page.
- Android 10 and below: Check and request WRITE_EXTERNAL_STORAGE and READ_EXTERNAL_STORAGE permissions.
Fix: Correctly set shared preference keys and improve loading stability
- Corrected SharedPreferences key configuration error to ensure module caching can be loaded correctly.
- Optimized file injector: Reduce repeated I/O of ZipFile, improve startup efficiency.
- Optimize profile disabling: Adopted equivalence checks and Truncate as an alternative to Delete/Create processes, enhancing the stability of system monitoring and preventing accidental user configuration deletion.
- Code Simplification: Improved variable naming and code structure.
Fix installation completion prompt (partial cases)
Fixed crash issues related to injection loaders on some devices
v0.7.2
中文日志见 NPatch-Telegram
✨New Features
New method to obtain the app list via Shizuku.
Supports injection of MT Manager DocumentsProvider.
Supports using a custom new package name for app patching.
Optimized the core signature verification bypass mechanism.
Improved log output and error messages, and supports logging to the Android/media directory.
Automatically clean up profile files to prevent expired archives from interfering with operation.
Streamlined the application mode description text, enhancing readability.
🐛Fixes & Improvements
Enhanced compatibility with some A15 devices.
Improve assets handling and error checks.
Fix memory leak issue caused by JNI global references not being released.
Optimize the service binding timeout logic, fallback mechanism, and module loading stability.
Correct the getPrefsPath path acquisition logic.
Special prompts added for MIUI desktop uninstall scenarios, improving user experience.
⚙️Refactor & Core
All metadata and names related to LSPatch are fully migrated/renamed to NPatch.
Refactor the RemoteService and APK signature parsing logic.
Add null checks for some method parameters to prevent exceptions and crashes.
Synchronize updates to the Core component.
🛠️Build Workflows
Migrate the runtime environment to Ubuntu and simplify the build cache configuration.
Join our Telegram
v0.7.1
What's New:
API 100 support (core only)
Full support for Android 15
Full support for Android 16
Compatibility with special hardening
Modifiable output path
Allows installation using system APIs
Minimizes file size of packaged files
Explicit manager package name in the config file
Allows users to select whether to inject loader dex
Optimized signature bypass (Hook) and patching logic
Join our Telegram