Magisk 软件下载v28.0
- 类型:工具
- 大小:10.69 MB
- 日期:2024-10-10
- 版本:v28.0
《Magisk软件》是款类似于xposed、应用转生等的安卓手机辅助模拟软件,但相比这类软件拥有更加安全、独立的运行机制,让你可以更加高效的在手机上运行各种第三方模块,让手机更加轻便好用的跑起来。
强大的软件运行机制和原理
可以外挂许多优秀的模块来配合使用
提升你的安卓设备的运行效率
各种好用的第三方模块绝对令人称快
Magisk 是如何工作的?
在一些用户眼里,Magisk 与另一款名为 Xposed 的神器有着高度的相似性,部分群体当中甚至还存在着「Magisk 框架」这样的说法。
的确,二者的工作机制都是「拦截」。Xposed 通过劫持 Android 系统的 zygote 进程来加载自定义功能,这就像是半路截杀,在应用运行之前就已经将我们需要的自定义内容强加在了系统进程当中。
Magisk 则另辟蹊径,通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为系统分区打开了一个通往平行世界的入口,所有改动在那个世界(Magisk 分区)里发生,在必要的时候却又可以被认为是(从系统分区的角度而言)没有发生过。
Xposed/Magisk 原理示意图
Magisk 的实现方式就像是一种魔法,当被挂载的 Magisk 分区被隐藏甚至被取消挂载时,原有系统分区的完整性丝毫未损,玩需要 root 验证的游戏、运行对设备认证状态有要求的应用甚至进行需要验证系统完整性的 OTA 更新都没有任何问题。
可通过 SafetyNet 认证并有针对性地隐藏 root
因此严格来说 Magisk 可以被看作是一种文件系统,这种文件系统通过巧妙的实现方式避开了对系统文件的直接修改,从稳定性上来看要优于以往任何一种系统框架,这也是当前它在玩机社区广受认可和好评的原因所在。
它的魔力不止于 root
很多人对 Magisk 的初步认识可能是 root ——在 SuperSU 销声匿迹之后,它自然而然就成为了当前 Android 社区用来获取 root 权限的主流方式。
不过 Magisk 特殊的运作机制还赋予了它相较于 Android 平台其他定制工具而言独一无二的特质——systemless。这种 systemless 特质让 Magisk 拥有了获取 root 权限之外的诸多优势:
一方面,得益于独特的挂载机制,使用 Magisk 时我们可以有针对性地隐藏 root,甚至暂时隐藏 Magisk 本身。
如此一来,不仅「root 模式下使用特定应用」成为了可能,就连无缝 OTA 更新这种「魔改党」们想都不敢想的事也变得不再遥远。在 Magisk Manager 应用的设置中,我们甚至还可以用随机包名对 Magisk 进行重新安装,让它从其他应用的眼皮底下彻底消失——多么具有魔法特质的高明手段!
另一方面,挂载系统的存在,也让 Magisk 拥有了多样的模块化生态系统。
既然用了「开外挂」的实现方式,那不妨就多挂载一些额外的东西,字体、音效、驱动……甚至 Xposed 本身。Magisk 提供了一个独立于系统分区以外的、可以随时隐形的「沙盒」,那自然不能将其才华禁锢于 root 这一件事上。在 Magisk 的模块仓库里,我们可以找到各式各样的模块(modules)来满足自己的定制化需求,借助这些模块,我们在 root 之后能做的事情其实也还有很多。
在这里的讨论语境下,Magisk 如何给人们留下「框架」这一认知误区的原因就浮出水面了。只是功能方面好不逊色的 Magisk,稳定性和上手门槛对大部分用户来说都更加友好。
如何安装 Magisk
作为一套复杂的文件系统,Magisk 的安装步骤却是十分简单。
在电脑上配置好 adb 环境 并解开 Bootloader 锁后,如果你的设备有来自 TWRP 的官方支持,只需在打开 USB 调试后将手机与电脑相连,然后打开电脑端的命令行窗口:
执行 adb reboot bootloader 进入 Bootloader 界面
执行 fastboot boot TWRP.img 进入临时 TWRP
在 TWRP 中刷入你下载的 Magisk 安装包
没有官方 TWRP 支持的设备安装 Magisk 的步骤要稍微复杂一些:
从你的刷机包中提取当前固件的 boot.img 文件,将它传入到安装了 Magisk Manager 的手机中
进入 Magisk Manager —— 安装(install)—— install —— 修补 boot 镜像文件
然后选择传入的 boot.img 文件进行生成,并将生成后的 Patchedboot.img (姑且这么命名) 传输到电脑上。
修补 boot 镜像文件
随后我们使用 Magisk 应用对 boot.img 进行重新打包:
打开命令行窗口
执行 adb reboot bootloader 进入 Bootloader 界面
执行 fastboot boot Patchedboot.img 来加载生成后的 boot 分区文件获取临时 root
此时进入系统,你会发现你已经成功安装了 Magisk(如果显示没有安装则为获取失败,请检查操作过程重新尝试),但这还不够,我们还得进入 Magisk Manager,选择安装(install)——install——Direct Install(直接安装)才能将临时 root 转换为永久 root。
别忘了进行二次安装
三星、华为等特殊机型的 Magisk 安装方法参见 Magisk 官方帮助文档。
安装完 Magisk 后,我们就可以通过 TWRP 或者 Magisk Manager 刷入获取到的模块了。模块的获取方式可以是 Magisk Manager 自带的模块仓库,也可以是其他第三方论坛(如酷安、XDA 等)。
卸载 Magisk 最为彻底的方式就是在 Magisk Manager 中点击「卸载」、「完全卸载」,应用会自动下载刷完 uninstall.zip 卸载包、自动卸载它自己、自动重启。如果你无法进入系统,在 TWRP 中手动刷入 uninstall.zip 卸载包即可。
至于哪些模块值得刷,就是完全看个人需求了。
v28.0
[General] 支持 16k 页面大小
[General] 添加对 RISC-V 的基本支持(未内置于版本中)
[General] 使用最小 libc 构建静态可执行文件(magiskinit 和 magiskboot)以减小尺寸
[Core] 删除不必要的 magic mount 镜像
[Core] 更新启动映像检测逻辑以支持更多设备
[MagiskInit] 重写 2SI 逻辑以将 magiskinit 注入为 init
[MagiskInit] 更新预初始化分区检测
[Zygisk] 更新内部 JNI 挂钩实现
[MagiskPolicy] 修补后保留 sepolicy 配置标志
[MagiskPolicy] 优化修补规则以减少注入的新规则数量
[DenyList] 支持在禁用 Zygisk 时强制执行拒绝列表
[Resetprop] 改进实现以解决几个属性修改检测
[Resetprop] 更新以正确使用属性覆盖
[App] 主要内部代码重构
[应用程序] 支持使用大于 8GiB 的图像修补三星固件
[应用程序] 在 Android 14 上使用用户启动的作业而不是前台服务
[应用程序] 支持 Android 13+ 内置的每个应用程序语言首选项
[应用程序] 添加 action.sh 支持以允许模块定义从 UI 触发的操作
[MagiskBoot] 支持无需解压即可拆分内核映像
[MagiskBoot] 正确支持供应商启动映像
[MagiskBoot] 从内核映像中禁用三星 PROCA
[MagiskBoot] 正确支持供应商启动映像
[核心] 更新启动映像检测逻辑以支持更多设备
与 v27.0 的差异
[常规] 支持 16k 页面大小
[常规] 添加对 RISC-V 的基本支持(未内置于版本中)
[常规] 使用最小 libc 构建静态可执行文件(magiskinit 和 magiskboot)以获得更小的尺寸
[核心] 删除不必要的魔法挂载镜像
[核心] 更新启动映像检测逻辑以支持更多设备
[MagiskInit] 重写 2SI 逻辑以将 magiskinit 注入为 init
[MagiskInit] 更新预初始化分区检测
[Zygisk] 更新内部 JNI 挂钩实现
[MagiskPolicy] 修补后保留 sepolicy 配置标志
[MagiskPolicy] 优化修补规则以减少注入的新规则数量
[DenyList] 支持在禁用 Zygisk 时强制执行拒绝列表
[Resetprop] 改进实现解决几个属性修改检测问题
[Resetprop] 更新以正确使用属性叠加
[App] 主要内部代码重构
[App] 支持使用大于 8GiB 的图像修补三星固件
[App] 在 Android 14 上使用用户启动的作业而不是前台服务
[App] 支持 Android 13+ 内置的每个应用程序语言首选项
[MagiskBoot] 支持无需解压即可拆分内核映像
[MagiskBoot] 正确支持供应商启动映像
v27.0更新日志
[Zygisk] 引入新的代码注入机制
[Zygisk] 支持 U QPR2 中引入的新签名
[SEPolicy] 更新 libsepol 以正确设置一些策略配置位
[MagiskBoot] 支持压缩 init,以便 Magisk 可以安装在引导分区较小的设备上
[ResetProp] 添加新的等待属性功能resetprop -w
v26.4更新日志日志
[MagiskBoot] 如果签名的启动映像较大,请勿填充零
[MagiskPolicy] 修复 genfscon 和 filename_trans
[MagiskPolicy] 修复 libsepol 中的错误
[Zygisk] 修复并简化文件描述符清理逻辑
[App] 修补 AP tarfiles 时防止 OOM
[App] 修复设备配置检测bug
[Daemon] 修复 APK 的证书解析
[常规] 修复 C++ 代码被忽略的日志记录错误
Magisk v25.2 最新版
维护版本修复了各种问题。
[MagiskInit] 修复使用 stub cpio 时的潜在问题
[MagiskInit] 修复使用 stub cpio 时重启恢复的问题
[MagiskInit] 修复 rootfs 设备的 sepolicy.rules 符号链接
[通用] 更好的数据加密检测
[通用] 将整个日志基础架构移至 Rust
v24.3
[常规] 停止使用 getrandom 系统调用
[Zygisk] 将 API 更新到 v3,向 AppSpecializeArgs 添加新字段
[App] 改进应用重新打包安装工作流程
v24.2
[MagiskSU] 修复缓冲区溢出
[MagiskSU] 修复所有者管理的多用户超级用户设置
[MagiskSU] 修复使用 su -c <cmd> 时的命令日志记录
[MagiskSU] 防止 su 请求无限期阻塞
[MagiskBoot] 支持多魔法的 lz4_legacy 存档
[MagiskBoot] 修复 lz4_lg 压缩
[DenyList] 允许以系统 UID 运行的目标进程
[Zygisk] 三星的“早期合子”解决方法
[Zygisk] 改进的 Zygisk 加载机制
[Zygisk] 修复应用程序 UID 跟踪
[Zygisk] 修复 zygote 中设置不正确的 umask
[App] 修复 BusyBox 执行测试
[App] 改进 stub 加载机制
[App] 主要应用升级流程改进
[General] 改进命令行错误处理和消息传递
v24.1
[App] 稳定性改进
v24.0
[General] MagiskHide 从 Magisk 中移除
【通用】支持安卓12
[General] 支持不支持 32 位且只运行 64 位代码的设备
[常规] 更新 BusyBox 到 1.34.1
[Zygisk] 引入新功能:Zygisk
[Zygisk] 引入 DenyList 功能以恢复用户选择进程中的 Magisk 功能
[MagiskBoot] 支持修补 32 位内核 zImages
[MagiskBoot] 支持启动镜像头 v4
[MagiskBoot] 支持从 dtb bootargs 中修补 skip_initramfs
[MagiskBoot] 添加新的环境变量 PATCHVBMETAFLAG 以配置是否应修补 vbmeta 标志
[MagiskInit] 支持从 /system/etc 加载 fstab(Pixel 6 需要)
[MagiskInit] 支持 /proc/bootconfig 加载启动配置
[MagiskInit] 更好地支持部分魅族设备
[MagiskInit] 对部分 OnePlus/Oppo/Realme 设备更好的支持
[MagiskInit] 在一些 Sony 设备上支持 init.real
[MagiskInit] 检测 DSU 时跳过加载 Magisk
[MagiskPolicy] 从 system_ext 加载 *_compat_cil_file
[MagiskSU] 如果内核支持,请使用隔离的 devpts
[MagiskSU] 如果设置了隔离挂载命名空间,则修复 root shell
[resetprop] 已删除的属性现在会从内存中擦除,而不仅仅是取消链接
[App] 为所有 ABI 构建一个 APK
[App] 切换使用标准底部导航栏
[App] 从集中式 Magisk-Modules-Repo 下载模块已删除
[App] 支持用户配置引导映像 vbmeta 补丁
[App] 恢复在某些 A/B 设备的另一个插槽上安装 Magisk 的能力
[App] 允许模块为应用内更新 + 安装指定更新 URL
v23.0
[App] 更新 snet 扩展。这修复了 SafetyNet API 错误。
[App] 修复 stub 应用中导致 APK 安装失败的 bug
[App] 隐藏为存根时隐藏日志中的烦人错误
[App] 修复隐藏应用时修补 ODIN tar 文件的问题
[General] 移除所有 pre Android 5.0 支持
[常规] 更新 BusyBox 以使用正确的 libc
[General] 修复 C++ 未定义的行为
[General] 几个 sepolicy.rule 复制/安装修复
[MagiskPolicy] 移除不必要的 sepolicy 规则
[MagiskHide] 更新包和进程名称验证逻辑
[MagiskHide] 一些防止 zygote 死锁的更改
v22.1
[App] 防止多个安装会话并行运行
[App] 检查 PXA 启动映像上的启动签名时防止 OutOfMemory 崩溃
[General] 正确的 cgroup 迁移实现
[常规] 从头开始重写日志写入器,应该可以解决任何崩溃和死锁
[常规] 许多脚本更新修复回归
[MagiskHide] 防止信号到达时可能出现的死锁
[MagiskHide] 必要时部分匹配进程名称
[MagiskBoot] 在启动映像中保留和修补 AVB 2.0 结构/标头
[MagiskBoot] 正确剥离数据加密标志
[MagiskBoot] 防止可能的整数溢出
[MagiskInit] 修复 sepolicy.rule 挂载策略
[resetprop] 始终删除现有的 ro。更新前的道具。这将修复可能由修改设备指纹属性引起的引导循环。
v22.0
[General] Magisk 和 Magisk Manager 现在合并到同一个包中!
[App] 其他地方不再使用“Magisk Manager”一词。我们将其称为 Magisk 应用程序。
[App] 支持在Android 5.0+(以前是9.0+)上使用高级技术(stub APK加载)隐藏Magisk应用
[App] 不允许在低于 Android 5.0 的设备上重新打包 Magisk 应用
[App] 检测多个无效状态并发出警告,并提供解决方法的说明
[MagiskHide] 修复停止 MagiskHide 不生效的问题
[MagiskBoot] 修复解压 lz4_lg 压缩启动映像时的错误
[MagiskInit] 支持 Galaxy S21 系列
[MagiskSU] 修复导致 libsqlite.so 加载失败的错误 APEX 路径
v21.4
[MagiskSU] 修复破坏许多根应用程序的 su -c 行为
[General] 正确处理通过套接字的读/写(断管问题)
v21.3
[MagiskInit] 避免挂载 f2fs 用户数据,因为它可能导致内核崩溃。这将修复很多引导循环
[MagiskBoot] 修复 DHTB 标头和 ASUS blob 图像格式的小标头校验和错误
[MagiskHide] 允许 hidi
精品推荐
相关文章