Skip to content

常见问题

基本

跟 LSPosed 比起来呢

两条路完全不同:

  • LSPosed:需要 Root,模块作用在系统层,可以 hook 系统应用、framework
  • NPatch:不需要 Root,只能 hook 被修补过的单个用户应用

NPatch 不是 LSPosed 路线的替代品,它解决的是「没办法 Root 但想用 Xposed 模块」这个场景。

支持哪些 Android 版本

最低 Android 9 (API 28)。上限大致跟 JingMatrix/Vector 一致。Android 8 以下不支持。

修补工具能在 Mac / Linux 跑吗

可以。jar-v<verName>-<verCode>-release.jar 是纯 Java,跨平台,只要有 Java 就能跑。设备端的管理器是 Android APK。


安装与修补

修补后的 APK 安装失败,提示「应用未安装」或「签名冲突」

设备上装了原版,原版签名跟修补版不同,Android 拒绝覆盖。先卸载原版再装修补版。由于签名不同,安装前需要先卸载原应用 — 确保已备份好个人数据。

修补时报错,APK 解析失败

可能的原因:

  • APK 是 split APK(分包安装),多个 split 一起传,例如 java -jar jar-v1.0.5-639-release.jar base.apk split_config.arm64_v8a.apk ...
  • APK 来源是 XAPK / APKM 等容器格式,需要先解开取出真正的 APK
  • APK 加固(dex 加密、壳保护),通常无法直接修补

NPatch 对 split APK 有特别处理:文件名以 split_ 开头、且没有 appComponentFactory 的会走 fast path,只重新打包不做注入。

一定要用内建密钥库吗

不一定。三个选择:

  • -npa 用内建 NPatch 密钥库
  • -fpa 用内建 FPA 密钥库
  • -k path storePass alias aliasPass 自定义密钥库

三者互斥。如果不指定,会走默认行为(用内建 NPatch 密钥库)。内部以 BKS 格式加载并启用 V2 签名。

默认签名绕过等级是多少

1(Basic)。改的话用 -l 0~4--sigbypasslv 0~4。注意集成模式(--embed)下上限为 2(High),想用 Extreme 或 Seccomp 必须走 --manager


模块与运行

修补装好了,模块没生效

本地模式

  1. 确认管理器有装(top.nkbe.npatch
  2. 在管理器把模块勾进这个应用的作用域
  3. 确认模块本身在管理器里是启用状态

集成模式

  1. 确认修补时用的是 --embed module.apk,而非 --manager
  2. 模块本身有 xposed_init / assets/xposed_init,否则框架认不到

-v 重新修补、看管理器日志或 logcat,能看到具体哪一步没过。

应用有签名校验,闪退或显示「签名异常」

调高 --sigbypasslv

  • 默认 1(Basic)不行 → 试 2(High)
  • 还是不行 → 切到 --manager3(Extreme,hook PackageInfo(Parcel) 构造函数)
  • 都不行 → 4(Seccomp,ARM64 上的 seccomp v2 过滤与 trusted thread 文件重定向,最后手段)

注意 34 必须配合 --manager,集成模式下会被 CLI 直接拦截。如果到 4 还是绕不过,这个应用可能用了 SafetyNet / Play Integrity 之类的硬完整性检查,目前无法绕过。金融类、部分手游常见这个情况。

应用会检查 installer source(Play Store 安装来源)

--installerSource 设置原始安装来源字符串,例如 --installerSource com.android.vending 模拟从 Play Store 安装。

使用 GMS 的应用怎么办

如果设备上有 MicroG 之类的替代品(如 ReVanced GmsCore),修补时加 --useMicroG。它会在 manifest 加 fake-signature metadata 与 FAKE_PACKAGE_SIGNATURE 权限,把对 com.google.android.gms 的调用导到 MicroG。适用于 YouTube 等 Google 应用,需自行安装对应的 MicroG 服务。

想降级安装(修补版 versionCode 比原版高)

-r--allowdown,会把输出 APK 的 versionCode 强制设为 1。这允许以后降级安装,一般来说不会影响应用实际感知的版本号。

浏览器或有孤立进程的应用无法加载模块

对那些需要孤立进程的应用(比如浏览器的渲染引擎),修补时加 --injectdex 把加载器 Dex 直接注入到原应用包,以确保它们正常运行。


两种模式

本地模式跟集成模式怎么选

简单版:

  • 自用、会换模块 → 本地模式
  • 给别人用 / 对方没装管理器 → 集成模式
  • 应用签名校验很硬,需要 Extreme / Seccomp → 只能本地模式

详细看 本地与集成模式。管理器本身还能做什么看 管理器与 Shizuku

同时用 --manager--embed 会怎样

CLI 会拦截,两个 flag 互斥。

本地模式下,没装管理器会怎样

应用照样会启动,但模块不会加载。等于是个正常但没模块生效的修补版本。


其他

修补后的 APK 可以登录原账号吗

大多数情况可以(包名没变)。有设备绑定、强签名校验、Play Integrity 的应用可能不行 — 例如部分银行 App、腾讯系列、强验证手游。

可以同时装原版跟修补版吗

默认不行(包名相同)。要同时装就得用 -p / --newpackage 改成不同的包名,但这会让多数应用认不出旧数据、推送也会失效。

在哪里反馈问题


支持我

如果 NPatch 对你有帮助,欢迎通过微信赞助支持项目持续维护与后续开发。

微信赞助二维码

免責聲明

NPatch 僅供學習、研究以及合法的應用程式相容性工作使用。請尊重當地法律、應用程式條款與原開發者權益。您需自行承擔在裝置上使用修補應用與模組的責任。

NPatch 官方介绍页面