LSPatch 中文文档 下载 App

系统级 Hook 与 LSPatch 的天然矛盾

核心矛盾:注入时机

Xposed 框架能 hook 到应用启动的最早期阶段,是因为它的注入点在 Zygote——Android 所有应用进程的共同祖先进程。Zygote 在 fork 每个应用之前就完成了 Xposed 的 Hook 环境初始化,所以应用进程从诞生的那一刻起就在 Hook 环境里。

LSPatch 的注入点是 AppComponentFactory——这是应用 Manifest 里声明的组件工厂,由 Android 框架在实例化应用的 Application 类之前调用。时机比 Zygote 晚很多,但足够让 LSPatch 在应用的 Application.onCreate 之前完成运行时初始化。

为什么这对系统级模块是致命的

系统级模块(修改 SystemUI、设置应用、权限管理框架等)需要 hook 的目标不在普通应用里,而在:

简单说:系统组件不存在独立 APK → 没法修补 → 没法嵌入 LSPatch 运行时 → 模块根本没有被加载的机会。

能用 LSPatch 实现的上限

LSPatch 能做的事情严格限定在:目标应用进程内部、由目标应用自己加载的方法和类。

这包括:

不包括:

如果你需要系统级模块

唯一的路:Root + Zygisk/Riru + LSPosed。

具体步骤(简述):

  1. 解锁设备 Bootloader
  2. 刷入 Magisk / KernelSU / APatch
  3. 安装 LSPosed 模块(Magisk 模块形式)
  4. LSPosed 在 Zygote 阶段注入,所有应用进程从诞生就带上 Hook 能力

这条路的代价:

务实的选择

在当前生态下:

你的需求方案
想给几个社交/视频 App 加功能LSPatch,够用
想改系统 UI(状态栏、锁屏)必须 LSPosed + Root
想 Hook 系统权限管理必须 LSPosed + Root
不想 Root 但想玩系统级功能没有完美方案。某些厂商系统自带的「自定义设置」可以覆盖一部分系统 UI 需求

本站聚焦 LSPatch 路线,系统级 Hook 的具体实现不在讨论范围内。