1

我想弄清楚如何用超级用户编译 AOSP。我被指出了这个问题: Build Android with Superuser。说明似乎有点不清楚,我也不明白到底发生了什么。它似乎也谈到了允许 su 对 android 应用程序的特权。我不是想在应用程序上得到这个。在主 android 源代码中运行一些代码时,我试图获得 root 访问权限(特别是试图在 DisplayDevice.cpp 中打开一个套接字)。

我在这里问了一个类似的问题(在 android 代码中创建一个套接字(不是在 android 应用程序中)得到 Permission Denied)。我想既然我走上了正确的轨道,现在知道我需要以超级用户身份编译代码,我应该再问一个问题。

我已按照第一个 SO 问题的说明将子二进制代码添加到我的 AOSP 代码中。我也更改了我的 init.rc,但我的印象是我需要做一些事情来完成这些更改。这在问题中没有谈到。现在,当我运行 make su-binary 时,我得到“make: Nothing to be done for `su-binary'。”。我认为这里出了点问题。我正在使用 m-ric 指定的 makefile。我也不确定是否需要 Superuser.apk,因为我没有使用 Android 应用程序中的代码。

如果有人能为我指出正确的方向,我将不胜感激。如果需要,我很乐意提供更多信息。

4

2 回答 2

1

实际上,我可以解释如何使用超级用户构建 Android,但我认为您不是为了您的任务而这样做的。问题是运行代码的进程DisplayDevice.cpp不属于inet组(通常gid = 3003)。

我不熟悉 Android 的显示系统,但如果您只想进行实验,我建议您执行以下步骤。

  1. 您需要找出运行代码的进程 ID。
  2. 分配给inet组的这个进程gid。
于 2013-03-11T12:54:28.783 回答
0

现在,当我运行 make su-binary 时,我得到“make: Nothing to be done for `su-binary'”。

可以在此处找到如何更改 su.c 的示例:https ://code.google.com/p/aosp4nexus5/wiki/AOSPforNexus5#Debugging_a_C_file

实际上只添加了日志,但它与更改 setgid() 和 setuid() 调用相同。:-)

于 2015-02-02T21:23:06.013 回答