Magisk和LSPosed

Magisk是Android 系统级 Root 工具,LSPosed是Magisk的一个模块。

Magisk

核心特点是 系统分区无修改,因此也被称为“系统less Root”。

  1. 传统 Root(如 SuperSU):
    • 直接修改 /system 分区文件(如替换 su 二进制)
    • 容易触发系统完整性校验(如 SafetyNet)
  2. Magisk:
    • 在启动阶段通过 ramdisk 补丁* 注入一个 magiskd 守护进程
    • 使用 OverlayFS 挂载机制,在 /system 之上叠加一层虚拟文件系统
    • 实际系统分区保持原样,所有修改都在内存中完成

Magisk 模块示例

  • MagiskHide:隐藏 root 状态(已被 Zygisk 取代)
  • Systemless Hosts:修改 hosts 文件屏蔽广告
  • ViPER4Android:音效增强
  • LSPosed:Xposed 框架的 Magisk 模块版(用于应用 Hook)

与frida关系,

1
Magisk(提供 root)→ 运行 Frida-server(需要 root)→ 动态调试 App

LSPosed

LSPosed 可以理解为:现代版 Xposed 框架,跑在 Magisk(Zygisk)里的“应用/系统行为修改器”。
原版XPosed很老了,到现在只有一些社区维护,用新版本比较好。

不修改 APK、不修改系统分区,在运行时 Hook Java 方法,改变 App 和系统行为。和frida的区别如下:

  • Frida:运行时动态注入,适合临时调试、逆向分析
  • Xposed/LSPosed:常驻框架,重启生效,适合做“持久化修改”(去广告、假数据、反检测)
工具 干的事
Magisk 提供 root + 系统层挂载能力
LSPosed 在 root 基础上,做“应用内方法级 Hook”
1
2
3
4
Magisk(root 底座)
└─ Zygisk
└─ LSPosed(框架)
└─ Xposed 模块(具体功能)

这里对运行原理进行一个说明:
Zygote 是 Android 系统启动时创建的第一个 Java 进程,所有 App 进程都是由它“分裂”出来的。

1
2
3
4
5
系统开机
↓
启动 Zygote 进程(加载所有系统框架类)
↓
App 要启动时 → 系统“复制”一份 Zygote 进程 → 变成新 App 进程

Zygisk(Magisk 的注入机制)
Zygisk 是 Magisk 的一个功能模块,作用是在 Zygote 启动时“偷偷注入”代码。

1
2
3
4
5
Zygote 启动
↓
Zygisk 注入(在 Zygote 还没分裂 App 之前)
↓
所有 App 进程都自带 Zygisk 注入的代码
作者

纹云

发布于

2026-10-26

更新于

2026-10-26

许可协议