Android 11 Root权限提取方法

Root是Android系统的一个术语,它使得用户可以获取Android操作系统的超级用户权限。Root能够帮助用户越过手机制造商的限制,得以卸载本身预装的程序,或运行需要系统权限的动作。Android系统的Root与苹果iOS系统的越狱类似。多数的手机制造商不支持获取Root权限。因此,大多数获取Root的方法都是使用特定工具借助系统漏洞或官方后门实现的。不同手机厂商、系统和版本可能存在的漏洞不同,因此不同手机的Root原理、方法、难度都可能不同。

简介

总而言之,安卓11获取Root权限的原理和逻辑即为,通过Magisk修补boot,再将修补好的boot刷入到系统的boot分区里,再通过Magisk来管理root,这就是“面具root”的由来。

Virtual A/B分区

在2020年的4月8号,据媒体报道谷歌安卓11欲强制使用“A/B”分区,保留内容可无缝更新。为了更详细的说明Android 11 A/B分区的问题,直接把去年的新闻稿摘抄过来,以供大家鉴赏。

多年来,谷歌对Android系统的质量进行了许多更改,但并非所有更改都是强制性的。不过,现在谷歌正打算将Android 11有用的“A/B分区”强制用于未来的智能手机,实质上是将“无缝更新”设为标准功能。根据AOSP Gerrit的提交,即“在安卓R发布时需要虚拟A/B”,更新了Vendor Test Suite(供应商必须通过自动测试才能通过Treble进行测试),这清楚地表明了Google的意图。

图片未正常加载
该测试检查是否在使用API 30级别或更高版本的任何设备上将设备的系统属性“ ro.virtual_ab.enabled”设置为“true”,将“ro.virtual_ab.retrofit”设置为“false”。

换句话说,这意味着测试将检查设备是否支持A/B分区并在Android R(11)或更高版本上启动。如果是,则通过。如果不是,则失败。Google尚未合并所做的更改,因此此要求仍有少许机会不会实现,但如果最终施行,任何Android 11设备上A/B分区都是必需的。

那么IT之家网友了解什么是A/B分区吗? 外媒XDA-Developers对该功能的工作原理进行了深入解释,从本质上讲,它会将基本文件放入设备上的“分区”中。安装更新后,设备将更新分区B中的文件,同时将手机留在分区A中。可以将不活动的分区B更新为Android下一版本,直到用户重新启动并且设备从插槽A切换到分区B为止 ,将其保留在较新版本的Android上。

如下图所示:
图片未正常加载
这有什么好处呢?一方面,它使更新过程几乎完全在后台进行。你可以在安装更新的同时继续使用手机,而实际应用更新只需要一些时间,就像正常重启一样。如果你的手机经常更新,则此功能(称为无缝更新)可以节省大量时间。

最重要的是,如果偶然有更新损坏且无法安装,则Android中的A/B分区可以为你提供保护。在这种情况下,只会影响非活动分区(“分区B”),因此你可以继续正常使用手机。

对于Android用户而言,无缝更新是巨大的胜利,仅牺牲一点存储容量。尽管如此,这种存储空间策略仍然不被一些公司接受。比如三星,这将占用设备最多3GB的额外存储空间。

随着Android 11设备采用强制A/B分区性,无缝更新也可能会变得越来越普遍。反过来,这也可能会帮助Android用户更频繁地更新设备,因为所花费的时间将更少。

制作

既然要修补boot,首先肯定是要获取到官方boot镜像。我们可以通过下载官方卡刷包,解压卡刷包,解密bin文件来解决。
下载官方卡刷包,这个有很多途径,在小米社区和很多第三方网站都有,我主要用的是小米社区的,和xiaomiROM.com的。找到对应版本的进行下载就好了。
下载后的卡刷包,可以直接用解压工具进行解压,但是安卓11是有加密的,解压后有一个payload.bin的文件,需要payload工具来进行解密。我也是在大佬那里找到的。将payload.bin文件放在解密工具payload_dumper-win64.zip解压后的payload_input文件夹里,运行payload_dumper.exe。解密好的boot.img文件就在payload.output里,只需要保留boot.img就好,其他的删除就好不需要。
拿到了boot.img文件,我们在手机上用Magisk,点击安装,选择并修补一个文件。然后将这个boot镜像进行修补。找到修补好的文件传回电脑上。

选择并修补一个文件:
图片未正常加载
图片未正常加载
修补完成。

修补的工作完成了。那接下来就是将这个镜像刷入到系统里,首先手机解bl锁肯定是少不了的,但是这个酷安上到处都是教程,这里就不细说了。
我们将修补过的镜像文件,重命名为boot.img(注意与未修补的boot镜像文件区分)。将这个文件放在一键刷入工具的文件夹里,替换文件夹内原来的boot文件(原文件是小米10S 21.6.23开发版修补过23.0面具的boot文件,对应版本可以直接使用),工具由@落日笑余辉 的工具修改而来。
然后手机连接电脑,运行【boot一键输入工具.bat】,根据提示刷入,刷入成功后会自动重启,刷入速度很快。虽然工具说开机和兔子都能刷入,但是我还是建议进兔子刷。如果发现刷入不了请检查数据线,usb调试是否打开,电脑是否安装驱动。
开机后打开 【Magisk】 ,显示如下界面即为root成功。
图片未正常加载
成功获取root。

其它

如果在刷完root后进行OTA升级,手机在OTA更新结束后,不要选择立即重启,先到Magisk23.0 APP里面将面具刷入未使用的分区,该步骤需要打开SELinux 可通过搞机助手重制版打开,然后再重启,就可以在保留root的前提下更新系统。
注意,更新系统重启前最好关闭一些第三方模块,否则有几率遇到不兼容问题导致设备无法开机。
图片未正常加载
图片未正常加载
图片未正常加载
图片未正常加载

流程

解除手机的BootLoader(会清除数据,注意备份),并下载对应版本的一键root刷入工具,必须是官方包且版本号一致,否则会卡米,进入手机的Fastboot模式(关机状态下同时按住电源键和音量键-),即可运行上述程序,之后手机下载安装Magisk进行面具模块和root权限的管理。注意,最好更新全量卡刷OTA包,制作一键root工具也是基于卡刷包而言。

工具

制作时所需的工具为:
payload_dumper-win64.zip
一键入boot分区工具.zip
小米10S 一键ROOT 12.5.7稳定版
小米10S 一键ROOT 12.5.8稳定版