From 1ecc925995ce8d8a78010ec0d97ce0b9a731a875 Mon Sep 17 00:00:00 2001 From: Dario Freni Date: Fri, 13 Jul 2018 16:44:28 +0100 Subject: [PATCH] Run appcompat on all /product modules. The output of the appcompat tool is store on $(PRODUCT_OUT)/appcompat. Bug: 110073830 Bug: 78924201 Test: m Change-Id: Ia77cc53fc241a048958cf243ba298298f800f933 --- core/definitions.mk | 11 +++++++++++ core/package_internal.mk | 8 ++++++++ core/prebuilt_internal.mk | 8 ++++++++ 3 files changed, 27 insertions(+) diff --git a/core/definitions.mk b/core/definitions.mk index 1bdbf10170..7108e0903c 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2557,6 +2557,17 @@ $(hide) \ mv $@.compressed $@; endef +ifeq ($(HOST_OS),linux) +# Runs appcompat and store logs in $(PRODUCT_OUT)/appcompat +define run-appcompat +$(hide) \ + mkdir -p $(PRODUCT_OUT)/appcompat; \ + art/tools/veridex/appcompat.sh --dex-file=$@ 2>&1 > $(PRODUCT_OUT)/appcompat/$(PRIVATE_MODULE).log; +endef +else +run-appcompat = +endif + # Remove dynamic timestamps from packages # define remove-timestamps-from-package diff --git a/core/package_internal.mk b/core/package_internal.mk index 637a13564e..6489f0422b 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -590,6 +590,10 @@ else endif endif +ifdef LOCAL_PRODUCT_MODULE +$(LOCAL_BUILT_MODULE) : $(call intermediates-dir-for,PACKAGING,veridex,HOST)/veridex.zip +endif + $(LOCAL_BUILT_MODULE): PRIVATE_DONT_DELETE_JAR_DIRS := $(LOCAL_DONT_DELETE_JAR_DIRS) $(LOCAL_BUILT_MODULE): PRIVATE_RESOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/resources $(LOCAL_BUILT_MODULE): PRIVATE_FULL_CLASSES_JAR := $(full_classes_jar) @@ -630,6 +634,10 @@ ifeq (true, $(LOCAL_UNCOMPRESS_DEX)) @# No need to align, sign-package below will do it. $(uncompress-dexs) endif +# Run appcompat before stripping the classes.dex file. +ifdef LOCAL_PRODUCT_MODULE + $(run-appcompat) +endif # LOCAL_PRODUCT_MODULE ifdef LOCAL_DEX_PREOPT ifneq ($(BUILD_PLATFORM_ZIP),) @# Keep a copy of apk with classes.dex unstripped diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index 94c2dcd201..2e6cb2216d 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -376,6 +376,10 @@ ifdef LOCAL_COMPRESSED_MODULE $(built_module) : $(MINIGZIP) endif +ifdef LOCAL_PRODUCT_MODULE +$(built_module) : $(call intermediates-dir-for,PACKAGING,veridex,HOST)/veridex.zip +endif + $(built_module) : $(my_prebuilt_src_file) | $(ZIPALIGN) $(SIGNAPK_JAR) $(transform-prebuilt-to-target) $(uncompress-shared-libs) @@ -390,6 +394,10 @@ endif # BUILD_PLATFORM_ZIP endif # LOCAL_DEX_PREOPT ifneq ($(LOCAL_CERTIFICATE),PRESIGNED) @# Only strip out files if we can re-sign the package. +# Run appcompat before stripping the classes.dex file. +ifdef LOCAL_PRODUCT_MODULE + $(run-appcompat) +endif # LOCAL_PRODUCT_MODULE ifdef LOCAL_DEX_PREOPT ifneq (nostripping,$(LOCAL_DEX_PREOPT)) $(call dexpreopt-remove-classes.dex,$@)