Android AOSP 如何 incl/excl 来自特定构建的模块

Android AOSP how to incl/excl modules from specific build

我下载了 Pixel XL (android-8.0.0_r3) 的 AOSP 源代码,lunch aosp_marlin-userdebug 构建正常。

我了解到 Pixel XL 使用的是 system/nfc/halimpl/pn54x 中的 NFC 芯片组 PN54X。困扰我的是 system/nfc/halimpl 下有 bcm2079Xpn54x 2 个不同的模块,在源代码中指示 pn54x 的 Android.mk 包含在 aosp_marlin-userdebug 构建中但不包含 bcm2079X?如果我想从构建中删除 pn54x 并包含 bcm2079X 我该怎么做?


如果仔细查看system/nfc/Android.bp,您会发现包含halimpl/bcm2079x/nfc_nci.c。不过,pn54x里面还有一个nfc_nci.c。当我尝试将错误注入每个文件然后构建时,我注意到 halimpl/bcm2079x/nfc_nci.c 没有报告错误,这意味着该文件实际上被构建忽略了。但是怎么办?

更新:您可以在 device/ directory. You can try to add the module somewhere in /device/generic/x86_64/mini_x86_64.mk or /device/generic/armv7-a-neon/mini_common.mk 中添加或删除模块(确保您选择了正确的午餐)。您甚至可以创建自己的设备并使用构建所需的所有模块创建 device.mk

bcm2079x模块没有被忽略,直接包含在system/nfc/Android.bp文件中。

要排除 pn54x 模块,您可以 rename/remove 一个 Android.mk 文件,看看会发生什么。

如果您想创建自己的命令来构建具有不同模块的特定 AOSP,例如lunch aosp_marlin_custom-userdebug,您需要添加自己的设备。您可以找到操作方法 here.

我宁愿post这是一条评论,但我做不到。

答案在AOSP\device\google\marlin\device-marlin.mk nfc 模块包含在.mk 文件中:

# NFC packages
PRODUCT_PACKAGES += \
    nfc_nci.marlin

模块名称必须遵循 AOSP\src\system\nfc\halimpl\pn54x\Android.mk (android.mk) 中的名称:

LOCAL_MODULE := nfc_nci.$(TARGET_DEVICE)

要删除或添加 nfc 模块,您必须相应地修改设备-marlin.mk。