magisk模块下载与安装
Magisk是xda作者topjohnwu制作的一款能够root设备,修改boot image或者添加文件到/data 以及/cache目录,从而在不修改系统的情况下实现一些系统性的功能。
软件介绍
Magisk,以不触动/system的方式修改/system,继SuperSU systemless化后的新发展。作者topjohnwu XDA。
Magisk需要修改boot.img,必须先解锁bootloader。magisk我们一般俗称面具或者是脸谱,它的作用类似于XP框架,但是和XP框架完全是两个性质。
软件优势
1.Magisk框架能够ROOT你的设备,也就是说自带ROOT,并且能够和像SuperSU这种东西良好的相处,主要使用的方法是比较通用的Systemless,不过其实在Su的2.7以后的版本应该也是支持的;
2.Magisk框架能够修改boot image或者添加文件到/data 以及/cache目录,并且仅会在root安装在system分区被识别的情况下才会去改变你的system分区;
3.完全开源,易于拓展和修改
功能介绍
Magisk框架的功能使用
允许你进行任何的系统修改而不去基于修改原来的分区文件来实现这些改动。
MagiskSU: 开源的ROOT解决办法,基于phh's Superuser(实际也是基于CM Superuser)的办法
Magisk Hide:隐藏自己,主要用来规避一些安全机制的检查,例如Google,又或者某些游戏的防作弊检查
Resetprop: 允许你修改系统的props文件,例如build.prop(典型的可以修改机型,厂商等信息),甚至包括只读类型的Props。
Multiple Entry Points: 可以用来暂停启动进程,修改启动动画等等
Standard Stuffs: 移除dm-verity, forceencrypt,,解锁分区来支持读写等。
Magisk框架的兼容情况
任何能够前置的系统修改都能够通过Magisk框架来加载,作者主要拿了ViPER4Android来作为举例
100% systemless的定制系统固件可以到此查看
多系统,多设备支持。
安装介绍
Magisk框架安装介绍
在Magisk框架进行任何的安装之前,它都会在/data/stock_boot_.img.gz目录建立一个来防止出现意外的情况发生,例如卡在开机界面,当然你也可以通过安装卸载文件或者恢复系统来解决这个问题。
如果你已经安装了Magisk框架则需要在安装Magisk Manager,然后在该程序中来升级,或者重新安装Magisk框架的版本,目前最新的稳定版本为v17.1,点击安装则会开始下载文件,文件下载完成之后就会自动开始安装,然后重启,当前这一些都是建立在ROOT权限开启的情况下。
当然如果你没有root或者安装出了问题你可以恢复boot image文件,也就是刷卸载文件,然后手动下载最新的Magisk zip文件,重启到第三方recovery,然后刷入该文件,重启,如果Magisk Manager没有安装,自己安装一些就OK了。
使用方法
每个 Android 玩家都不可错过的神器:Magisk 初识与安装
Come together, not the sam e.
选择 Android 的同时,我们也选择一种「可能性」。
今天厌倦了死板的默认字体我们可以更换,明天想在 MIUI 上试试颜值更高并且没有广告的索尼天气,我们也可以想办法突破 OEM 定制应用的机型限制……
诸如 Xposed 这类不断涌现的「神器」在自定义这件事情上为 Android 插上了腾飞的翅膀,也让「千机千面」成为了可能。
只是美丽向来也伴随着风险:未获得 Google「认证」的设备无法从 Play 应用商店下载安装 Netflix,Google Pay、Pokémon Go 等应用不能在已 root 的设备上正常运行,改动过系统文件的 ROM 无法通过 OEM 渠道进行正常的 OTA 更新升级……
对 Android 生态而言,自定义和稳定性长久以来似乎都是「鱼与熊掌」——直到 Magisk 的横空出世。
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 卸载包即可。
至于哪些模块值得刷,就是完全看个人需求了。