【问题标题】:Create specific device tree for AOSP为 AOSP 创建特定的设备树
【发布时间】:2015-10-08 22:12:05
【问题描述】:

我按照 Google 的官方教程构建了我自己的 AOSP,并且在所有步骤中都成功了:我有一个在 nexus 模拟器上运行的“纯 AOSP 版本”。 https://source.android.com/source/building.html

故事是我有一些罕见的设备带有一些预装应用程序的 Android 版本,显然我不想要。我想将 Pure AOSP 移植到我的设备 - 没有任何改进或新功能(例如,我不想知道如何构建 CM git repo)。

  1. 只需将正确的文件添加到我的本地 master 分支到 /device/vendor/model 然后在 master 分支的 cwd 下执行 $ . build/envsetup.sh 就可以了吗?

  2. 如果是这样,我需要将哪些文件及其内容放在/device/vendor/model 下?我发现了很多指南如何提取已经存在的 CM 或其他东西(http://xda-university.com/as-a-developer/porting-aosp-roms-using-source-code),包括这个Android device configuration for AOSP,并查看了几个设备的一些 git repo,我试图找出最小的完整文件集和他们的内容,但我没有找到相关性。我认为必须有最小完整集,并且每个文件的存在都有编程原因。我在现有的 git repo 中看到的是每个开发人员出于自己的原因添加的这个 set + custom extras。

  3. 后果如何确定要执行的构建名称和构建类型$ lunch <Build name>-<Buildtype >

  4. 如何集成$ make otapackage 以构建熟悉的压缩文件以像CWM 一样通过恢复加载?

这是我之前的帖子:Porting AOSP to specific hardware device,但这里的问题更具体。

【问题讨论】:

  • 你的设备是什么?您将需要供应商 blob、内核和设备树。一些手机制造商(如 LG)在线提供内核源代码,而另一些则可能不提供。那么,您的“稀有”Android 设备的型号和/或代号是什么?如果您没有内核源代码,您可能无法做到这一点。如果您无法获得内核源代码,并且您愿意冒一点风险,那么有些人已经成功地使用具有工作内核源代码的最近设备对其进行了测试。让我知道。我是 VanirAOSP 的成员,如果可能的话,我可以为您提供帮助。
  • @SudoSURoot 谢谢! 1. 那么U R基本上说我的方法是错误的-仅配置一些make文件是不够的,而且我还需要在内核中实际编写一些更改代码? 2. 之后-我需要替换 AOSP 的内核文件并与新的 make 文件(“设备树”)一起编译吗? 3.我说的是“小米红米2”-它是新的所以不是CM,我不喜欢miui。谢谢!
  • 向上,我很好奇,我也想要一些答案:)
  • @Tofandel 基本上有赏金机制...
  • 有什么新东西吗?我也面临着类似的困境

标签: android android-source


【解决方案1】:
  1. 向 AOSP 添加新设备的过程: 首先,设备定义应该放在 device/vendor/model 路径中。然后你应该添加带有 COMMON_LUNCH_CHOICES 的 AndroidProducts.mk 文件,它指定你的 AOSP 的名称和构建类型(Eng,userdebug,release)和 PRODUCT_MAKEFILES,它应该指向你的主设备 makefile。

  2. 设备/供应商/型号的用途: device/vendor/model 包含设备本身的核心配置,例如蓝牙配置、audio_policy 配置、wpa_supplicant 配置、设备树、预构建的硬件固件或用于启动或恢复的预构建映像。它还包含框架覆盖,您可以配置一些框架参数,例如决定您的 android 应该有一个导航栏或您想要什么类型的状态栏。它还包含 SELinux 策略,您可以为不同的进程制定规则,定义新的上下文,甚至禁止某些进程运行或访问某些资源。最后它包含 makefile,您可以包含您需要的包 AOSP (aosp.mk) 或您的设备配置 (BoardConfig.mk) 例如什么是 cpu 架构、gpu 驱动程序名称或是否应该使用硬件作曲家或您的系统是否有 wifi、蓝牙以及是否有所需驱动程序的地址和名称。此外,我们还有 init(如果您想为 android 启动过程添加一些额外的更改)、fstab(描述 android 分区以及应该如何挂载它们)和 ueventd 以及一些应该在此目录中的 udev 规则。

  3. 看看数字 1。

  4. 对于 OTA 更新包,首先您需要生成必需的密钥,这对于生成 OTA 更新的 zip 至关重要。如果你现在开始,我建议你使用fastboot。但如果你愿意,我会放一个链接,显示如何加密所需的包。加密完成后,您可以通过以下命令生成 OTA 映像:

    img_from_target_files signed-target-files.zip signed-img.zip

OTA更新指南:https://source.android.com/devices/tech/ota/sign_builds

  1. 我想你要找的不是OTA包,而是如何形成统一的zip。 OTA 软件包将在系统安装一次后进行更改。我的 OTA 包有大约 500mb 的文件(有效负载)等。这是完整更新。增量更新要小得多。但是,当我构建一个可闪存包时,我会得到大约 2.6gb 的文件。闪烁因设备而异。 QCom (Qualcomm) 需要 QFil 工具来刷写整个系统。或者您通过 fastboot 刷新单个图像。所以我不知道 4. 如何为你工作。 看起来原来的答案是基于谷歌糟糕的文档。谈到 AOSP,经验是必须的,文档永远不够

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多