Skip to content

Releases: 7723mod/NPatch

v0.8.0

30 Mar 15:01
41872d8

Choose a tag to compare

# 關於正式發布 NPatch v0.8.0 版本

為切實解決 NPatch 1.0.0 版本在部分功能運行未達預期之問題,全力保障廣大用戶獲得穩定、流暢、安全之使用體驗,經開發團隊綜合研判、技術重構與充分測試,現決定正式發布 NPatch v0.8.0 版本,對核心功能實施回檔重製,並對底層架構與系統相容性進行全方位升級。本次更新整合多項技術優化與問題修復,相關內容如下:

一、 關於版本名之特別說明

鑒於前期發布的 1.0.0 版本在部分功能實際運行中出現成效未達預期、穩定性不足等情形,為堅持「用戶體驗優先、運行穩定為先」之原則,經研究決定對核心功能模組實施暫時回檔並重新製作優化。

本次版本定名為 NPatch v0.8.0,主要依據此前面向全體用戶開展之版本命名投票結果。0.8.0 版本序號在投票中獲得第二名之高票支持,為回應廣大用戶意願,現於本次核心技術升級之關鍵節點正式啟用該版本序號並對外發布。

本次更新為重量級底層架構重構專案,開發團隊已全面改寫 Manager 端安裝器邏輯修補檔案 I/O 流程,針對現代 Android 系統存在之諸多使用痛點進行集中解決,整體穩定性與適配性實現顯著提升。

二、 核心功能亮點與優化升級內容

(一) 完整支援 App Bundles 批量安裝功能

重構 getAppInfoFromApks 核心邏輯,實現對 base.apk 與所有 split_*.apk 依賴關聯之精準解析,大幅優化 App Bundles(.apks 格式或多 APK 結構)之整體處理邏輯。修補完成後之全部配置檔案與資源包,均可透過單一 Session 完整寫入系統,從根源上降低修補後應用安裝失敗、運行閃退等問題發生機率。

(二) 實現系統原生免 Root 安裝機制

無需依賴 Shizuku 服務或 Root 權限,NPatch 可在非管理員模式下自動呼叫系統內建軟體包安裝程式完成安裝流程,實現操作流程無縫化。該功能在既往版本中長期存在運行異常問題,本次已完成全量重構優化,使用體驗得到根本性改善。

(三) 修復 Shizuku 相容性相關問題

針對 Android 12 以下版本系統及 MIUI、OriginOS 等主流客製化 ROM 中頻發之權限異常問題進行專項修復:嚴格區分不同 API Level 等級場景,徹底解決因 installerPackageName 參數傳遞錯誤導致之 Shizuku 拒絕授權、安裝程序崩潰等典型故障。

(四) 健全權限與組件自動補全機制

強化 Manifest 檔案重構處理能力,實現 QUERY_ALL_PACKAGES 等必要系統權限之自動補齊,有效解決部分應用經修補後因權限缺失導致直接崩潰、功能無法正常調用等問題。

三、 底層架構與細節優化內容

本次版本合併整合近期累計超過 20 項 Commits 開發成果,對底層架構實施深度優化,重點內容如下:

  • I/O 流程與快取機制優化:增強 Patcher 模組檔案讀寫防錯機制與快取清理邏輯。當底層修補引擎出現 I/O 異常時,不再導致 Manager 端無聲崩潰(Silent Crash),可實現異常資訊精準捕獲並在 UI 介面直觀提示錯誤內容。
  • SAF 儲存空間輸出優化:強化暫存目錄(tmpApkDir)與外部快取目錄(externalCacheDir)清理邏輯,確保每次修補作業開展前環境處於乾淨狀態,杜絕舊版本殘留檔案干擾 Split APK 打包流程。
  • 依賴升級與專案結構清理:對底層專案結構進行全面清理與重構,優化依賴庫配置與調用邏輯,整體提升專案編譯效率與實際運行穩定性。

四、 開發者鳴謝

本次核心邏輯重構與全功能優化升級,得益於開源社群之技術積累與廣大開發者的鼎力支持。在此,NPatch 開發團隊對以下開發者此前之程式碼提交、技術貢獻與思路啟發致以衷心感謝:

@HSSkyBoy, @JingMatrix, @xihan123, @hw1020, @MrZhongzq (和 @claude)


建議廣大用戶及時下載更新 NPatch v0.8.0 版本,後續開發團隊將持續跟蹤運行狀況,不斷優化功能體驗與系統相容性。

v0.7.4

10 Feb 10:40
be286c5

Choose a tag to compare

中文

統一介面風格並優化佈局
導入 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 NeoLocalApplicationService from SharedPreferences to dynamically query ConfigProvider.
  • 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_svc in 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_active to 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

08 Dec 14:48
2d86d32

Choose a tag to compare

中文

重命名部分組件
更新部分依賴
將所有 '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

20 Nov 10:14
ed3eb31

Choose a tag to compare

中文日志见 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

08 Sep 14:27
c2fdd49

Choose a tag to compare

ONPatch

21 Aug 06:46

Choose a tag to compare

非 Neo LSPatch, 详情请于 频道 自行查看, 安卓13及以下版本推荐使用, 但基本不再维护

v0.6

21 Aug 06:44

Choose a tag to compare

v0.6 Pre-release
Pre-release

旧项目