【问题标题】:Dynamically adding all apk's inside directory to AOSP system image将所有 apk 的内部目录动态添加到 AOSP 系统映像
【发布时间】:2018-01-10 02:21:47
【问题描述】:

我无法将一组预构建的 apk 添加到我的自定义 AOSP 构建中。我想要完成的是允许这些应用程序的开发人员简单地将它们放在源代码控制下的目录中,并且图像的下一个 CI 构建将只包含这些应用程序。我已经尝试使用下面的代码在 included_apks 目录中添加所有 apk,但它没有按预期工作。

define add_included_apks

    include $(CLEAR_VARS)

    LOCAL_MODULE := $(1:included_apks/%.apk=%)
    LOCAL_MODULE_TAGS := eng userdebug
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_SRC_FILES := $1
    LOCAL_CERTIFICATE := PRESIGNED

    include $(BUILD_PREBUILT)
endef

APKS := $(call find-subdir-subdir-files, included_apks, '*.apk')
$(foreach item, $(APKS), $(eval $(call add_included_apks, $(item))))

这种方法的问题似乎在于add_included_apks 函数内部以及它的评估方式。当我打印出$(1:included_apks/%.apk=%) 时,它是正确的值,但如果我打印出LOCAL_MODULE,它是在此循环之前设置的最后一个值,即使我正在调用include $(CLEAR_VARS)。最后该模块不包含在系统映像中。我是否误解了 foreach 调用在 make 文件中的工作方式?

编辑答案是正确的,但真正的 AOSP 错误是这样的:

LOCAL_MODULE_TAGS := eng userdebug 应为 LOCAL_MODULE_TAGS := eng debug 以包含在 userdebug 构建变体中。 make 语法对于我试图做的事情是正确的。

【问题讨论】:

标签: android makefile gnu-make android-source


【解决方案1】:

当你想在这样的定义中打印时,你必须用另一个 $ 转义 $。

define add_included_apks

    include $(CLEAR_VARS)

    LOCAL_MODULE := $(1:included_apks/%.apk=%)
    $$(error $$(LOCAL_MODULE))
    LOCAL_MODULE_TAGS := eng userdebug
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_SRC_FILES := $1
    LOCAL_CERTIFICATE := PRESIGNED

    include $(BUILD_PREBUILT)
endef

【讨论】:

  • 你是对的!在这样做之后,它正在打印我所期望的。因此,对于任何提出这个问题的人来说,实际错误是 LOCAL_MODULE_TAGS := eng userdebug,因为它应该是 LOCAL_MODULE_TAGS := eng debug 以包含在 userdebug 构建变体中。 make 语法对于我试图做的事情是正确的。谢谢@maschall
【解决方案2】:

'LOCAL_MODULE_TAGS := eng debug' 不会将其包含在用户构建中,而是包含在 eng 和 userdebug 中。如果您想将其包含在用户构建中。它必须是 'optional' 并且您的 device/.../BoardConfig.mk 必须将它们添加到:

PRODUCT_PACKAGES += your_local_module1 \
                your_local_module2 end so on...

【讨论】:

    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2020-12-02
    • 2020-03-31
    相关资源
    最近更新 更多