forked from openkylin/platform_build
Merge changes from topics "hiddenapi-soong", "hostdex_install" am: d61a1aba36
am: 9cfe03b9d5
am: b1e0d646e6
Change-Id: Ib2b539012d410a54489e2845c2d7707c1fec42e7
This commit is contained in:
commit
748e839bdf
|
@ -726,8 +726,6 @@ BRILLO_UPDATE_PAYLOAD := $(HOST_OUT_EXECUTABLES)/brillo_update_payload
|
|||
|
||||
DEXDUMP := $(HOST_OUT_EXECUTABLES)/dexdump2$(BUILD_EXECUTABLE_SUFFIX)
|
||||
PROFMAN := $(HOST_OUT_EXECUTABLES)/profman
|
||||
HIDDENAPI := $(HOST_OUT_EXECUTABLES)/hiddenapi
|
||||
CLASS2GREYLIST := $(HOST_OUT_EXECUTABLES)/class2greylist
|
||||
|
||||
FINDBUGS_DIR := external/owasp/sanitizer/tools/findbugs/bin
|
||||
FINDBUGS := $(FINDBUGS_DIR)/findbugs
|
||||
|
|
|
@ -2714,29 +2714,6 @@ $(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): \
|
|||
endif
|
||||
endef
|
||||
|
||||
# File names for intermediate dex files of `hiddenapi-copy-soong-jar`.
|
||||
hiddenapi-soong-input-dex = $(dir $(1))/hiddenapi/dex-input/classes.dex
|
||||
hiddenapi-soong-output-dex = $(dir $(1))/hiddenapi/dex-output/classes.dex
|
||||
|
||||
# Decompress a JAR with dex files, invoke $(HIDDENAPI) on them and compress again.
|
||||
define hiddenapi-copy-soong-jar
|
||||
$(call hiddenapi-soong-input-dex,$(2)): $(1)
|
||||
@rm -rf `dirname $$@`
|
||||
@mkdir -p `dirname $$@`
|
||||
unzip -o -q $(1) 'classes*.dex' -d `dirname $$@`
|
||||
find `dirname $$@` -maxdepth 1 -name 'classes*.dex' | xargs touch
|
||||
|
||||
$(call hiddenapi-copy-dex-files,\
|
||||
$(call hiddenapi-soong-input-dex,$(2)),\
|
||||
$(call hiddenapi-soong-output-dex,$(2)))
|
||||
|
||||
$(2): OUTPUT_DIR := $(dir $(call hiddenapi-soong-output-dex,$(2)))
|
||||
$(2): OUTPUT_JAR := $(dir $(call hiddenapi-soong-output-dex,$(2)))classes.jar
|
||||
$(2): $(1) $(call hiddenapi-soong-output-dex,$(2)) | $(SOONG_ZIP) $(MERGE_ZIPS)
|
||||
$(SOONG_ZIP) -o $${OUTPUT_JAR} -C $${OUTPUT_DIR} -f "$${OUTPUT_DIR}/classes*.dex"
|
||||
$(MERGE_ZIPS) -D -zipToNotStrip $${OUTPUT_JAR} -stripFile "classes*.dex" $(2) $${OUTPUT_JAR} $(1)
|
||||
endef
|
||||
|
||||
|
||||
###########################################################
|
||||
## Commands to call R8
|
||||
|
|
|
@ -61,7 +61,10 @@ ifdef PRODUCT_HIDDENAPI_STUBS_TEST
|
|||
endif
|
||||
|
||||
# Singleton rule which applies $(HIDDENAPI) on all boot class path dex files.
|
||||
# Inputs are filled with `hiddenapi-copy-dex-files` rules.
|
||||
# Additional inputs are filled with `hiddenapi-copy-dex-files` rules.
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): $(SOONG_HIDDENAPI_DEX_INPUTS)
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): PRIVATE_DEX_INPUTS := $(SOONG_HIDDENAPI_DEX_INPUTS)
|
||||
|
||||
.KATI_RESTAT: \
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST)
|
||||
|
@ -83,7 +86,12 @@ $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): $(HIDDENAPI) $(HIDDENAPI_STUBS) \
|
|||
$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST))
|
||||
$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST))
|
||||
|
||||
|
||||
# Inputs to singleton rules located in frameworks/base
|
||||
# Additional inputs are filled with `hiddenapi-generate-csv`
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS): $(SOONG_HIDDENAPI_FLAGS)
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS): PRIVATE_FLAGS_INPUTS := $(SOONG_HIDDENAPI_FLAGS)
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): $(SOONG_HIDDENAPI_GREYLIST_METADATA)
|
||||
$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): PRIVATE_METADATA_INPUTS := $(SOONG_HIDDENAPI_GREYLIST_METADATA)
|
||||
|
||||
ifeq ($(PRODUCT_DIST_BOOT_AND_SYSTEM_JARS),true)
|
||||
boot_profile_jars_zip := $(PRODUCT_OUT)/boot_profile_jars.zip
|
||||
|
|
|
@ -27,51 +27,18 @@ full_classes_jar := $(intermediates.COMMON)/classes.jar
|
|||
full_classes_pre_proguard_jar := $(intermediates.COMMON)/classes-pre-proguard.jar
|
||||
full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar)))
|
||||
ifdef LOCAL_SOONG_CLASSES_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar)))
|
||||
$(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(full_classes_jar)))
|
||||
|
||||
ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR),\
|
||||
$(intermediates.COMMON)/jacoco-report-classes.jar))
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||
$(intermediates.COMMON)/jacoco-report-classes.jar)
|
||||
endif
|
||||
|
||||
ifdef LOCAL_SOONG_PROGUARD_DICT
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||
$(intermediates.COMMON)/proguard_dictionary))
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||
$(intermediates.COMMON)/proguard_dictionary)
|
||||
endif
|
||||
|
||||
ifneq ($(TURBINE_ENABLED),false)
|
||||
ifdef LOCAL_SOONG_HEADER_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar)))
|
||||
else
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar)))
|
||||
endif
|
||||
endif # TURBINE_ENABLED != false
|
||||
|
||||
|
||||
ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
||||
resource_export_package := $(intermediates.COMMON)/package-export.apk
|
||||
resource_export_stamp := $(intermediates.COMMON)/src/R.stamp
|
||||
|
||||
$(resource_export_package): PRIVATE_STAMP := $(resource_export_stamp)
|
||||
$(resource_export_package): .KATI_IMPLICIT_OUTPUTS := $(resource_export_stamp)
|
||||
$(resource_export_package): $(LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE)
|
||||
@echo "Copy: $$@"
|
||||
$(copy-file-to-target)
|
||||
touch $(PRIVATE_STAMP)
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),$(resource_export_package))
|
||||
|
||||
endif # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
||||
|
||||
java-dex: $(LOCAL_SOONG_DEX_JAR)
|
||||
|
||||
|
||||
ifneq ($(BUILD_PLATFORM_ZIP),)
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(dir $(LOCAL_BUILT_MODULE))package.dex.apk))
|
||||
ifneq ($(TURBINE_ENABLED),false)
|
||||
ifdef LOCAL_SOONG_HEADER_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar)))
|
||||
else
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar)))
|
||||
endif
|
||||
endif # TURBINE_ENABLED != false
|
||||
endif
|
||||
|
||||
# Run veridex on product, product_services and vendor modules.
|
||||
|
@ -97,6 +64,41 @@ else
|
|||
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_BUILT_MODULE)))
|
||||
endif
|
||||
|
||||
ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR),\
|
||||
$(intermediates.COMMON)/jacoco-report-classes.jar))
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||
$(intermediates.COMMON)/jacoco-report-classes.jar)
|
||||
endif
|
||||
|
||||
ifdef LOCAL_SOONG_PROGUARD_DICT
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||
$(intermediates.COMMON)/proguard_dictionary))
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||
$(intermediates.COMMON)/proguard_dictionary)
|
||||
endif
|
||||
|
||||
ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
||||
resource_export_package := $(intermediates.COMMON)/package-export.apk
|
||||
resource_export_stamp := $(intermediates.COMMON)/src/R.stamp
|
||||
|
||||
$(resource_export_package): PRIVATE_STAMP := $(resource_export_stamp)
|
||||
$(resource_export_package): .KATI_IMPLICIT_OUTPUTS := $(resource_export_stamp)
|
||||
$(resource_export_package): $(LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE)
|
||||
@echo "Copy: $$@"
|
||||
$(copy-file-to-target)
|
||||
touch $(PRIVATE_STAMP)
|
||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),$(resource_export_package))
|
||||
|
||||
endif # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
||||
|
||||
java-dex: $(LOCAL_SOONG_DEX_JAR)
|
||||
|
||||
|
||||
ifneq ($(BUILD_PLATFORM_ZIP),)
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(dir $(LOCAL_BUILT_MODULE))package.dex.apk))
|
||||
endif
|
||||
|
||||
my_built_installed := $(foreach f,$(LOCAL_SOONG_BUILT_INSTALLED),\
|
||||
$(call word-colon,1,$(f)):$(PRODUCT_OUT)$(call word-colon,2,$(f)))
|
||||
my_installed := $(call copy-many-files, $(my_built_installed))
|
||||
|
|
|
@ -152,6 +152,10 @@ $(call add_json_list, ManifestPackageNameOverrides, $(PRODUCT_MANIFEST_PACK
|
|||
$(call add_json_bool, EnforceSystemCertificate, $(ENFORCE_SYSTEM_CERTIFICATE))
|
||||
$(call add_json_list, EnforceSystemCertificateWhitelist, $(ENFORCE_SYSTEM_CERTIFICATE_WHITELIST))
|
||||
|
||||
$(call add_json_str, HiddenAPIPublicList, $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST))
|
||||
$(call add_json_str, HiddenAPIFlags, $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS))
|
||||
$(call add_json_list, HiddenAPIExtraAppUsageJars, $(HIDDENAPI_EXTRA_APP_USAGE_JARS))
|
||||
|
||||
$(call add_json_map, VendorVars)
|
||||
$(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\
|
||||
$(call add_json_map, $(namespace))\
|
||||
|
|
|
@ -24,8 +24,21 @@ common_javalib.jar := $(intermediates.COMMON)/javalib.jar
|
|||
hiddenapi_flags_csv := $(intermediates.COMMON)/hiddenapi/flags.csv
|
||||
hiddenapi_metadata_csv := $(intermediates.COMMON)/hiddenapi/greylist.csv
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar)))
|
||||
ifdef LOCAL_SOONG_CLASSES_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar)))
|
||||
$(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(full_classes_jar)))
|
||||
|
||||
ifneq ($(TURBINE_ENABLED),false)
|
||||
ifdef LOCAL_SOONG_HEADER_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar)))
|
||||
else
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar)))
|
||||
endif
|
||||
endif # TURBINE_ENABLED != false
|
||||
endif
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_BUILT_MODULE)))
|
||||
|
||||
ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR),\
|
||||
|
@ -64,75 +77,34 @@ ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
|||
$(call add-dependency,$(LOCAL_BUILT_MODULE),$(my_static_library_android_manifest))
|
||||
endif # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
|
||||
|
||||
ifneq ($(TURBINE_ENABLED),false)
|
||||
ifdef LOCAL_SOONG_HEADER_JAR
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar)))
|
||||
else
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar)))
|
||||
endif
|
||||
endif # TURBINE_ENABLED != false
|
||||
|
||||
|
||||
ifdef LOCAL_SOONG_DEX_JAR
|
||||
# Hidden API for boot jars
|
||||
ifndef LOCAL_IS_HOST_MODULE
|
||||
ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_BOOT_JARS)),) # is_boot_jar
|
||||
# Derive greylist from classes.jar.
|
||||
# We use full_classes_jar here, which is the post-proguard jar (on the basis that we also
|
||||
# have a full_classes_pre_proguard_jar). This is consistent with the equivalent code in
|
||||
# java.mk.
|
||||
$(eval $(call hiddenapi-generate-csv,$(full_classes_jar),$(hiddenapi_flags_csv),$(hiddenapi_metadata_csv)))
|
||||
$(eval $(call hiddenapi-copy-soong-jar,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
|
||||
endif
|
||||
ifeq (true,$(WITH_DEXPREOPT))
|
||||
# For libart, the boot jars' odex files are replaced by $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE).
|
||||
# We use this installed_odex trick to get boot.art installed.
|
||||
installed_odex := $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE)
|
||||
# Append the odex for the 2nd arch if we have one.
|
||||
installed_odex += $($(TARGET_2ND_ARCH_VAR_PREFIX)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE)
|
||||
ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex)
|
||||
# Make sure to install the .odex and .vdex when you run "make <module_name>"
|
||||
$(my_all_targets): $(installed_odex)
|
||||
endif
|
||||
endif # is_boot_jar
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
|
||||
$(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(common_javalib.jar)))
|
||||
$(eval $(call add-dependency,$(common_javalib.jar),$(full_classes_jar) $(full_classes_header_jar)))
|
||||
endif
|
||||
|
||||
ifneq ($(LOCAL_UNINSTALLABLE_MODULE),true)
|
||||
ifndef LOCAL_IS_HOST_MODULE
|
||||
ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_BOOT_JARS)),) # is_boot_jar
|
||||
ifeq (true,$(WITH_DEXPREOPT))
|
||||
# For libart, the boot jars' odex files are replaced by $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE).
|
||||
# We use this installed_odex trick to get boot.art installed.
|
||||
installed_odex := $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE)
|
||||
# Append the odex for the 2nd arch if we have one.
|
||||
installed_odex += $($(TARGET_2ND_ARCH_VAR_PREFIX)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE)
|
||||
ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex)
|
||||
# Make sure to install the .odex and .vdex when you run "make <module_name>"
|
||||
$(my_all_targets): $(installed_odex)
|
||||
endif
|
||||
else # !is_boot_jar
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
|
||||
endif # is_boot_jar
|
||||
$(eval $(call add-dependency,$(common_javalib.jar),$(full_classes_jar) $(full_classes_header_jar)))
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_BUILT_MODULE)))
|
||||
$(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(common_javalib.jar)))
|
||||
else # LOCAL_IS_HOST_MODULE
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(LOCAL_BUILT_MODULE)))
|
||||
$(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(full_classes_jar) $(full_classes_header_jar)))
|
||||
endif
|
||||
|
||||
java-dex : $(LOCAL_BUILT_MODULE)
|
||||
else # LOCAL_UNINSTALLABLE_MODULE
|
||||
|
||||
ifneq ($(filter $(LOCAL_MODULE),$(HIDDENAPI_EXTRA_APP_USAGE_JARS)),)
|
||||
# Derive greylist from classes.jar.
|
||||
# We use full_classes_jar here, which is the post-proguard jar (on the basis that we also
|
||||
# have a full_classes_pre_proguard_jar). This is consistent with the equivalent code in
|
||||
# java.mk.
|
||||
$(eval $(call hiddenapi-generate-csv,$(full_classes_jar),$(hiddenapi_flags_csv),$(hiddenapi_metadata_csv)))
|
||||
endif
|
||||
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(LOCAL_BUILT_MODULE)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
|
||||
java-dex : $(common_javalib.jar)
|
||||
endif # LOCAL_UNINSTALLABLE_MODULE
|
||||
java-dex : $(LOCAL_BUILT_MODULE)
|
||||
else # LOCAL_SOONG_DEX_JAR
|
||||
ifndef LOCAL_UNINSTALLABLE_MODULE
|
||||
ifndef LOCAL_IS_HOST_MODULE
|
||||
$(call pretty-error,Installable device module must have LOCAL_SOONG_DEX_JAR set)
|
||||
endif
|
||||
endif
|
||||
$(eval $(call copy-one-file,$(full_classes_jar),$(LOCAL_BUILT_MODULE)))
|
||||
endif # LOCAL_SOONG_DEX_JAR
|
||||
|
||||
my_built_installed := $(foreach f,$(LOCAL_SOONG_BUILT_INSTALLED),\
|
||||
|
|
Loading…
Reference in New Issue