什么是 NPatch
NPatch 是一款基于 Vector 核心的免 Root Xposed 框架。
它是专为免 Root 环境设计的现代化 Xposed 模块注入与应用修补工具。NPatch 能在免 Root 环境中,通过修改 APK 文件注入 Xposed 加载器:本地模式需搭配管理器动态加载并管理模块与作用域,但使用时无需保持管理器处于后台运行;集成模式则将模块直接内嵌至目标应用中,适合无管理器的设备独立运行。
新版本的 core 子模块指向 HSSkyBoy/Vector,这是 NPatch 新版的运行核心,后续能力都建立在它之上。
它怎么运作
修补过程大致上:
- 用
apkzlib打开目标 APK - 改写
AndroidManifest.xml,把appComponentFactory替换为top.nkbe.npatch.metaloader.LSPAppComponentFactoryStub - 注入 meta-loader dex(
assets/npatch/metaloader.dex) - 本地模式(
--manager)下另外注入 loader dex 与libnpatch.so(arm64-v8a 与 x86_64) - 签名绕过等级 ≥ Basic 时,把原始 APK 以嵌套 zip 嵌进去(
assets/npatch/origin.apk),运行时可以回读原签名 - 用密钥库重新签名,输出
<原文件名>-<NPatch versionCode>-npatched.apk
运行时,被改写的 appComponentFactory 会先把 Xposed 环境拉起来,再交还给应用真正的 component factory,模块就在这个时间点被加载。
输出文件名后缀的版本号是 NPatch 自己的
LSConfig.VERSION_CODE,不是原 APK 的 versionCode。
本地与集成(两种使用模式)
NPatch 有两种互斥的修补模式:
- 本地模式(
--manager):为未嵌入模块的应用打修补。Xposed 作用域可动态更改,无需重新打修补。此模式下的应用只能在本地设备上与 NPatch 管理器搭配使用。 - 集成模式(
--embed):修补 App 并内建模块。经修补的应用可以在没有管理器的情况下独立运行,但不能动态管理配置。此模式适用于需要在未安装 NPatch 管理器的设备上运行的应用。
两个 flag 互斥,CLI 上不能同时带。详细差异看 本地与集成模式。
系统需求
- Android 9 (API 28) 或更高
- 上限大致跟 JingMatrix/Vector 一致
- 修补工具本体:
jar-v<verName>-<verCode>-release.jar(纯 Java,跨平台,Windows / macOS / Linux 都能跑,需有 Java 环境)
适合的场景
- 设备没解 Bootloader、不想或无法 Root
- 只想针对特定用户应用注入 Xposed 模块
- 在多台设备分发同一份修补
不适合的场景
- 需要修改 system server、framework、系统应用 — NPatch 只能处理用户应用
- 目标应用做了强完整性检查、SafetyNet / Play Integrity 严格验证的场景,例如金融或部分手游
- 加固后的 APK(dex 加密、壳保护),通常无法直接修补
接下来
- 直接动手:使用说明
- 用管理器与 Shizuku:管理器与 Shizuku
- 两种模式怎么选:本地与集成模式
- 修补踩坑:常见问题