FPA 的开源协议与底层引擎:Apache 2.0、LSPlant 与 Pine
FPA 按 Apache 2.0 协议开源。对使用者来说,这个事实有两个实际意义:一是底层实现可查,出了问题不用对着黑盒猜;二是它是免费软件,任何「付费解锁」「收费版」的说法都可以直接当骗子处理。
两个引擎各管什么
FPA 的 Hook 能力由两个公开的引擎共同承担:
- LSPlant:出自 LSPosed 项目之下的 ART Hook 库,负责 Java 方法级的 Hook 与反优化。它支持安卓 5.0 起的大范围系统版本(官方口径到 Android 17 / API 37),覆盖 armeabi-v7a、arm64-v8a、x86 等多架构——FPA 能在高版本安卓上干活,靠的正是这层支撑(详见LSPlant 是什么)。
- Pine:另一个 Java 方法 Hook 库,同样服务于应用进程内的方法拦截(见Pine 引擎)。
框架代码被打进应用包后,由这两个引擎在应用进程里完成「替换方法调用」的全部脏活。
精简实现与体积的关系
完整的 Xposed 框架要兼容海量模块的各种调用面,体积与复杂度都不小。FPA 只实现了 Xposed Hook API 的一部分,换来的是安装包长期维持在几 MB 的量级——早期版本约 3.4 MB,新版本 8 MB 上下(变化过程见安装包多大)。
精简的另一面:兼容性以实测为准
API 实现不全意味着:模块调到 FPA 没实现的接口时会失效或闪退。这不是 bug,是设计取舍的固有代价。所以本站反复强调一条纪律——模块可用性以实测为准,公开资料里被验证过的只有少数几个(FunBox、QAuxiliary 等),验证方法与失败排查见模块加载失败的常见原因。
想进一步理解「打进包里」到底发生了什么,读免 Root 注入的原理。