Merge "Make soong_java_prebuilt.mk accept dex jars"
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 57ac23c..e7da560 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -660,6 +660,15 @@
endif
###########################################################
+# Ensure privileged applications always have LOCAL_PRIVILEGED_MODULE
+###########################################################
+ifndef LOCAL_PRIVILEGED_MODULE
+ ifneq (,$(filter $(TARGET_OUT_APPS_PRIVILEGED)/% $(TARGET_OUT_VENDOR_APPS_PRIVILEGED)/%,$(my_module_path)))
+ LOCAL_PRIVILEGED_MODULE := true
+ endif
+endif
+
+###########################################################
## NOTICE files
###########################################################
diff --git a/core/config.mk b/core/config.mk
index f74f5b4..6fdfd21 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -513,13 +513,13 @@
SIGNAPK_JNI_LIBRARY_PATH := $(HOST_OUT_SHARED_LIBRARIES)
ZIPALIGN := $(HOST_OUT_EXECUTABLES)/zipalign
- ifndef DX_ALT_JAR
- DX := $(HOST_OUT_EXECUTABLES)/dx
- DX_COMMAND := $(DX) -JXms16M -JXmx2048M
+ ifeq ($(USE_D8),true)
+ DX := $(HOST_OUT_EXECUTABLES)/d8
else
- DX := $(DX_ALT_JAR)
- DX_COMMAND := $(JAVA) -Xms16M -Xmx2048M -jar $(DX)
+ DX := $(HOST_OUT_EXECUTABLES)/dx
endif
+ DX_COMMAND := $(DX) -JXms16M -JXmx2048M
+
else # TARGET_BUILD_APPS || TARGET_BUILD_PDK
AIDL := $(prebuilt_sdk_tools_bin)/aidl
AAPT := $(prebuilt_sdk_tools_bin)/aapt
@@ -560,6 +560,7 @@
MAKEPARALLEL := $(prebuilt_build_tools_bin)/makeparallel
SOONG_JAVAC_WRAPPER := $(SOONG_HOST_OUT_EXECUTABLES)/soong_javac_wrapper
SOONG_ZIP := $(SOONG_HOST_OUT_EXECUTABLES)/soong_zip
+MERGE_ZIPS := $(SOONG_HOST_OUT_EXECUTABLES)/merge_zips
ZIP2ZIP := $(SOONG_HOST_OUT_EXECUTABLES)/zip2zip
ZIPTIME := $(prebuilt_build_tools_bin)/ziptime
diff --git a/core/definitions.mk b/core/definitions.mk
index ffeb663..a19fc24 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -2243,7 +2243,6 @@
$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR)
$(hide) mkdir -p $(dir $@)
$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR)
-$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES),$(PRIVATE_CLASS_INTERMEDIATES_DIR))
$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \
$(SOONG_JAVAC_WRAPPER) $(1) -encoding UTF-8 \
$(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \
@@ -2291,19 +2290,18 @@
@mkdir $(dir $@)/classes-turbine
$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \
$(JAVA) -jar $(TURBINE) \
- --output $@.tmp --temp_dir $(dir $@)/classes-turbine -$(PRIVATE_BOOTCLASSPATH) \
+ --output $@.premerged --temp_dir $(dir $@)/classes-turbine -$(PRIVATE_BOOTCLASSPATH) \
--sources \@$(PRIVATE_JAVA_SOURCE_LIST) \
--javacopts $(PRIVATE_JAVACFLAGS) $(COMMON_JDK_FLAGS) \
$(addprefix --classpath ,$(strip \
$(call normalize-path-list,$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES)))) \
|| ( rm -rf $(dir $@)/classes-turbine ; exit 41 ) \
fi
-$(hide) $(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_HEADER_LIBRARIES),$(dir $@)/classes-turbine)
-$(hide) if [ -s $@.tmp ] ; then \
- unzip -qo $@.tmp -d $(dir $@)/classes-turbine; rm -f $(dir $@)/classes-turbine/module-info.class; \
+$(hide) if [ -s $@.premerged ] ; then \
+ $(MERGE_ZIPS) -j -stripDir META-INF $@.tmp $@.premerged $(call reverse-list,$(PRIVATE_STATIC_JAVA_HEADER_LIBRARIES)) ; \
+else \
+ $(MERGE_ZIPS) -j -stripDir META-INF $@.tmp $(call reverse-list,$(PRIVATE_STATIC_JAVA_HEADER_LIBRARIES)) ; \
fi
-$(hide) $(if $(PRIVATE_DONT_DELETE_JAR_META_INF),,$(hide) rm -rf $(dir $@)/classes-turbine/META-INF)
-$(hide) $(JAR) -cf $@.tmp $(call jar-args-sorted-files-in-directory,$(dir $@)/classes-turbine)
$(hide) $(ZIPTIME) $@.tmp
$(hide) $(call commit-change-for-toc,$@)
endef
@@ -2717,6 +2715,18 @@
$(hide) $(ZIPTIME) $@
endef
+# Uncompress dex files embedded in an apk.
+#
+define uncompress-dexs
+$(hide) if (zipinfo $@ '*.dex' 2>/dev/null | grep -v ' stor ' >/dev/null) ; then \
+ rm -rf $(dir $@)uncompresseddexs && mkdir $(dir $@)uncompresseddexs; \
+ unzip $@ '*.dex' -d $(dir $@)uncompresseddexs && \
+ zip -d $@ '*.dex' && \
+ ( cd $(dir $@)uncompresseddexs && find . -type f | sort | zip -D -X -0 ../$(notdir $@) -@ ) && \
+ rm -rf $(dir $@)uncompresseddexs; \
+ fi
+endef
+
# Uncompress shared libraries embedded in an apk.
#
define uncompress-shared-libs
diff --git a/core/droiddoc.mk b/core/droiddoc.mk
index 2676b44..45b8af0 100644
--- a/core/droiddoc.mk
+++ b/core/droiddoc.mk
@@ -57,7 +57,6 @@
$(full_target): PRIVATE_BOOTCLASSPATH :=
full_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,\
$(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES)))
-full_java_lib_deps := $(full_java_libs)
else
@@ -83,7 +82,6 @@
LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
full_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH)
-full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH)
endif # !LOCAL_IS_HOST_MODULE
$(full_target): PRIVATE_CLASSPATH := $(call normalize-path-list,$(full_java_libs))
@@ -174,7 +172,7 @@
$(droiddoc_templates) \
$(droiddoc) \
$(html_dir_files) \
- $(full_java_lib_deps) \
+ $(full_java_libs) \
$(LOCAL_ADDITIONAL_DEPENDENCIES)
@echo Docs droiddoc: $(PRIVATE_OUT_DIR)
$(hide) mkdir -p $(dir $@)
@@ -226,7 +224,7 @@
$(full_target): PRIVATE_BOOTCLASSPATH_ARG := $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH))
endif
-$(full_target): $(full_src_files) $(full_java_lib_deps)
+$(full_target): $(full_src_files) $(full_java_libs)
@echo Docs javadoc: $(PRIVATE_OUT_DIR)
@mkdir -p $(dir $@)
$(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
diff --git a/core/envsetup.mk b/core/envsetup.mk
index db6ddd4..c99c70f 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -200,6 +200,14 @@
# Set up minimal BOOTCLASSPATH list of jars to build/execute
# java code with dalvikvm/art.
TARGET_CORE_JARS := core-oj core-libart conscrypt okhttp bouncycastle apache-xml
+ifeq ($(EMMA_INSTRUMENT),true)
+ ifneq ($(EMMA_INSTRUMENT_STATIC),true)
+ # For instrumented build, if Jacoco is not being included statically
+ # in instrumented packages then include Jacoco classes into the
+ # bootclasspath.
+ TARGET_CORE_JARS += jacocoagent
+ endif # EMMA_INSTRUMENT_STATIC
+endif # EMMA_INSTRUMENT
HOST_CORE_JARS := $(addsuffix -hostdex,$(TARGET_CORE_JARS))
#################################################################
diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk
index 37e9375..e42f499 100644
--- a/core/host_dalvik_java_library.mk
+++ b/core/host_dalvik_java_library.mk
@@ -46,6 +46,7 @@
full_classes_header_jarjar := $(intermediates.COMMON)/classes-header-jarjar.jar
full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar
+full_classes_combined_jar := $(intermediates.COMMON)/classes-combined.jar
full_classes_desugar_jar := $(intermediates.COMMON)/desugar.classes.jar
full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar
full_classes_jar := $(intermediates.COMMON)/classes.jar
@@ -57,6 +58,7 @@
LOCAL_INTERMEDIATE_TARGETS += \
$(full_classes_turbine_jar) \
$(full_classes_compiled_jar) \
+ $(full_classes_combined_jar) \
$(full_classes_desugar_jar) \
$(full_classes_jarjar_jar) \
$(full_classes_jack) \
@@ -110,7 +112,6 @@
$(java_source_list_file) \
$(java_sources_deps) \
$(full_java_header_libs) \
- $(full_static_java_libs) \
$(jar_manifest_file) \
$(annotation_processor_deps) \
$(NORMALIZE_PATH) \
@@ -128,7 +129,8 @@
$(NORMALIZE_PATH) \
$(JAR_ARGS) \
$(ZIPTIME) \
- | $(TURBINE)
+ | $(TURBINE) \
+ $(MERGE_ZIPS)
$(transform-java-to-header.jar)
.KATI_RESTAT: $(full_classes_turbine_jar)
@@ -145,14 +147,21 @@
$(eval $(call copy-one-file,$(full_classes_header_jarjar),$(full_classes_header_jar)))
+$(full_classes_combined_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
+$(full_classes_combined_jar): $(full_classes_compiled_jar) \
+ $(full_static_java_libs) | $(MERGE_ZIPS)
+ $(MERGE_ZIPS) -j \
+ $(if $(PRIVATE_DONT_DELETE_JAR_META_INF),,-stripDir META-INF -zipToNotStrip $<) \
+ $@ $< $(call reverse-list,$(PRIVATE_STATIC_JAVA_LIBRARIES))
+
# Run jarjar if necessary, otherwise just copy the file.
ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)
-$(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR)
+$(full_classes_jarjar_jar): $(full_classes_combined_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR)
@echo JarJar: $@
$(hide) $(JAVA) -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@
else
-full_classes_jarjar_jar := $(full_classes_compiled_jar)
+full_classes_jarjar_jar := $(full_classes_combined_jar)
endif
$(eval $(call copy-one-file,$(full_classes_jarjar_jar),$(full_classes_jar)))
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index adc30dd..55b6684 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -36,11 +36,13 @@
full_classes_jar := $(intermediates.COMMON)/classes.jar
java_source_list_file := $(intermediates.COMMON)/java-source-list
full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
+full_classes_combined_jar := $(intermediates.COMMON)/classes-combined.jar
LOCAL_INTERMEDIATE_TARGETS += \
$(full_classes_compiled_jar) \
$(full_classes_jarjar_jar) \
- $(java_source_list_file)
+ $(java_source_list_file) \
+ $(full_classes_combined_jar)
#######################################
include $(BUILD_SYSTEM)/base_rules.mk
@@ -79,7 +81,7 @@
$(full_classes_compiled_jar): \
$(java_source_list_file) \
$(java_sources_deps) \
- $(full_java_lib_deps) \
+ $(full_java_libs) \
$(jar_manifest_file) \
$(annotation_processor_deps) \
$(NORMALIZE_PATH) \
@@ -92,14 +94,18 @@
javac-check : $(full_classes_compiled_jar)
javac-check-$(LOCAL_MODULE) : $(full_classes_compiled_jar)
+$(full_classes_combined_jar): $(full_classes_compiled_jar) \
+ $(full_static_java_libs) | $(MERGE_ZIPS)
+ $(MERGE_ZIPS) -j -stripDir META-INF -zipToNotStrip $< $@ $< $(call reverse-list,$(PRIVATE_STATIC_JAVA_LIBRARIES))
+
# Run jarjar if necessary, otherwise just copy the file.
ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)
-$(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR)
+$(full_classes_jarjar_jar): $(full_classes_combined_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR)
@echo JarJar: $@
$(hide) $(JAVA) -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@
else
-full_classes_jarjar_jar := $(full_classes_compiled_jar)
+full_classes_jarjar_jar := $(full_classes_combined_jar)
endif
diff --git a/core/java.mk b/core/java.mk
index b2d3833..1e63d48 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -18,6 +18,19 @@
LOCAL_NO_STANDARD_LIBRARIES:=$(strip $(LOCAL_NO_STANDARD_LIBRARIES))
LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION))
+ifneq ($(LOCAL_MODULE),jacocoagent)
+ ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
+ ifeq ($(EMMA_INSTRUMENT),true)
+ ifneq ($(EMMA_INSTRUMENT_STATIC),true)
+ # For instrumented build, if Jacoco is not being included statically
+ # in instrumented packages then include Jacoco classes into the
+ # bootclasspath.
+ LOCAL_JAVA_LIBRARIES := jacocoagent $(LOCAL_JAVA_LIBRARIES)
+ endif # EMMA_INSTRUMENT_STATIC
+ endif # EMMA_INSTRUMENT
+ endif # !LOCAL_NO_STANDARD_LIBRARIES
+endif # LOCAL_MODULE == jacocoagent
+
ifneq ($(LOCAL_SDK_VERSION),)
ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
$(error $(LOCAL_PATH): Must not define both LOCAL_NO_STANDARD_LIBRARIES and LOCAL_SDK_VERSION)
@@ -122,6 +135,7 @@
jarjar_leaf := classes-jarjar.jar
full_classes_jarjar_jar := $(intermediates.COMMON)/$(jarjar_leaf)
full_classes_proguard_jar := $(intermediates.COMMON)/classes-proguard.jar
+full_classes_combined_jar := $(intermediates.COMMON)/classes-combined.jar
built_dex_intermediate := $(intermediates.COMMON)/$(built_dex_intermediate_leaf)/classes.dex
full_classes_stubs_jar := $(intermediates.COMMON)/stubs.jar
java_source_list_file := $(intermediates.COMMON)/java-source-list
@@ -147,6 +161,7 @@
$(full_classes_desugar_jar) \
$(full_classes_jarjar_jar) \
$(full_classes_jar) \
+ $(full_classes_combined_jar) \
$(full_classes_proguard_jar) \
$(built_dex_intermediate) \
$(full_classes_jack) \
@@ -461,7 +476,6 @@
$(java_source_list_file) \
$(java_sources_deps) \
$(full_java_header_libs) \
- $(full_static_java_libs) \
$(jar_manifest_file) \
$(layers_file) \
$(annotation_processor_deps) \
@@ -481,7 +495,8 @@
$(NORMALIZE_PATH) \
$(JAR_ARGS) \
$(ZIPTIME) \
- | $(TURBINE)
+ | $(TURBINE) \
+ $(MERGE_ZIPS)
$(transform-java-to-header.jar)
.KATI_RESTAT: $(full_classes_turbine_jar)
@@ -501,12 +516,19 @@
javac-check : $(full_classes_compiled_jar)
javac-check-$(LOCAL_MODULE) : $(full_classes_compiled_jar)
+$(full_classes_combined_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
+$(full_classes_combined_jar): $(full_classes_compiled_jar) \
+ $(full_static_java_libs) | $(MERGE_ZIPS)
+ $(MERGE_ZIPS) -j \
+ $(if $(PRIVATE_DONT_DELETE_JAR_META_INF),,-stripDir META-INF -zipToNotStrip $<) \
+ $@ $< $(call reverse-list,$(PRIVATE_STATIC_JAVA_LIBRARIES))
+
ifdef LOCAL_JAR_PROCESSOR
# LOCAL_JAR_PROCESSOR_ARGS must be evaluated here to set up the rule-local
# PRIVATE_JAR_PROCESSOR_ARGS variable, but $< and $@ are not available yet.
# Set ${in} and ${out} so they can be referenced by LOCAL_JAR_PROCESSOR_ARGS
# using deferred evaluation (LOCAL_JAR_PROCESSOR_ARGS = instead of :=).
-in := $(full_classes_compiled_jar)
+in := $(full_classes_combined_jar)
out := $(full_classes_processed_jar).tmp
my_jar_processor := $(HOST_OUT_JAVA_LIBRARIES)/$(LOCAL_JAR_PROCESSOR).jar
@@ -516,7 +538,7 @@
in :=
out :=
-$(full_classes_processed_jar): $(full_classes_compiled_jar) $(my_jar_processor)
+$(full_classes_processed_jar): $(full_classes_combined_jar) $(my_jar_processor)
@echo Processing $@ with $(PRIVATE_JAR_PROCESSOR)
$(hide) rm -f $@ $(PRIVATE_TMP_OUT)
$(hide) $(JAVA) -jar $(PRIVATE_JAR_PROCESSOR) $(PRIVATE_JAR_PROCESSOR_ARGS)
@@ -524,7 +546,7 @@
my_jar_processor :=
else
-full_classes_processed_jar := $(full_classes_compiled_jar)
+full_classes_processed_jar := $(full_classes_combined_jar)
endif
# Run jarjar if necessary
diff --git a/core/java_common.mk b/core/java_common.mk
index 17803f8..dcd3603 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -156,7 +156,7 @@
annotation_processor_deps :=
ifdef LOCAL_ANNOTATION_PROCESSORS
- annotation_processor_jars := $(call java-lib-deps,$(LOCAL_ANNOTATION_PROCESSORS),true)
+ annotation_processor_jars := $(call java-lib-files,$(LOCAL_ANNOTATION_PROCESSORS),true)
annotation_processor_flags += -processorpath $(call normalize-path-list,$(annotation_processor_jars))
annotation_processor_deps += $(annotation_processor_jars)
@@ -195,9 +195,6 @@
# full_java_libs: The list of files that should be used as the classpath.
# Using this list as a dependency list WILL NOT WORK.
-# full_java_lib_deps: Should be specified as a prerequisite of this module
-# to guarantee that the files in full_java_libs will
-# be up-to-date.
ifndef LOCAL_IS_HOST_MODULE
ifeq ($(LOCAL_SDK_VERSION),)
ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
@@ -234,8 +231,6 @@
full_shared_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES) $(my_additional_javac_libs),$(LOCAL_IS_HOST_MODULE))
full_shared_java_header_libs := $(call java-lib-header-files,$(LOCAL_JAVA_LIBRARIES) $(my_additional_javac_libs),$(LOCAL_IS_HOST_MODULE))
-full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES) $(my_additional_javac_libs),$(LOCAL_IS_HOST_MODULE))
-full_java_lib_deps := $(addsuffix .toc, $(full_java_lib_deps))
else # LOCAL_IS_HOST_MODULE
@@ -249,22 +244,17 @@
full_shared_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES),true)
full_shared_java_header_libs := $(call java-lib-header-files,$(LOCAL_JAVA_LIBRARIES),true)
-full_java_lib_deps := $(full_shared_java_libs)
else # !USE_CORE_LIB_BOOTCLASSPATH
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH :=
full_shared_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,\
$(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES)))
-full_java_lib_deps := $(full_shared_java_libs)
endif # USE_CORE_LIB_BOOTCLASSPATH
endif # !LOCAL_IS_HOST_MODULE
-# Only host java libraries use LOCAL_CLASSPATH.
full_java_libs := $(full_shared_java_libs) $(full_static_java_libs) $(LOCAL_CLASSPATH)
full_java_header_libs := $(full_shared_java_header_libs) $(full_static_java_header_libs)
-full_java_lib_deps := $(full_java_lib_deps) $(full_static_java_libs) $(LOCAL_CLASSPATH)
-
ifndef LOCAL_IS_HOST_MODULE
# This is set by packages that are linking to other packages that export
# shared libraries, allowing them to make use of the code in the linked apk.
@@ -274,12 +264,15 @@
$(foreach lib,$(apk_libraries), \
$(call intermediates-dir-for, \
APPS,$(lib),,COMMON)/classes-pre-proguard.jar)
+ link_apk_header_libs := \
+ $(foreach lib,$(apk_libraries), \
+ $(call intermediates-dir-for, \
+ APPS,$(lib),,COMMON)/classes-header.jar)
# link against the jar with full original names (before proguard processing).
full_shared_java_libs += $(link_apk_libraries)
full_java_libs += $(link_apk_libraries)
- full_java_header_libs += $(link_apk_libraries)
- full_java_lib_deps += $(link_apk_libraries)
+ full_java_header_libs += $(link_apk_header_libs)
endif
# This is set by packages that contain instrumentation, allowing them to
@@ -296,9 +289,9 @@
APPS,$(LOCAL_INSTRUMENTATION_FOR),,COMMON)
# link against the jar with full original names (before proguard processing).
link_instr_classes_jar := $(link_instr_intermediates_dir.COMMON)/classes-pre-proguard.jar
+ link_instr_classes_header_jar := $(link_instr_intermediates_dir.COMMON)/classes-header.jar
full_java_libs += $(link_instr_classes_jar)
- full_java_header_libs += $(link_instr_classes_jar)
- full_java_lib_deps += $(link_instr_classes_jar)
+ full_java_header_libs += $(link_instr_classes_header_jar)
endif # LOCAL_INSTRUMENTATION_FOR
endif # LOCAL_IS_HOST_MODULE
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 11138db..7d9c7d4 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -606,6 +606,12 @@
@# Keep a copy of apk with classes.dex unstripped
$(hide) cp -f $@ $(dir $@)package.dex.apk
endif # BUILD_PLATFORM_ZIP
+ifneq (true,$(DONT_UNCOMPRESS_PRIV_APPS_DEXS))
+ifeq (true,$(LOCAL_PRIVILEGED_MODULE))
+ @# No need to align, sign-package below will do it.
+ $(uncompress-dexs)
+endif # LOCAL_PRIVILEGED_MODULE
+endif # DONT_UNCOMPRESS_PRIV_APPS_DEXS
ifneq (nostripping,$(LOCAL_DEX_PREOPT))
$(call dexpreopt-remove-classes.dex,$@)
endif
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index 5a0ac37..24816e9 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -341,6 +341,11 @@
$(built_module) : $(my_prebuilt_src_file) | $(ZIPALIGN) $(SIGNAPK_JAR)
$(transform-prebuilt-to-target)
$(uncompress-shared-libs)
+ifneq (true,$(DONT_UNCOMPRESS_PRIV_APPS_DEXS))
+ifeq (true,$(LOCAL_PRIVILEGED_MODULE))
+ $(uncompress-dexs)
+endif # LOCAL_PRIVILEGED_MODULE
+endif # DONT_UNCOMPRESS_PRIV_APPS_DEXS
ifdef LOCAL_DEX_PREOPT
ifneq ($(BUILD_PLATFORM_ZIP),)
@# Keep a copy of apk with classes.dex unstripped
diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk
index 2725f95..197d41a 100644
--- a/core/tasks/sdk-addon.mk
+++ b/core/tasks/sdk-addon.mk
@@ -105,21 +105,21 @@
$(full_target): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_leaf))
-$(full_target): $(sdk_addon_deps) | $(ACP)
+$(full_target): $(sdk_addon_deps) | $(ACP) $(SOONG_ZIP)
@echo Packaging SDK Addon: $@
$(hide) mkdir -p $(PRIVATE_STAGING_DIR)/docs
$(hide) for d in $(PRIVATE_DOCS_DIRS); do \
$(ACP) -r $$d $(PRIVATE_STAGING_DIR)/docs ;\
done
$(hide) mkdir -p $(dir $@)
- $(hide) soong_zip -o $@ -C $(dir $(PRIVATE_STAGING_DIR)) -D $(PRIVATE_STAGING_DIR)
+ $(hide) $(SOONG_ZIP) -o $@ -C $(dir $(PRIVATE_STAGING_DIR)) -D $(PRIVATE_STAGING_DIR)
$(full_target_img): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_img))/images/$(TARGET_CPU_ABI)
-$(full_target_img): $(full_target) $(addon_img_source_prop) | $(ACP)
+$(full_target_img): $(full_target) $(addon_img_source_prop) | $(ACP) $(SOONG_ZIP)
@echo Packaging SDK Addon System-Image: $@
$(hide) mkdir -p $(dir $@)
$(ACP) -r $(PRODUCT_OUT)/data $(PRIVATE_STAGING_DIR)/data
- $(hide) soong_zip -o $@ -C $(dir $(PRIVATE_STAGING_DIR)) -D $(PRIVATE_STAGING_DIR)
+ $(hide) $(SOONG_ZIP) -o $@ -C $(dir $(PRIVATE_STAGING_DIR)) -D $(PRIVATE_STAGING_DIR)
.PHONY: sdk_addon