如何用超级用户编译AOSP

时间:2013-03-09 17:01:56

标签: android android-emulator android-source

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

我在这里问了一个类似的问题(Create a socket in android code(not in android application) getting Permission Denied)。我认为既然我已经走上正轨,现在知道我需要以超级用户身份编译代码,我应该问另一个问题。

我已根据第一个SO问题的说明将su二进制代码添加到我的AOSP代码中。我也改变了我的init.rc,但我觉得我需要做一些事情才能让这些改变也通过。在这个问题中没有谈到这一点。现在,当我运行make su-binary时,我得到“make:没有什么可以为'su-binary'做的。”我认为这里出了点问题。我正在使用m-ric指定的makefile。我也不确定我是否需要Superuser.apk,因为我没有使用Android应用程序中的代码。

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. 您需要找到代码运行的进程ID。
  2. 为此流程分配inet组的gid。

答案 1 :(得分:0)

  

现在我运行make su-binary   我得到“make:没有什么可以为'su-binary'做的。”

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

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