10

可能重复:su 是什么意思: process = Runtime.getRuntime().exec("su");

我厌倦了尝试所有不同的事情,但我仍然无法理解 su 什么时候可以工作。什么是在 Android 中生根设备?请有人帮我解决这个问题。

我回答了以下问题。我在那里发布的解决方案,我测试过并且它也有效。

为 android 中的图像文件添加完全权限。

这是我的问题:

我试过跟随。

复制苏。

安装 SuperUser.apk,

从我调用 su 的程序中,然后使用新创建的进程我执行了所需的操作。

这有 2 个结果。

1)当设备被root时(如在z4root中执行永久root选项),它起作用,它改变了系统文件的权限。

2)当设备没有root时,它不起作用。

请解释 z4root 执行了哪些额外的操作以使任务成为可能。请简要说明。

如果我的问题不清楚,请告诉我。万分感谢..

4

3 回答 3

23

z4root(或任何其他生根程序)运行一些漏洞以将其自己的 uid(用户 ID)更改为 0(root)。您可以将其视为执行某种 hack 并诱使内核认为它实际上有权成为 root(然后,如果 z4root 是一种病毒,它可以对您的手机执行所有操作,从安装键盘记录程序到将其变砖)。当然,如果有可能以这样的方式欺骗​​内核来给你 root 访问权限,那么它被认为是一个安全漏洞(任何应用程序都可以这样做并执行一些恶意操作)并且通常会在未来的内核更新中得到修复(这就是 z4root 可能不会如果你升级你的固件工作)。

当 z4root 将其 uid 设置为 0 时,它会执行以下操作:/system将分区重新挂载为可写(默认情况下它是只读的),复制 su 二进制文件、Superuser.apk 和busybox,然后重新挂载/system为只读。

那么当通常应用程序具有与父进程相同的 uid 时,su 二进制文件如何为您提供 root 访问权限而无需执行“黑客”操作?这是因为 su 二进制文件设置了set-uid标志并且始终以 uid 0 (root) 运行。

现在,如果您已将 su 二进制文件复制到,/system/bin那么您必须具有 root 访问权限,这意味着您只是忘记更改所有者/权限(chown root:root /system/bin/su; chmod 6755 /system/bin/su),但您仍然需要 root 访问权限才能执行此操作。

于 2012-04-09T21:27:11.943 回答
0

当您根植设备时,您会覆盖或修改 ROM 中的操作系统映像以授予您提升的权限。在用户模式下安装应用程序不可能让您在任何地方的任何版本的 Linux 中提升权限。如果任何用户都可以通过“复制 su”来使自己成为 root,那么就不会有安全之类的东西。

于 2012-04-05T11:55:35.437 回答
-1

我不确定你在问什么,但这似乎是一件简单的事情。您正试图成为“超级用户”,或以超级用户权限做事。只有在您拥有实际权限的情况下,您才能执行此操作,并且授予当前在您的设备上运行的用户帐户。通常你没有这个权利。

请记住,“超级用户”与“root”相同

  • 如果您“root”您的设备,则意味着您授予自己成为超级用户的权利。你可以做一些需要成为超级用户的事情:“su”是这些命令之一,因为它说“以超级用户身份登录”。您显然需要超级用户权限才能成为该用户。
  • 如果您尚未植根设备,则您无权执行超级用户可以执行的操作。所以打电话是su不行的。

root因此,只有拥有设备,您才能做事rooted

于 2012-04-05T11:56:18.017 回答