为什么生根的应用程序不再起作用?


10

几年前,对任何设备进行植根都是很容易的:安装KingRoot,KingoRoot或类似的应用程序,按下大型ROOT按钮,然后进行其余操作。5分钟左右后,绿色的“根成功!” 提示会弹出,我们可以选择保留根应用程序,或者将其卸载并安装干净的根管理器应用程序,例如SuperSU / Superuser。

它们如何工作?他们为什么不工作了?如果它们有效,我是否应该使用它们?


2
这可能是有帮助的,特别是VERIFIED / SECURE BOOT:部分forum.xda-developers.com/android/general/...
伊尔凡·拉蒂夫

Answers:


16

几个月前我遇到了这个问题,我通过一些研究找到了这个答案,因此我考虑通过在线考虑虚假信息来回答我的问题,从而在此站点上分享我的研究。(例如,官方的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免受病毒和未经授权的修改。它就像硬件和软件链一样工作,其中每个部分都会验证下一部分。分步进行:

  1. 打开设备电源后,硬件功能(有时称为Boot ROM)启动。Boot ROM已刻录到硬件中,无法更改。
  2. 引导ROM验证CoT中的第一个软件,即引导加载程序,它是原始二进制Blob,有时也称为预加载程序。(另外,Boot ROM有时会加载并使用特殊的自定义分区/二进制文件,具体取决于供应商)。如果Bootloader未通过验证,则设备将关闭。如果通过,则引导ROM将运行引导加载程序。
  3. 引导加载程序会检查引导ROM传递给它的选项,然后选择适当的引导模式。几乎所有设备上都存在的常规启动模式是正常的Android启动,恢复和快速启动/下载。

如果引导加载程序已锁定,则它将验证要运行的CoT的下一部分是否完整,如果是,则引导加载程序将运行它。如果不是,则根据设备型号,它可能会关闭,重新引导或陷入特殊的引导加载程序模式。

如果引导加载程序已解锁,它不会验证CoT的下一部分,而是直接加载它。

  1. 下一部分称为启动分区。它处理引导系统本身的方式。在高于6.0.0(Lollipop)或更高版本的Android版本中,它还会验证系统是否完好无损,如果已修改,则它会关闭。

首先,这些根应用程序利用漏洞来修改/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版本上使用它们,则大多数时候都可以使用它们,但是在继续操作之前,您应该考虑隐私和安全方面的问题。

我希望我的研究能对将来遇到与我相同的问题的人有所帮助。:)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.