【问题标题】:How to compile AOSP with superuser如何使用超级用户编译 AOSP
【发布时间】:2015-02-03 05:23:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android android-emulator android-source


    【解决方案1】:

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

    我对 Android 的显示系统不熟悉,但如果您只是想尝试一下,我建议您按照以下步骤操作。

    1. 您需要找出运行代码的进程 ID。
    2. 分配给inet组的这个进程gid。

    【讨论】:

    • 我们最终采用了另一种方式。但这种方式仍然有意义,有助于解释我们遇到的一些问题。谢谢!
    【解决方案2】:

    现在当我运行 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() 调用相同。 :-)

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多