管理器与 Shizuku
NPatch 管理器(包名 top.nkbe.npatch)是设备端的 GUI,也是新版本推荐的主要使用方式。它负责管理本地模式修补应用、模块作用域,以及在设备上直接做修补。本地模式下,修补应用运行时会向管理器查询模块列表与作用域配置,这个过程不需要 Shizuku。
管理器能做什么
为应用打修补
不想用命令行也行。管理器把整个 jar 的能力包进 GUI:
- 从存储空间选 APK,或从已安装应用列表选
- 从已安装的 Xposed 模块里挑要内嵌的模块
- 切换本地模式 / 集成模式
- 进阶选项:可调试、签名绕过 0~4 级、修补新包名、覆盖版本号、注入文件选择器、注入加载器 Dex、强制 MicroG、Media 日志
- 切换内建 NPatch / FPA 密钥库,或自定义 BKS 密钥库
- 自定义输出存储目录
管理本地模式应用
打开 管理 标签页,会列出所有用本地模式修补过的应用。每个应用可以做:
- 模块作用域 — 把已安装的 Xposed 模块勾进去;改完即时生效,不用重新修补
- 更新加载器 — 把旧版修补应用内的 Loader 升级到当前管理器的版本
- 优化 — 触发系统 dexopt(需要 Shizuku)
- 强制停止 — 立刻关掉应用以便下一次启动加载新设置(需要 Shizuku)
- 卸载 — 从管理器直接移除修补应用(需要 Shizuku)
- App 信息 — 跳到系统设置的应用详情
- 包名冲突检测 — 如果这个应用其实由另一个管理器管理(例如装过别的 Manager),会直接提示,要重新修补才能切回来
模块仓库
内建一个模块仓库页,可以浏览、搜索、下载 Xposed 模块(有 GitHub Releases 串接)。可以排序、过滤、看 README、看历史版本、看作者,下载到本机后再丢进去当 --embed 或加进作用域。
设置
- 主题模式(跟随系统 / 亮色 / 暗色)
- Monet 动态取色(Android 12+)
- 内建主题色(蓝/绿/紫/橙/青/薄荷/粉/桃/冰蓝/蔷薇)
- 自定义背景图片
- 悬浮分页底栏(Android 13+ 效果完整)、液态玻璃底栏(模糊、鲜明、透镜与高光)
- 详细打包日志
- 重新查看欢迎与权限引导
Shizuku 是什么?做什么用?
可选扩展:Shizuku
仅为可选扩展,未连接也不影响 NPatch 核心功能。
Shizuku 是一套让普通应用通过 ADB 或 Root 获取部分系统 API 权限的方案。NPatch 用它来调用一些原本要 Root 才能做的事情。
NPatch 用 Shizuku 做什么
对应 nkbe/util/ShizukuApi.kt 的实际调用:
| 功能 | 用途 |
|---|---|
getInstalledApplications | 完整列出设备上已安装应用(不受 Android 11+ 包可见性限制) |
createPackageInstallerSession | 通过 com.android.shell 走系统 Installer,安装修补 APK 不弹系统提示 |
uninstallPackage | 一键卸载原版或修补应用 |
forceStopPackage | 在 管理 标签页强制停止选定应用 |
performDexOptMode | 触发修补应用的 dex 优化 |
clearApplicationUserData / setApplicationEnabledSetting | 进阶管理操作 |
isPackageInstalledWithoutPatch | 检测同包名的非修补版本,判断是否冲突 |
没有 Shizuku 会怎样
NPatch 核心修补、模块加载、基本管理都不依赖 Shizuku:
- ✅ 用 jar 在电脑上修补应用 — 完全不需要 Shizuku
- ✅ 用管理器选 APK 修补、输出 APK — 不需要
- ✅ 修补应用的运行与模块加载 — 不需要
- ✅ 在管理器里管理模块作用域、更新加载器 — 不需要
- ✅ 本地模式动态加载模块 — 不需要
- ⚠️ 通过管理器直接安装修补、卸载、强制停止、优化 — 需要 Shizuku(不然只能跳到系统界面手动操作)
- ⚠️ 列出受 Android 11+ 包可见性限制的应用 — 需要 Shizuku(不然只看得到自己声明 query 的)
简单说:Shizuku 只扩充便利功能,没有它你还是能用 NPatch 把应用修补好、把模块跑起来,只是某些操作要多绕一步走系统 UI。
怎么启用
- 从 HSSkyBoy/Shizuku 下载安装 Shizuku
- 通过 ADB 或 Root 启动 Shizuku 服务
- 打开 NPatch 管理器,到欢迎流程的「可选扩展」卡片,或主界面的 Shizuku 状态提示,授权给 NPatch
- 授权后状态会显示「Shizuku 服务可用」与当前的 API 版本
未连接时管理器会显示「Shizuku 服务未连接 / 部分扩展功能不可用」,但不会挡住你修补应用,只是「优化」「强制停止」「直接安装/卸载」这几个按钮点下去会跳系统界面或无响应。
权限说明
第一次启动管理器会走完一次欢迎流程,要求两个权限:
| 权限 | 用途 |
|---|---|
| 存储空间访问 | 选取本机 APK 文件进行修补,并将输出结果保存至外部存储空间 |
| 读取应用列表 | 读取已安装的应用以便精确选取修补目标(Android 11+ 因应包可见性限制) |
之外还会问是否授权 Shizuku — 这个是可选的,跳过不影响核心功能。
跟 jar 的关系
两种方式各有适合场景:
| jar | 管理器 | |
|---|---|---|
| 在哪里跑 | 电脑(Java) | Android 设备 |
| 适合 | 大量批量修补、自动化、CI | 自用、日常修补(推荐) |
| 模块作用域动态管理 | 不可(要手动编 config) | 可以,图形化 |
| 安装修补 APK | 自己装 | 内建(搭 Shizuku 更顺) |
| 修补能力 | 完整 CLI 选项 | 通过 GUI 对应的选项 |
两个底层都是同一份 top.nkbe.npatch.patch.NPatch 逻辑,只是调用入口不同。