我已经深入研究了Android设备的生根。我真的很想知道我致力于该过程之前每个步骤的情况。

我对superuser.apk和su文件的来源有些困惑。看起来它们不是正式的Google文件,而是由(随机)个人创建的文件。也就是说,这些文件有多安全?

通过研究,我对它们的用途有了一般的了解。我想知道是否有人知道这些文件(可执行文件?脚本?),它们包含什么以及它们通常如何工作。

谢谢!

评论

相关:Magisk的工作原理?

#1 楼

su(切换用户的缩写)是二进制可执行文件。 Android和其他基于* nix的系统使用它来允许进程更改与其关联的用户帐户。从生根的角度来看很重要的原因是,没有任何其他参数的su将切换到root用户,这意味着需要具有root权限才能实现其功能的进程需要调用su(因为默认情况下它们不是由root运行)。 br />
Superuser是一个Android应用程序(.apk是一个Android应用程序包)。它充当su二进制文件的一种“关守”。尝试调用su的应用程序将被迫通过超级用户进行路由,然后该超级用户将提示用户该应用程序是未知的还是新应用程序。然后,用户可以选择批准或拒绝对su的访问,还可以选择让超级用户记住他们的决定,以便它可以自动将该决定应用于该应用程序的后续呼叫。这样,唯一被授予root权限的应用程序就是用户选择的应用程序。

两个应用程序的源都可以在Github上找到,任何希望查看的人都可以对其进行检查/审核。它(超级用户在这里,su在这里)。

您可以在超级用户的网站上找到更多详细信息以及变更日志。

Android发烧友的其他相关问题:


“ root”用户访问/帐户的工作原理是什么?植根后,所有应用程序都可以在我的手机上以root身份运行吗?
植根Android手机有哪些安全缺点? br />

评论


我非常感谢详细的回复和链接!谢谢!

–kaspnord
2012年1月22日5:57

为了扎根Android的目的,这些文件是否有替代品/等效产品?

–kaspnord
2012年1月22日在7:28

@kaspnord:不,su是用于其他linux / unix操作系统的文件,没有替代品,但是superuser.apk可能有。为什么要替代?

–雷米
2012年1月22日13:10

我只是很好奇,因为这些文件尽管受到开源社区的青睐,但似乎没有任何标准(即非官方的Google)。因此,这使我认为其他人可以创建同一文件的其他变体。就我个人而言,我想确切地知道我正在使用什么并将其放入设备中,而不是依靠其他人的解决方案,而我无法100%地确定文件中包含什么。

–kaspnord
2012年1月23日在1:19



#2 楼

超级用户的源代码在github上可用,超级用户的主要作者是Adam Shanks(ChainsDD)和Koushik Dutta(koush,也是Clockwork Recovery的作者)。

Koushik Dutta在他的博客中解释了Superuser.apk的工作方式;请注意,该帖子出自Superuser应用程序的最早版本,此后发生了很多变化,其中一些内容已不再适用于现代的superuser / su实现,但基本知识应相同。

当然可以将su和Superuser替换为替代品,但是由于su使用的功能(即exec()和setuid()系统调用)可用于任何可执行文件,因此它并不能真正起到很大作用,因为可执行文件具有适当的权限位(即setuid位设置为root)。 su的核心是一个非常简单的程序,它只是以另一个用户的身份生成一个进程。真正的安全检查是由内核完成的。不用担心,它们是开源的并且安全的,您可以在github上亲自验证源代码。但是,肯定有可能获得特洛伊木马程序的超级用户/ su二进制文件,因此请确保无论您在哪里获得超级用户/ su二进制文件都是值得信赖的(如果您确实偏执,请自己编译su / superuser)。