开源项目
topjohnwu/Magisk avatar
topjohnwu/Magisk

Magisk:四个组件撑起的 Android 系统级定制

Android 版魔法面具。这不是 Google 官方支持的产品 简介 Magisk 是一套用于定制 Android 的开源软件,支持 Android 6.0 以上的设备。

62,786 个 Star18,600 个 ForkKotlinGPL-3.0
GitHub

秒懂

它是什么?
Magisk 是面向 Android 6.0 以上设备的开源定制工具集,由 MagiskSU、模块机制、MagiskBoot 和 Zygisk 四部分组成,本文只整理 README 能直接核验的内容。
适合谁用?
适合要在 Android 6.0 以上机型做系统级定制、且能承担解锁 bootloader 与刷机失败风险的折腾者;不适合只想装一个应用拿到 root、又不愿读安装文档的普通用户。动手前先确认这台机器的 boot 镜像能否提取,再核对官方安装页的步骤与你手上的版本是否对应。
能商用吗?
可以,但有条件。GPL-3.0 是 copyleft 许可证:如果你分发包含它的软件,就必须以同一许可证公开该软件的源代码。只在内部运行、不对外分发,则不会触发这项义务。
还在维护吗?
在维护。仓库最近一次提交在 4 天前。
用什么语言写的?
主要是 Kotlin(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

MagiskSU、模块机制、MagiskBoot 与 Zygisk 的分工

README 把 Magisk 定义为一套用于定制 Android 的开源软件集合,并以四个高亮特性说明它的边界。MagiskSU 负责给应用提供 root 访问权限,解决的是授权这件事本身;Magisk Modules 通过安装模块来修改只读分区,让改动不必直接写进系统分区;MagiskBoot 被 README 称为解包和重打包 Android boot 镜像最完整的工具;Zygisk 则让代码运行在每个 Android 应用的进程里。四者从授权、文件系统、镜像处理到进程注入,覆盖了系统级定制常见的几个层次。

需要说清楚的是,README 只给出了每项的用途概述,没有描述它们之间的依赖顺序,也没有说明在系统启动的哪个阶段各自生效。想理解启动链上的具体时序,得去看官方文档里关于安装与构建的部分,而不是靠这四行特性描述推断。文档也没有说明这四项中哪一项可以单独使用,从 README 的措辞看,它们被作为一个套件整体交付。

Android 6.0 这条支持下限意味着什么

README 明确写到支持高于 Android 6.0 的设备。这是一条下限而非完整兼容矩阵:它没有列出经过验证的机型清单,没有区分不同厂商的分区布局差异,也没有说明在系统大版本更新后行为是否保持一致。

对使用者来说,真正决定成败的往往不是安卓版本号,而是 boot 镜像的格式、动态分区是否启用、以及厂商在启动时加了哪些校验。这些 README 一概没有提及,官方文档的安装页才是核对入口。素材里能确认的仓库状态是:主要语言为 Kotlin,默认分支 master,最近一次推送在 2026 年 2 月 23 日,Star 数 62475,分叉 18424,未关闭 issue 38 个。已发布的版本标签中较近的三个是 v30.5、v30.6 和 v30.7,前两个同在 2025 年 12 月 1 日发布,v30.7 发布于 2026 年 2 月 23 日,与最后一次仓库推送同一天。

官方只认 GitHub Releases 这一个下载渠道

README 在下载一节写得毫不含糊:GitHub 是唯一能获取官方 Magisk 信息和下载包的来源。这句话的实际作用是打假,而不是提供便利。一个用户基数如此大的 root 工具,必然伴随大量二次分发的修改版和捆绑了不明模块的镜像,README 用一句话把责任边界划在了官方仓库。

由此得出一条可操作的判断:任何从网盘、论坛附件或非官方镜像站拿到的安装包,都不在官方口径内,也就无法享受后续的缺陷受理。README 同样没有提供校验和或签名验证的说明,因此拿到包之后如何确认它没被改动,文档未说明,只能以发布页面给出的信息为准。对于这类会拿到设备最高权限的软件,下载渠道的可信度本身就是安全模型的一部分,而这一点恰好是 README 唯一明确表态的地方。

只接受 Debug 构建缺陷报告这条硬规则

README 的缺陷报告一节以醒目语气写明,只接受来自 Debug 构建的缺陷报告。这条规则把大量常见反馈挡在门外:从发布版应用或正式构建里收集到的日志,即使确实反映了问题,也不在受理范围内。对报告者来说,提交之前需要先切换到 Debug 版本复现一次,而这个动作在某些机型上意味着重新刷入一次镜像。

README 没有解释 Debug 构建与发布构建在日志级别、符号信息或内部检查上的具体差别,也没有给出获取 Debug 构建的路径,构建相关的内容被指向官方文档的构建与开发页面。这条规则背后的取舍不难理解:维护者面对的是一个高度依赖机型和固件环境的软件,缺少调试信息的报告几乎无法定位,但这属于推断,README 本身并未给出理由。

提交缺陷前要备齐的三类日志

README 按场景列出了三种证据要求。安装问题需要同时上传 boot 镜像和安装日志;Magisk 自身的问题需要上传开机阶段的 logcat 或 dmesg;应用崩溃则在崩溃发生时录制并上传 logcat。三条要求指向同一个事实:排查依赖现场数据,缺少镜像或开机日志的报告基本无法推进。

这三类材料都要在刷机或重启之前抓取,一旦设备已经进入不可用状态,重新取证的代价就高了。README 没有说明日志的脱敏要求,也没有提供上传模板或 issue 模板的链接。对于一个会暴露设备型号、分区信息和已安装模块列表的工具,提交前自行检查日志内容里包含哪些标识符,是使用者的责任。三类中 boot 镜像属于设备固件的一部分,分享时涉及的范围也需要自己衡量。

翻译贡献落在两个字符串资源文件

README 给出了翻译贡献的入口位置。Magisk 应用及其 stub APK 的默认字符串资源分别位于 app/core/src/main/res/values/strings.xml 和 app/stub-res/src/main/res/values/strings.xml。翻译者需要逐个翻译,并把结果放到对应模块的 values-[lang] 目录下。

这里的 stub APK 是个容易被忽略的点:Magisk 安装后使用的包名可以被隐藏,stub 部分因此也有自己的字符串资源,只翻译主应用会导致部分界面仍是英文。README 没有说明语言代码的取值规范,也没有给出翻译审校流程或合并窗口,这些细节需要到仓库的贡献指引或 issue 区确认。从文件路径还能看出项目是标准 Android Gradle 工程结构,想从源码构建的人可以据此定位各模块的源码目录。

GPL-3.0 许可与非官方产品的免责口径

README 顶部有一句显眼的声明:这不是 Google 官方支持的产品。这句话与项目性质直接相关,它做的正是修改系统分区、注入应用进程这类厂商通常不鼓励的事,因此把与 Google 的关系撇清既是事实陈述也是责任划分。

许可方面,README 正文写明 Magisk 及其全部 git submodule 均为自由软件,可依据自由软件基金会发布的 GNU 通用公共许可证第 3 版或更高版本进行再分发和修改,仓库元数据中的 SPDX 标识为 GPL-3.0。许可文本同时包含明确的免责声明:程序按希望有用的方式分发,不含任何明示或默示的适销性与特定用途适用性担保。把这两条放在一起看,项目对自己造成的设备后果不作任何承诺,风险由使用者承担。submodule 一并纳入许可范围这点也值得留意,二次分发时需要连同子模块一起满足义务。

编辑结论

适合要在 Android 6.0 以上机型做系统级定制、且能承担解锁 bootloader 与刷机失败风险的折腾者;不适合只想装一个应用拿到 root、又不愿读安装文档的普通用户。动手前先确认这台机器的 boot 镜像能否提取,再核对官方安装页的步骤与你手上的版本是否对应。

官方来源

  1. Official README
  2. Project repository
  3. Release notes
社区笔记

社区笔记