LSPatch 中文文档 下载 App

模块作用域:为什么装了模块就是不生效

作用域是什么

Xposed 框架里,每个模块都可以 hook 任意应用的方法。但"任意"是不可控的——如果你装了 5 个模块,每个都尝试 hook 所有已装应用,设备会非常卡,而且模块之间可能冲突。

所以框架提供了作用域(Scope)机制:每个模块只在被勾选的应用进程里加载和执行。没被勾选的应用进程里,模块根本不会被加载。

LSPatch 里怎么设作用域

本地模式

打开 Manager → 应用管理 → 点目标应用条目 → 模块作用域。弹出模块列表,勾选你想让这个应用加载哪些模块。

这里的逻辑是反直觉的——很多 LSPosed 用户习惯在"模块管理"里给模块勾作用域(模块 → 应用),但 LSPatch 本地模式是在"应用管理"里给应用勾模块(应用 → 模块)。两种方式效果一样,只是入口不同。

便携模式

修补时一次性确定,之后无法更改。选好目标应用后,在嵌入模块那一步勾哪些模块要嵌进去就行。

作用域勾选实战

典型场景一:微博 + 微博猪手

  1. Manager → 应用管理 → 点微博条目
  2. 模块作用域 → 勾选「微博猪手」
  3. 别勾别的模块,保持干净
  4. 强制停止微博 → 重开

典型场景二:TikTok + 下载模块 + 去广告模块

两个模块都要作用于 TikTok:

  1. Manager → 应用管理 → TikTok → 模块作用域
  2. 同时勾选两个模块
  3. 如果两个模块都改视频播放相关方法,可能有冲突——先勾一个试试生效了再加另一个

典型场景三:DataManager 通用模块

DataManager 是一个通用的文件管理器注入模块,可以作用于任意应用。想让它在所有 LSPatch 修补过的应用里都生效:

  1. 每个修补过的应用 → 模块作用域 → 都勾上 DataManager

为什么模块不生效:排查清单

如果模块勾了作用域但还是不工作,按这个顺序查:

1. 模块是否真的安装到手机上了? Manager → 模块管理 Tab,模块有没有在列表里?如果是便携模式修补,模块 dex 是否真的嵌进 APK 了?

2. 强制停止 → 清缓存 → 重开应用做了吗? LSPatch 在应用进程启动时初始化。应用已经在跑的话,模块来不及注入。

3. 模块是否支持 LSPatch / 免 Root?有些模块只在 LSPosed(Root 模式)下测试过。看模块仓库或说明文档里有没有 "Non-Root" 或 "LSPatch compatible" 的标记。

4. 模块是否被开发者禁用了内置/便携模式?部分模块开发者在代码里加了反检测——发现自己被嵌入 APK 时直接拒绝初始化。这种模块便携模式下用不了,本地模式可能可以。

5. 版本是否匹配?模块版本和 LSPatch 核心版本差距太大(比如模块是 2023 年写的,LSPatch 核心更新了很多次),可能有 API 不兼容。

常见误区

误区:模块里勾了应用的话,那个应用不装 LSPatch 补丁也能用模块

不行。LSPatch 的模块加载器只在修补过的应用进程里存在。没修补的应用进程里根本没有 LSPosed 运行时,Xposed API 也不存在,模块代码根本跑不起来。

误区:LSPatch 本地模式的作用域和 LSPosed 一样,可以勾系统框架

LSPatch 是补丁式框架,只能作用于修补过的应用进程。系统框架、SystemUI、设置应用这些系统组件没法通过 APK 修补来加载模块——这是补丁方案的天生限制。

误区:作用域勾多了模块会更快生效恰好相反。勾越多模块,每个模块都要扫一遍宿主应用的方法,启动越慢。而且模块之间可能 hook 同一个方法,谁先谁后不确定,容易出兼容性问题。宁缺毋滥。