You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--injectdex DEX Injection: You can now inject a custom Loader DEX directly at patch time, backed by a dual-layer hidden-API exemption so injected code stays functional on Android 36+ instead of tripping the platform's reflection restrictions.
Override targetSdkVersion: Patching can force a specific target SDK, giving you a way around behavior changes that only trigger above a certain SDK level on apps you don't control the manifest of. Exposed identically in the CLI and the Manager UI, so scripted and manual workflows stay in sync.
Enable HTTP Cleartext Traffic: A one-click usesCleartextTraffic toggle at patch time, aimed squarely at local debugging and packet-capture setups where you need plaintext HTTP without hand-editing the manifest first.
Packaging Pipeline Improvements: The packager now tracks v1/v2/v3 signature schemes and Split APK output together instead of treating them as separate paths, so a patched APK's signing metadata and split structure stay consistent through the whole pipeline rather than drifting apart on edge-case inputs.
Robustness Fixes: META-INF signature entries from the original APK now survive the patch step instead of being dropped; Manifest parsing tolerates a wider range of malformed input; output filenames no longer break in non-ASCII locales (#137); and origin.apk caching now uses atomic writes with proper multi-process locking, closing a race that could corrupt the cache under concurrent patch operations (#147).
📱 Manager UX Improvements
Direct Re-patching & Source APK Extraction: Re-patching an already-installed app used to mean tracking down the original APK yourself. The manage page now does that step for you — it detects the embedded original inside the installed patch and extracts it automatically before re-patching.
Persistent APK Source Selection: The APK you picked as a patch source is now written to persistent storage instead of living only in memory, so it's still there after the patch finishes or if the app gets killed mid-flow — no more re-selecting the same file from scratch.
Smart Embedded APK Detection: The Manager now recognizes when a given APK already contains an embedded original or plugin payload and prompts you to extract it, rather than letting you patch on top of a patch by accident.
Liquid Glass Bottom Bar: The bottom navigation bar has been rebuilt around SukiSU-Ultra's liquid-glass visual language, with gesture-nav sync, tab-selection contrast, and safe-area insets all tuned to match rather than bolted on separately.
Signature Conflict Override Option: The signature-conflict dialog now includes a "Proceed despite risk" option, so you can choose to install over a mismatched signature instead of being hard-blocked when you already understand the trade-off.
🛡️ Loader & Bootstrap Stability
ClassLoader Timing Fix: Fixed a ClassNotFoundException on HiltApplication and similar hardened apps, caused by the app's ClassLoader being instantiated before hook deployment had actually finished — the loader now waits for the correct point in the bootstrap sequence instead of racing it.
Cached APK Resource Fix: In signature-bypass mode, cached APKs were failing to resolve some resources correctly; resource loading now points at the right underlying APK so packed/hardened apps render as expected.
Disconnection Protection: Module scope caching is more resilient now, so if the system kills the Manager process in the background, the host app keeps running normally instead of losing its hook state.
fstatat Hook: Added interception for fstatat/fstatat64, so module library paths are excluded from these syscalls the same way they already were for open/read-family calls — closing a detection gap that relied specifically on fstatat.
⚙️ System Integration & Toolchain
Remote SDK AAR: A remote-sdk AAR is now published separately, so module developers can pull in NPatch's Manager UI components as a dependency instead of reimplementing that UI themselves.
libxposed XposedService: The standard libxposed XposedService interface is now fully implemented in both integrated and standalone Manager modes, so third-party modules built against that interface work without NPatch-specific shims.
Installer Fixes: Fixed the FileProvider external cache path, a confirmation intent that wasn't launching correctly, and missing receiver export declarations that newer Android versions reject; also smoothed out the Shizuku-based install flow and fixed a rendering glitch in the install dialog.
remote-api Modularization: remote-api now lives in its own submodule repository rather than the main tree, so it can be versioned and released independently without dragging the whole NPatch repo along.
中文
🔧 修補器(Patcher)全面進化
--injectdex DEX 注入支援:修補時可直接注入自訂 Loader DEX,並搭配雙層隱藏 API 豁免機制,確保注入的程式碼在 Android 36+ 上不會被平台的反射限制擋下來。