安卓必备神器入门Magisk核心功能和翻
作为一个拥有和管理系统最高权限的应用,MagiskApp有一定的使用门槛。差若毫厘,谬以千里,如果不清楚某个开关代表的意义,一个小小的误操作就有可能引发无法开机的严重后果。本文将从官方文档与个人经验出发,为大家介绍MagiskApp。
文章内容和截图基于Magiskv23,涵盖新MagiskApp的四个主要功能:安装和卸载Magisk;授予应用Root权限;隐藏Magisk;获取和管理模块。在奔向Magisk的自由天地前,强烈建议你先阅读此文了解少数情况下的应对措施,这也是本文出现在模块推荐文章之前的原因安装和卸载MagiskMagiskApp第一屏便是负责Magisk镜像安装和卸载的界面。这个页面的功能往往和具体的使用场景绑定在一起,因此,下文用四个不同的情境来介绍App这个界面下的几个重要功能
情境一:安装Magisk到原系统#Android必备神器入门:从零安装Magisk#的文章中,我们遇到的就是这种情境。结合Ramdisk的值,使用Magisk图标旁的「安装」「选择并修补一个文件」功能,Magisk会修改我们提取的镜像供我们用fastbootflash刷入或者fastbootboot引导进入系统。这是MagiskApp最为基本的用途,除了少部分新机型外,这也是刷入Magisk最稳妥的方式。在每一次更新系统后,我们都推荐按此流程重新刷入。情境二:Magisk需要更新或者修复
在检测到系统已经刷入Magisk后,Magisk图标旁的「安装」子界面会多出一个「直接安装」选项。「直接安装」会将和App相同版本的镜像刷入系统。如果Magisk的一些功能莫名其妙地失效,可以尝试使用此功能重新挂载Magisk。而如果需要更新的话,按照前文提到的流程,只需要先在应用内根据提示进行更新App本体,再点击「升级」按钮就能自动刷入。情境三:进行系统OTA系统在下载更新包后,会在安装前进行系统的完整性检查。很多Root工具因为修改了底层文件,导致系统无法通过此项检查而不能安装OTA。Magisk的优势正是「挂载」而非「改写」。当然,想要完成OTA还需要我们的手动操作。为了防止系统自动安装更新导致更新失败,刷入Magisk后面的第一步就是关闭系统的「自动安装更新」选项。类AOSP系统中,这个项目一般位于「开发者选项」界面;改动比较大的系统中,这个选项可能位于系统更新App。读者应该记得,我们在安装Magisk的确修改了系统的boot.img或者recovery.img。因此,在收到厂商推送的更新后,我们需要点击MagiskApp首页的「卸载Magisk」「还原原厂镜像」(不要重启)来恢复原来的镜像。此时理论上OTA应该能够正确安装
下载OTA并安装后,系统会提示重启,重启后我们会失去Magisk。因而我们还需要按照文章「打包镜像并刷入」章节中提到的提取镜像修改镜像刷入/引导启动镜像的方式再次安装Magisk。和Magisk本体不同,模块不需要重新安装。Magisk将模块储存在一个文件夹(/data/adb/modules)中,每次设备开机时,Magisk会自动挂载该文件夹下的模块。原厂镜像无法挂载这些模块,但并不意味着这些模块文件被删除了;只要重新安装Magisk,这些「蜇伏」的模块又能生龙活虎。根据多年以来的刷机经验,分享给诸位一些重装时的技巧:
携Magisk进行系统OTA的流程可以总结为:关闭「自动安装更新」收到OTA「卸载Magisk」/「还原原厂镜像」下载并安装OTAA/B分区为「是」的设备:不重启「安装」「安装到未使用的槽位」重启与更新系统。其他设备:重启与更新系统重新安装Magisk。如果遇到无法更新的问题,尝试不清除用户数据的刷写系统全量包方式,而后重新安装Magisk。一加等机型在检测到Magisk后会自动下载全量包。常备全量包,翻车不慌张
情境四:完全卸载Magisk在「卸载Magisk」命令下还有一个「完全卸载」,点击此命令会在重启设备后卸载一切已经安装的模块和Magisk本身。
授予应用Root权限Android是以Linux为内核的系统,在Android上获取root类似于在Linux上使用了root帐户。有了root权限,我们便能修改底层文件、注入脚本、调节系统性能、读取更详细的数据……当然,这一切并不需要我们手动去写脚本,我们需要做的只是通过Magisk将root权限授予给能够完成这些事情的应用者们。索取root权限的请求由应用发起,Magisk此时会跳出类似于WindowsUAC弹窗供用户确认。想要防止恶意应用模拟点击,可以在MagiskApp的设置中开启「生物识别验证」和「点按劫持保护」两个选项。
授权了应用之后,Magisk默认会在该应用使用root权限时弹出通知,并且记录相关的日志。这两个选项隐藏在MagiskApp的超级用户界面中,通过单击已授权的应用名称,便能找到控制通知和日志的开关。用户授予root权限是将手机的完整控制权交给这个应用,因此请务必保证此应用值得信任。如果你在主力机上使用root权限,更应该保持克制和敬畏。
此处另外提一些关于授予root权限的小技巧:
通过MagiskHide隐藏Magisk正因为root权限和将要提到的模块所带来的潜在危害,一些涉及版权、金融、通讯功能的应用会事先检查系统是否「完整」,它们若发现系统已root或者挂载了一些模块,会以此为由弹出警告乃至直接退出,还可能会对用户可获取的内容做一些限制。为了解决这类应用对用户所造成的不便,Magisk设计了MagiskHide功能。首先,点击App首页右上方的齿轮,勾选「MagiskHide」,这时,Magisk超级用户界面会多出一个MagiskHide子界面。在针对应用隐藏Magisk前,我们可以先试试检验设备能否能通过位于App首页的「测试SafetyNet证明」。点击位于首页的测试按钮,第一次测试需要下载额外的组件,测试还要求设备能正常访问Google,因此请确保网络正常。不出意外的话,不久后会弹出「通过证明」的文字。
如果basicIntegrity没有通过,说明系统镜像完整性有问题,这一般发生在第三方ROM中,我们可以尝试安装MagiskHidePropsConfig模块或者更换ROM来解决这个问题。如果ctsProfile没有通过,安装UniversalSafetyNetFix模块一般能解决此问题。确认SafetyNet测试通过后,接下来我们勾选想对其隐藏root事实的应用。
一般说来,下列四类应用常常有root检测行为和反制措施:通过自己实际遇到的问题或者是翻阅网络资料,我们可以确定对哪些应用隐藏Magisk。在MaigskHide界面直接点击某应用的选择框,Magisk会自动为我们勾选应用下的组件。如果在勾选之前就已经打开过该应用,我们可能还需要清除一次应用的缓存乃至数据。根据作者的说法,此功能属于「dirtyhack」,在使用时应尽量保持克制。不含有root检测机制的应用,不建议勾选。如果在上述设置后,还发现有应用检测到root权限,我们可以打开Magisk设置里的「隐藏Magisk应用」选项。点选后,Magisk会更改自己的应用名,用户需要通过搜索或者创建的快捷方式访问改名后的MagiskApp。这样能防止在低版本系统中,部分应用扫描用户应用列表时检测到Magisk进而判定系统已root。
获取和管理模块模块是大部分用户选择安装Magisk的原因是,它们是一个个开箱即用的系统修改包或修改包的组件。模块既可以从MagiskApp自动下载安装,也可以从网络下载然后手动安装,部分拥有root权限的应用还可以越过用户的授权直接安装模块。由于不同的Android设备差异实在太大,同样的模块难以保证完美适用于所有设备;不同的模块、应用和用户对系统的其他修改有时候会产生冲突,进而导致一系列严重问题;一些模块本身也像应用那样,需要有一个逐渐完善的过程;也有的模块本来就是不完整的,需要其他模块的辅助。因此,安装模块千万要遵循流程。设备出现问题后也不要慌,有的是简单且易操作的解决方案。
安装模块的基本流程安装模块分三步:阅读模块说明确认相关依赖状态安装模块并重启。这三步中,最重要的当属第一步,因为它直接决定了当前模块是否符合自己的需求,能不能安装使用。下面以能在MagiskApp找到的内容拦截模块EnergizedProtection为例,详细讲解这三步。我们进入MagiskApp的第四屏模块界面,利用搜索找到EnergizedProtection。点击模块右下的文件夹图标即可阅读它的说明。由于是从GitHub上获取,如果模块说明无法加载,你可以尝试开启设置中的「安全DNS」。这些应用内模块实际上都托管在MagiskModules库下,我们也可以选择使用电脑访问相关的Repo来阅读模块说明。
模块说明书中最重要的是两部分内容:模块的依赖和用法。许多模块是协同其他模块或者App工作人员,在安装这些模块之前,必须确定相关依赖的状态。例如,EnergizedProtection告诉我们它需要SystemlessHosts这个模块,Magisk20.4之前的版本还需要安装BusyboxforAndroidNDK。它使用的方法是命令行,因而我们还需要一个Android平台的终端,比如说Termux。确认这些依赖都装好了之后,点击「安装」,重启系统,这个模块才算安装完成。如果安装的模块和你素未谋面,那么本文不建议一口气安装很多个。不在App列表中的模块,例如NotoCJK,模块说明在发布处,安装模块需要使用模块界面最上方的「从本地安装」命令,然后选择下载的模块压缩包。
模块翻车后的自救安装模块后手机出现应用闪退、显示错误和无法开机等种种异常,大概率是使用的某个模块出了问题。针对不同情况,目前有五种比较简单的自救方式:
如果装有第三方Recovery,利用Recovey的文件管理功能(高级文件管理),定位到/data/adb/modules,将其中的问题模块重命名为「remove」,Magisk会在重启时自动卸载该模块。更简单粗暴的方式是直接删除该目录下的问题模块文件。装有第三方Recovey时,我们还能将Magisk.apk重命名为uninstall.zip,在Recovery下刷入,这可以完全卸载Magisk,潇洒弃坑走人。
Magisk让设备具有了极高的自由度的同时,也让其承担着很大的风险。但欲戴其冠,必承其重,因此本文在展示MagiskApp的四项核心功能的同时,也附带阐述了如何携带Magisk正常进行OTA,如何解决模块翻车等重要问题。这些措施应该能最大限度地保证设备数据的安全,不过想要防「翻车」于未然,最重要的还是提高自己的鉴别能力与信息搜集能力,谨慎对待那些来源可疑的模块和应用。
转载请注明:http://www.abuoumao.com/hykz/7306.html