FPA 和 LSPatch 的区别在哪:嵌入模式与本地模式之争
FPA 和 LSPatch 是最容易被放在一起比较的一对——两者都走「改包 + 重签名」的免 Root 路线,操作思路也相近。但社区里流传着一句很精辟的总结:能免 Root 过签的不能嵌入模块,能嵌入的又不能过签。这句话说的正是 FPA 与 LSPatch 各自的能力边界。
逐项对比
| 维度 | LSPatch | FPA |
|---|---|---|
| 免 Root | 是 | 是 |
| 模块嵌入 | 支持把模块内置进目标应用(嵌入模式) | 仅本地模式,模块不进包 |
| 过签能力 | 相对弱 | 能过简单的签名校验 |
| 维护状态 | 已停更 | 更新至 v3.8 |
| 原理沿袭 | 与 LSPosed 同源的设计 | 全新底层(LSPlant + Pine) |
差异一:模块能不能「内置」
LSPatch 有一种玩法是把模块 APK 直接塞进目标应用的安装包里,打出的成品自带模块,不依赖外部任何东西。FPA 不做这件事——它只支持本地模式:框架代码进包,模块留在 FPA 侧,运行时由框架按作用域挂载。所以社区在讨论汽水音乐这类过签场景时会特别提醒「FPA 仅支持本地模式,不能将模块内置到应用中」(案例见汽水音乐过签实例)。
差异二:签名校验的处理能力
不少应用启动时会校验自身签名,发现「不是我」就闪退。FPA 对这类校验有一定的处理能力——社区实测能应付相对简单的校验场景;但校验做得完善的应用依然会翻车,这是所有改包方案的共同天花板(展开见过签是什么意思与哪些应用过不了签)。
差异三:底层是不是一套
LSPatch 可以看作 LSPosed 生态的免 Root 延伸,设计思路一脉相承;FPA 明确没有延续这套设计,而是基于 LSPlant 与 Pine 两个引擎重构。实现思路不同,模块兼容表现也就不能互相推断——LSPatch 上能跑的模块,换到 FPA 上要重新验证。
怎么选
- 目标应用有签名校验、LSPatch 打完就闪退 → FPA 的过签路线值得一试;
- 需要模块内置、追求成品自包含 → 这是 LSPatch 的独门能力,FPA 给不了;
- 两个都停更/都可能停——动手前先看版本历史确认最新状态。