为AOSP创建特定的设备树

时间:2015-07-19 20:10:46

标签: android android-source

我按照谷歌的官方教程建立了我自己的AOSP并成功完成了所有步骤:我在nexus模拟器上运行了“纯AOSP版本”。 https://source.android.com/source/building.html

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

  1. 是否正常工作只需将我的本地上方主分支正确文件添加到/device/vendor/model,然后在主分支的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中看到的是每个开发人员根据自己的原因添加的这套+自定义附加内容。

  3. 后果如何确定构建名称&amp; Buildtype to exucte $ lunch <Build name>-<Buildtype >

  4. 如何整合$ make otapackage以构建熟悉的一个zip文件,以便像CWM一样通过恢复加载?

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

1 个答案:

答案 0 :(得分:1)

  1. 将新设备添加到AOSP的过程: 首先,设备定义应放在设备/供应商/模型路径中。然后添加带有COMMON_LUNCH_CHOICES的AndroidProducts.mk文件,该文件指定AOSP的名称和构建类型(英语,用户调试,发行版)和PRODUCT_MAKEFILES,该文件应指向您的主设备makefile。

  2. 设备/供应商/型号的内容: 设备/供应商/模型包含设备本身的核心配置,例如蓝牙配置,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签名目标文件.zip签名-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.如何为您工作。 原始答案似乎基于Google提供的不良文档。当涉及到AOSP时,必须有经验,文档永远不够