Android 玩家必备神器入门:从零开始安装 Magisk | 您所在的位置:网站首页 › vivo手机怎么打开镜像 › Android 玩家必备神器入门:从零开始安装 Magisk |
Matrix 首页推荐 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 文章代表作者个人观点,少数派仅对标题和排版略作修改。 少数派上一篇介绍 Magisk 本体的文章还是在两年前,两年间,Android 大版本从 9 来到了 12,Magisk 开发者 John Wu 也从 Apple 跳槽到了 Google。物换星移,人去梁空,这个神奇的开源项目却没有因此止步不前。现在的 Magisk 有着广泛的兼容性和繁荣的模块生态,依然是每一个 Android 玩家必备的神器。 五月,Magisk 发布了 v23,并悄然更新了安装教程,删改了过时内容。本文以此教程为基础,重新介绍 Magisk 官方推荐的刷入方式以及其他要点。一些内容为照顾新手玩家而作,有一定知识储备的玩家可以按需跳过。 Magisk 简介Magisk 是一个安全、美观且非常强大的 Android 自定义工具。它主要有以下三个功能: MagiskSU:获取设备 Root 并经用户授权给应用;Magisk Modules:下载、挂载与管理模块,模块则能个性化各种系统设置;MagiskHide:对选定应用隐藏设备已 Root 的事实和 Magisk 自身的存在。![]() 如果想在 Android 设备上管理 root 权限,或是实现某些深度自定义的功能(比如替换字体、调控性能等),那么刷入 Magisk 就是你目前最好的选择,而且「貍猫换太子」的挂载方式使得 Magisk 对现有的系统文件不会造成影响。其原理和安全性如何,可以查看少数派一篇旧文的前两部分: 关联阅读:每个 Android 玩家都不可错过的神器(一):Magisk 初识与安装由于 Android 阵营厂商众多,的确很难保证他们步伐齐一,也就不存在某种一定通行的「通法」能够搞定任一 Android 设备的 Magisk 刷入。因此建议新手在入门时先行寻找当前机型的讨论,检查是否大多数玩家已经成功刷入/是否有额外步骤后再行尝试下文介绍的「通法」1。 此「通法」大致分为以下几个步骤:检查设备,准备工具 > 安装 Magisk App > 提取镜像 > 使用 App 修改镜像 > 刷入镜像。这五个步骤大部分有图形界面辅助,少部分的命令行操作可以直接复制粘贴。 ![]()
下文展示每个步骤的详细内容。如果你是新手玩家,请完整阅读文章内容后再上手。 检查设备,配置工具磨刀不误砍柴工,第一步是检查和准备:检查设备的安卓版本、配置好 ADB 和 Fastboot,以及解锁 Bootloader。安装失败的原因往往是设备的特异性,安装中各类奇怪报错往往是因为没有配置好工具。 检查 Android 版本Magisk 23 仅支持 Android 5.0 及以上的版本,你可以在手机设置 -> 系统信息 & 关于手机的字眼下看到目前 ROM 的 Android 版本。目前给出的最高支持版本是 11。Android 12 截止到目前的 beta 3 据玩家测试都可以正确安装,风险自负。低于 5.0 版本的手机需要更新系统或者装更低版本的 Magisk,低版本的安装方式可以参考 此文。Magisk 历史版本均可在 Github 上的 发布页 找到。 配置 adb 和 fastbootadb 和 fastboot 是我们针对 Android 设备进行高级调试和安装的工具。如果你已经安装了 choco 或 homebrew 等包管理工具的话,Windows 输入choco install adb universal-adb-drivers -y,Mac 输入 brew install android-platform-tools 能最方便的完成 adb 和 fastboot 的配置。 我们也可以手动安装:Windows 用户可以参照 Windows 操作系统下的 ADB 环境配置 这篇文章;macOS 用户可以尝试 此脚本 或是参考 使用 Mac 为 Android 手机刷原生系统 进行手动配置。最后最最不济,可以尝试在 Google 开发者页面 下载对应 adb 包,解压后在对应的目录下执行指令亦可,或者是尝试 WebADB 或 adb 在线执行器 这样的在线 adb 工具,比较考验浏览器的兼容性。 adb 安装后 Windows 用户需要安装驱动。个人建议下载一个泛用型驱动 universal adb drivers。少数情况下不能识别的话,需要我们用「手机厂商名 + adb driver」的关键词搜索得到相关的下载和安装教程。安装了驱动后,Windows 设备管理器中才会出现相应的设备。 ![]() 配置完 adb 环境,玩机路上的最最重要的地基已经打好,但若要将手机设置为可被调试的状态,我们还是要麻烦点上几步: 打开「设置」应用,进入「关于本机」或类似的界面;连续点击「版本号」,直到提示开发者选项已开启;进入「开发者选项」;打开「USB 调试」选项,MIUI 或 ColorOS 用户 需要额外放权操作。此时,连接电脑,打开终端,输入adb devices,如果返回了设备名称,说明 adb 配置完成;用 adb reboot bootloader 进入 fastboot 界面,键入 fastboot reboot 后,若设备重启,说明 fastboot 正常。 ![]() 不解锁 bootloader 则无法对设备进行底层的自定义。对于 Android 玩家这样的小众群体来说,bootloader 能否解锁甚至成为了购机参考中的决定性因素。 一般来说,在开发者选项中基本都有一个名为「OEM 解锁」的选项。除了少部分流入我国市场的国外运营商有锁机外,此选项基本都可供用户开启。 有的厂商为此选项附加了一定的条件:例如小米需要在 解锁申请页面 申请;索尼与 Moto 都需要向官方申请解锁码,一般几分钟内搞定;Google Pixel 和早期的一加手机都无需等待,打开 OEM 解锁选项后输入一下命令,然后在接下来的页面中手动操作。 adb reboot Bootloader # 重启手机到 Bootloader 界面 fastboot flashing unlock # 进行解锁,部分厂商需要在此附上解锁码解锁 Bootloader 后会立即清空手机中所有数据,但这也是很多玩机操作必经的第一步,建议尽早开启。解锁 Bootloader 还意味着手机等私密设备的安全性大大下降,不少厂商也会在解锁政策上附加上不少「条款」:三星设备解锁后会永久性熔断 KNOX 安全认证;大部分手机的版权认证 DRM 等级也会从 L1 下降至 L3、无法通过 Play 商店认证等。 综上所述,我们不建议你在主力机上解锁 Bootloader,一定要那样做的话,请知晓这一操作可能造成的风险。官方已经明确表示不能解锁 BL 的,请知难而退。 打包镜像并刷入下面我们开始真正上手刷入 Magisk 。 Tips:从 Magisk 22 开始,不再区分刷写用的 .zip 包与安装管理器用到的 .apk 应用安装包,二者合一且只有后缀的区别,默认提供 .apk 包,更改后缀为 .zip 后即可被刷写。 安装 Magisk App,查看 Ramdisk在刷入前,我们先安装 Magisk App 来检查设备的信息,来确定进一步的操作。我们先到 官方项目地址 下载 apk 文件安装。 ![]() 打开安装后的 Magisk App,像上面的最后一张截图一样,你能看到一项名为 Ramdisk 的值。请确保此项的值为「是」「True」,我们再进行下一步。 Tips:极少数小米设备存在检测设备信息错误的问题,Ramdisk 虽然显示为「否」,但实际上是需要修改 boot.img。 若 Ramdisk 值为「否」,请结合附录相关章节阅读全文。 获取 boot.imgboot.img 镜像一般来说都可以从当前使用的 ROM 的压缩包中找到。 官方 ROM 的压缩包,例如 Google、小米、Moto,由厂商发布,可从固定的发布页面、机型论坛等获取相关链接。一些厂商同时提供了 OTA 包和全量包,我们优先下载全量包,解压后即可获得 boot.img,也就是我们所需要的 boot 分区的镜像文件。 ![]() 如果你使用的是第三方开发者制作的 ROM,也同样需要下载系统全量包解压获取,而部分开发者也会单独释出 boot.img 为玩家提供便利。如果你比较幸运,在论坛中有人分享了自己修改好的镜像,可以直接获取进行刷写。 Tips:如果你下载的是 OTA 包或解压系统包后只能得到一个体积较大的 payload.bin 文件,请跳转至附录查看如何使用开源工具解压(需 python 环境) ![]() 而解压小米手机的线刷包后,能在 images 文件夹中找到 boot.img: ![]() 保险起见,将要用到的镜像保留一份在电脑上以备不测,之后将其复制到手机上。 使用 App 修改镜像第三步我们获得了 boot.img,并将它复制到了手机上。下面我们将用 Magisk App 修改这些镜像。如果你下载的是别人修改好的镜像的话,直接跳过这一步。 打开手机 Magisk 应用 > 安装 > 选择并修补一个文件 > 选择复制进去的 boot.img > 开始。等待滚动的命令行显示 All Done。 ![]() 修改好的镜像会被存储在手机的下载文件夹中,名称以「magisk_patched」开头,将这个镜像再传回电脑。改个短的名字(可选)。 ![]() 复制修改镜像后的完整路径,在终端中输入: ## 手机重启到 bootloader adb reboot bootloader ## 如果 Ramdisk 为 yes fastboot flash boot ## 刷入完成后重启 fastboot reboot
Tips,要得到文件的完整路径:- 在 macOS 中,直接拖动文件到终端窗口,会生成对应文件的路径- 在 Windows 中,选中文件 > Shift + 右键,会多出「复制为路径」命令 如果想要谨慎一点,比如说修改的镜像文件是从网上下载的,想先试试看能否正常启动,则可以用命令:fastboot boot 。这样顺利启动系统后即可暂时拥有 Magisk ,不过重启后就会失效。确认没有问题后,再打开 Magisk App 中选择安装 > 直接安装,来「永久」写入 Magisk。 最终,当我们能在 App 中看到「当前」一栏的版本号且重启不会消失时,恭喜你,安装成功。 更新和卸载一旦安装成功,以后更新 Magisk 就不用这么麻烦了。Magisk App 的「安装」选项会在你成功刷入镜像后多出来一个「直接安装」选项。点此选项就能升级 Magisk。同样,卸载也可以通过 Magisk App 首页的「卸载 Magisk」按钮来实现。 ![]() 就目前来看,安装 Magisk 后出现的各类问题大多数情况下都不是因为 Magisk 本身,而是因为安装刷入后又陆续刷入的来源不明的 Magisk 模块或者授予 root 权限的不明应用。如果你同时还想刷入第三方内核的话,建议先刷 Magisk 再刷第三方内核,这样也能知晓问题出在哪一方身上。 因为未知原因导致安装失败也不要怕,在步骤「获取 boot.img」是我们保留了一份原来的镜像,按照最后一步的方法将原来的镜像重新刷回去就能正常开机。 在使用 Magisk 的过程中,可能会出现了 App 闪退或拒绝启动,可以尝试使用 Magisk Hide 来针对这些 app 隐藏 Magisk 的存在。而如果你因为安装了未知模块而翻车无法顺利进入系统,请先冷静下来:解决此类问题有一个万能的命令adb wait-for-device shell magisk --remove-modules ,此条指令将会在手机启动过程中生效。 关联阅读:一日一技 | Magisk 模块「翻车」,没有 TWRP 如何救砖? Magisk App 内容会在之后的文章中更详细的讲述。 参考资料Magisk 项目地址:https://github.com/topjohnwu/Magisk官方论坛:https://forum.xda-developers.com/f/magisk.5903/官方教程:https://topjohnwu.github.io/Magisk/常见问题:https://www.didgeridoohan.com/magisk/HomePage附录:Ramdisk 为「否」的机型安装流程Ramdisk 是系统中的一个小分区,Ramdisk 告诉系统接下来要加载哪些东西。Magisk 的目的是修改 Ramdsik,把自己加进开机需要加载的系统组件中。App 中 Ramdisk 的值为「否」时,表示需要修改的 Ramdisk 被放在了 recovery.img 中,我们需要提取并修改 recovery.img。 整个流程仍然分为五步,但部分环节有所不同: 检查设备,配置工具安装 App,此时 Ramdisk 显示为「否」下载当前系统的全量包,如果你使用了第三方 Recovery,那么 recovery.img 就是这个第三方的镜像。提取 recovery.img,备份,然后传到手机上修改镜像:在选择修补文件后,会多出一个「Recovery Mode」的选项。记得勾选刷入镜像:使用的命令是 fastboot flash recovery这五步完成后,重启手机。和修改 boot.img 不同的是,我们需要立即按下设备进入 Recovery 的组合键,这样才能挂载 Magisk。这是因为我们是通过修改 recovery.img 的方式挂载 Magisk 的,只有在按下组合键的情况下,设备才会启动 recovery 分区,从而实现 Magisk 的挂载。 按下组合键后,设备不会进入 Recovery 模式,而是会闪屏过后直接进入一个有 Magisk 的系统。每一次重启都要这样做才能挂载 Magisk。进入系统后就没有特别需要注意的问题了。 而想要进入真正的 Recovery ,我们需要在按下组合键后的闪屏界面长按音量 + 键。 附录:解压 OTA 包获取其中的 boot.img一般来说像 Google 给出的刷机包,解压其中的 image 包可以直接获得我们想要的各种镜像文件。但部分厂商给出的升级包以及部分第三方 ROM 的刷机包中解压出来只有 payload.bin,无法进一步解压获得我们想要的各种镜像文件。 ![]() 解压 payload.bin 需要用到特殊的工具,我们可以在 Github 上找到开源的 payload dumper,这是一个基于 python 3 的命令行工具。 以 zip 格式下载源代码,本地解压得到 payload_dumper-master 文件夹,下属两个 py 后缀的 python 文件。将 ROM 的 .zip 包解压缩后,把其中的 payload.bin 文件移送到 payload_dumper-master 中。 pip3 install protobuf #安装 protobuf ## 定位到 payload_dumper-master 文件夹 python3 -m pip install protobuf python3 -m pip install -r requirements.txt python3 payload_dumper.py payload.bin
![]() 一般来说我们的 Android 手机都有恢复模式(Recovery),这个模式独立于 Android 系统之外,主要用于升级或者修复手机的 Android 系统。TWRP 就是一种经过自定义的恢复模式,玩家可借助这类自定义恢复模式来便捷地完成系统级操作,包括刷入 Magisk。 自定义恢复模式刷入法无需考虑 Ramdisk 是 Yes 还是 No,但 TWRP 的更新适配往往跟不上新机型、新系统的速度,Magisk 官方文档中亦已不再推荐使用自定义恢复模式刷入法。 除了文中第二节提到的三个准备,使用此方法我们还需要 下载 Magisk.apk 并重命名为 Magisk.zip提前准备一个兼容的第三方 Recovery根据有没有 Recovery 分区分为两种情况: 如果你的手机具备 Recovery 分区,可考虑通过 adb 命令刷入自定义恢复模式镜像文件: adb reboot bootloader #进入fastboot模式 fastboot flash recovery之后,使用组合键或者 adb reboot recovery重启到恢复模式。进入自定义恢复模式后输入锁屏密码解锁 data 分区,找到 Magisk.zip 安装包刷入即可。 手机没有 recovery 分区的话,则可以像刚刚那样使用 boot 命令启动(而不是刷入)自定义恢复模式镜像文件。如果你的自定义恢复模式并不支持解密 data,我们也可以尝试使用 adb sideload 命令从电脑端为手机刷入 magisk。 为方便理解,以既没有 recovery 分区、配套 TWRP 又过于老旧不支持解密 data 分区的 Pixel 2 为例,演示用 TWRP 来刷入 Magisk。 电脑端准备好(过时的)TWRP.img 与 Magisk Installer.zip。Pixel 连上手机并已开启 USB 调试选项。 adb reboot bootloader Fastboot boot 指定目录/twrp.img手机开机 > 进入 TWRP > 要求输入密码 > 跳过 > 允许修改系统。在 TWRP 中选中「高级」、「adb sideload」,使 TWRP 处于接受 sideload 的状态。电脑终端方面,输入指令:adb sideload 指定目录/magisk.zip。等待刷写完成后开机即可。 > 下载少数派 客户端 、关注 少数派公众号 ,了解更妙的数字生活 🍃 > 想申请成为少数派作者?冲! |
CopyRight 2018-2019 实验室设备网 版权所有 |