FPA 真的不需要 Root 吗:免 Root 的能力与边界
先给结论:FPA 全程不需要 Root。不解锁 Bootloader、不刷机、安装时也不索取任何最高权限——安装 FPA 本身与装一个普通应用没有区别。
免 Root 是怎么做到的
传统框架必须 Root,是因为它要把自己驻进系统层,在所有应用启动时介入。FPA 绕开了这一步:它对单个应用的安装包做修补,把框架代码直接打进去,再重新签名安装。应用启动时,藏在包里的框架随应用一起运行——系统自始至终不知道也不需要知道这一切。
动态加载模式下,FPA 需要读取「哪个应用挂哪个模块」的作用域信息,这件事借助 Shizuku 完成——它用的是系统允许的调试机制,同样不碰 Root(配置细节见用 Shizuku 提供作用域)。
免 Root 之外的边界
不 Root 的代价同样清晰,动手前把这三条边界记牢:
- 碰不到系统进程:只能作用于打进包里的那个应用。作用域包含「系统框架」的模块一律用不了(判定方法见哪些模块能挂)。
- 签名必然改变:改包就要重签名,因此被 patch 的应用必须卸载原版重装,依赖原签名的功能可能失灵(展开见支付登录分享失灵)。
- FPA 本体得留在手机上:新版本 FPA 打包出的应用会检测 FPA 包名,卸载 FPA 后这些应用将无法启动(详见为什么 FPA 不能卸载)。
和 Root 方案怎么分工
一句话:改系统找 Root 框架,改应用找 FPA。想给系统全局动刀(改状态栏、全局主题、跨应用行为),免 Root 方案无能为力;只想给某一两个应用挂模块,FPA 不 Root 就能办到,还不用承担 Root 的安全与保修风险。