Answers:
几个月前我遇到了这个问题,我通过一些研究找到了这个答案,因此我考虑通过在线考虑虚假信息来回答我的问题,从而在此站点上分享我的研究。(例如,官方的KingoRoot网站说它可以根植完全错误信息的Android Oreo)
生根应用程序如何工作?
有很多生根应用程序,例如KingRoot,KingoRoot,Z4Root,Root Genius,Universal Androot等。他们所有人都利用Android操作系统中的漏洞利用/漏洞/漏洞为自己分配保留给系统应用程序甚至Android OS本身的特权。然后,它们将名为的目录挂载为读/写,该目录/system
包含启动系统和系统应用程序所需的进程,并将名为的二进制文件su
放置在该目录的位置/system/bin/su
。如果某些应用程序需要root用户,则该应用程序将执行该二进制文件,并显示提示您是否允许或拒绝root用户访问。
被发现的漏洞利用/漏洞被赋予一个CVEID,然后在CVE网站上进行了详细说明,并在Android安全公告中进行了修复。一个例子是臭名昭著的DirtyC0W漏洞,该漏洞被赋予CVEID CVE-2016-5195
,该漏洞困扰并且仍然困扰着较旧的Linux内核。上面提到的几乎所有应用程序都利用此漏洞。
为什么生根的应用程序不再起作用?
如上述公告中所述,Google每月都会在Android中修复一系列问题。因此,漏洞的范围正在大大减少。迄今为止,生根应用程序使用的所有漏洞已在2018年1月左右的某个安全补丁中修复。
但是有些制造商可能会忘记修补此问题!那他们呢
在Android 6.0.0或更高版本上,这只会导致设备无法启动。要了解其原因,我们必须看一下名为信任链的概念。
信任链(缩写为CoT)是一种安全机制,旨在保护Android OS免受病毒和未经授权的修改。它就像硬件和软件链一样工作,其中每个部分都会验证下一部分。分步进行:
如果引导加载程序已锁定,则它将验证要运行的CoT的下一部分是否完整,如果是,则引导加载程序将运行它。如果不是,则根据设备型号,它可能会关闭,重新引导或陷入特殊的引导加载程序模式。
如果引导加载程序已解锁,它不会验证CoT的下一部分,而是直接加载它。
首先,这些根应用程序利用漏洞来修改/system
,如上文第4阶段中所述,该漏洞已由启动分区验证。因此,任何修改都将导致设备无法启动。此状态通常称为“软砖”,只能通过重新刷新来固定。
因此,如果要根设备,较新的设备要求将引导加载程序解锁。这些设备通过以比正常恢复(例如TWRP,ClockWorkMod)更多的选项(通常称为自定义恢复)来刷新恢复,然后使用该修改来修改启动分区(并禁用系统验证)而成为根源。也可以直接修改引导分区,而无需自定义恢复。
一些制造商提供了一种解锁引导加载程序的方法,而有些制造商却没有。引导加载锁定的流行设备(例如,美国运营商锁定Samsung S设备)倾向于被Android改装社区所利用。
我的设备仍为Android 5.1.1或更早版本!我应该用这些扎根吗?
那些较旧的设备大多数都可以通过生根应用程序生根。因此,您可以。你应该?这取决于您的喜好。根访问权限授予了操作系统中所有内容的权力,而通过根访问权限,通常甚至无需花费一微秒的时间即可确保设备不会再次启动。生根的应用程序很可能不会这样做,但是,它们可以。同样,使用root用户,应用程序可以访问您的设备所做的一切,以及它存储在内存中的所有内容,包括您的信用卡信息,密码等。如果这听起来对您构成严重的隐私威胁,请不要使用root应用程序。如果您不在乎,可以尝试一下。
如果您足够精明,则这些根应用程序几乎会使用所有漏洞利用源。您可以尝试通过CVEID进行搜索,在Git中查找它们,编译并运行它们并尝试获取root shell,然后您就可以自己安装su
二进制文件和其他依赖项。
另外,KingoRoot还因将高度敏感的数据(例如IMEI和序列号)发送到其服务器而闻名。他们可能永远不会使用它们,但这最终是您的决定。而且KingRoot以在其SDK中安装后门而闻名,该后门允许某些应用程序获得用户未授权的root访问。
结论
扎根应用程序的时代已经过去了。生根的应用程序不再起作用,如果您在较新的Android版本上使用它们,则可能会导致设备软砖化并可能丢失所有数据。如果您在受支持的Android版本上使用它们,则大多数时候都可以使用它们,但是在继续操作之前,您应该考虑隐私和安全方面的问题。
我希望我的研究能对将来遇到与我相同的问题的人有所帮助。:)
VERIFIED / SECURE BOOT
:部分forum.xda-developers.com/android/general/...