android - 如何使用 super 用户编译 AOSP

标签 android android-emulator android-source

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

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

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

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

最佳答案

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

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

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

关于android - 如何使用 super 用户编译 AOSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313439/

相关文章:

java - 如何使用包从 flutter 中的图像读取 QR 码?

android - 如何在不构建所有 Android 的情况下构建 AOSP 应用程序?

java - Android - 无法在模拟器上获取 gps 位置

android - 一个简单的相对布局,与父级右对齐不起作用

安卓蓝牙-源代码

Android.bp 文件中的 Android R sdk_version 问题

java - 未找到 ID 为 'com.google.gms.google-services' 的插件。 [ 安卓 ]

android - 通过 Android 的 AccountManager 类进行 Twitter 身份验证

即使在更改 targetSdkVersion 后,Android Studio 也无法识别包

android - 如何在 Android 模拟器中启用 VPN 支持