Merge "Remove PicoTTS from the base."
diff --git a/core/Makefile b/core/Makefile
index 4b15f3c..c913553 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -997,6 +997,7 @@
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_key=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY)" >> $(1))
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_signer_cmd=$(notdir $(VERITY_SIGNER))" >> $(1))
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY_FEC),$(hide) echo "verity_fec=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY_FEC)" >> $(1))
+$(if $(filter eng, $(TARGET_BUILD_VARIANT)),$(hide) echo "verity_disable=true" >> $(1))
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_VERITY_PARTITION),$(hide) echo "system_verity_block_device=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_VERITY_PARTITION)" >> $(1))
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION),$(hide) echo "vendor_verity_block_device=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION)" >> $(1))
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "vboot=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)" >> $(1))
@@ -1302,12 +1303,12 @@
.PHONY: recoveryimage
recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP)
-ifeq ($(BOARD_NAND_PAGE_SIZE),)
-BOARD_NAND_PAGE_SIZE := 2048
+ifneq ($(BOARD_NAND_PAGE_SIZE),)
+$(error MTD device is no longer supported and thus BOARD_NAND_PAGE_SIZE is deprecated.)
endif
-ifeq ($(BOARD_NAND_SPARE_SIZE),)
-BOARD_NAND_SPARE_SIZE := 64
+ifneq ($(BOARD_NAND_SPARE_SIZE),)
+$(error MTD device is no longer supported and thus BOARD_NAND_SPARE_SIZE is deprecated.)
endif
# -----------------------------------------------------------------
@@ -2686,14 +2687,13 @@
fi
ifeq (true,$(EMMA_INSTRUMENT))
- #------------------------------------------------------------------
- # An archive of classes for use in generating code-coverage reports
- # These are the uninstrumented versions of any classes that were
- # to be instrumented.
- # Any dependencies are set up later in build/core/main.mk.
+#------------------------------------------------------------------
+# An archive of classes for use in generating code-coverage reports
+# These are the uninstrumented versions of any classes that were
+# to be instrumented.
+# Any dependencies are set up later in build/core/main.mk.
- ifeq ($(ANDROID_COMPILE_WITH_JACK),false)
- JACOCO_REPORT_CLASSES_ALL := $(PRODUCT_OUT)/jacoco-report-classes-all.jar
+JACOCO_REPORT_CLASSES_ALL := $(PRODUCT_OUT)/jacoco-report-classes-all.jar
$(JACOCO_REPORT_CLASSES_ALL) :
@echo "Collecting uninstrumented classes"
$(hide) find $(TARGET_COMMON_OUT_ROOT) $(HOST_COMMON_OUT_ROOT) -name "jacoco-report-classes.jar" | \
@@ -2704,14 +2704,6 @@
# -q supress most output
# -X skip storing extended file attributes
- else
- EMMA_META_ZIP := $(PRODUCT_OUT)/emma_meta.zip
-$(EMMA_META_ZIP) :
- @echo "Collecting Emma coverage meta files."
- $(hide) find $(TARGET_COMMON_OUT_ROOT) $(HOST_COMMON_OUT_ROOT) -name "coverage.em" | \
- zip -@ -qX $@
-endif
-
endif # EMMA_INSTRUMENT=true
@@ -2724,7 +2716,7 @@
# the dependency will be set up later in build/core/main.mk.
$(PROGUARD_DICT_ZIP) :
@echo "Packaging Proguard obfuscation dictionary files."
- $(hide) dict_files=`find $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS -name proguard_dictionary -o -name jack_dictionary`; \
+ $(hide) dict_files=`find $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS -name proguard_dictionary`; \
if [ -n "$$dict_files" ]; then \
unobfuscated_jars=$${dict_files//proguard_dictionary/classes.jar}; \
zip -qX $@ $$dict_files $$unobfuscated_jars; \
@@ -2907,7 +2899,6 @@
-v "TARGET_CPU_ABI=$(TARGET_CPU_ABI)" \
-v "DLL_EXTENSION=$(HOST_SHLIB_SUFFIX)" \
-v "FONT_OUT=$(SDK_FONT_TEMP)" \
- -v "JACK_SDKTOOL_VERSION=$(JACK_SDKTOOL_VERSION)" \
-o $(PRIVATE_DIR) && \
cp -f $(target_notice_file_txt) \
$(PRIVATE_DIR)/system-images/android-$(PLATFORM_VERSION)/$(TARGET_CPU_ABI)/NOTICE.txt && \
diff --git a/core/base_rules.mk b/core/base_rules.mk
index e7da560..a178b55 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -622,7 +622,7 @@
# Add this module name to the tag list of each specified tag.
$(foreach tag,$(my_module_tags),\
- $(eval ALL_MODULE_NAME_TAGS.$(tag) += $(my_register_name)))
+ $(eval ALL_MODULE_NAME_TAGS.$(tag) := $$(ALL_MODULE_NAME_TAGS.$(tag)) $(my_register_name)))
###########################################################
## umbrella targets used to verify builds
diff --git a/core/binary.mk b/core/binary.mk
index 45c2477..3e31d9a 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -1415,9 +1415,22 @@
my_warn_types :=
my_allowed_types := native:ndk
else ifdef LOCAL_USE_VNDK
-my_link_type := native:vendor
-my_warn_types :=
-my_allowed_types := native:vendor
+ _name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
+ ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
+ ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
+ my_link_type := native:vndk
+ else
+ my_link_type := native:vndk_private
+ endif
+ my_warn_types :=
+ my_allowed_types := native:vndk native:vndk_private
+ else
+ # Modules installed to /vendor cannot directly depend on modules marked
+ # with vendor_available: false
+ my_link_type := native:vendor
+ my_warn_types :=
+ my_allowed_types := native:vendor native:vndk
+ endif
else
my_link_type := native:platform
my_warn_types :=
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index c38059c..b5bb963 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -120,6 +120,7 @@
LOCAL_JAR_PROCESSOR:=
LOCAL_JAR_PROCESSOR_ARGS:=
LOCAL_JAVACFLAGS:=
+LOCAL_JAVAC_SHARD_SIZE:=
LOCAL_JAVA_LANGUAGE_VERSION:=
LOCAL_JAVA_LAYERS_FILE:=
LOCAL_JAVA_LIBRARIES:=
diff --git a/core/combo/javac.mk b/core/combo/javac.mk
index 41ebc57..122d8bc 100644
--- a/core/combo/javac.mk
+++ b/core/combo/javac.mk
@@ -16,12 +16,17 @@
endif
endif
-ifeq ($(OVERRIDE_ANDROID_JAVA_HOME),)
-ANDROID_JAVA_HOME := prebuilts/jdk/jdk8/$(HOST_PREBUILT_TAG)
-else
-# Use this build toolchain instead of the bundled one.
-ANDROID_JAVA_HOME := $(OVERRIDE_ANDROID_JAVA_HOME)
+ifneq ($(OVERRIDE_ANDROID_JAVA_HOME),)
+ # Use this build toolchain instead of the bundled one.
+ ANDROID_JAVA_HOME := $(OVERRIDE_ANDROID_JAVA_HOME)
+else # !OVERRIDE_ANDROID_JAVA_HOME
+ ifneq ($(EXPERIMENTAL_USE_OPENJDK9),)
+ ANDROID_JAVA_HOME := prebuilts/jdk/jdk9/$(HOST_PREBUILT_TAG)
+ else
+ ANDROID_JAVA_HOME := prebuilts/jdk/jdk8/$(HOST_PREBUILT_TAG)
+ endif
endif
+
ANDROID_JAVA_TOOLCHAIN := $(ANDROID_JAVA_HOME)/bin
export JAVA_HOME := $(abspath $(ANDROID_JAVA_HOME))
diff --git a/core/config.mk b/core/config.mk
index c05edb2..7007c5d 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -304,7 +304,7 @@
include $(BUILD_SYSTEM)/combo/select.mk
endif
-ifndef KATI
+ifeq ($(CALLED_FROM_SETUP),true)
include $(BUILD_SYSTEM)/ccache.mk
include $(BUILD_SYSTEM)/goma.mk
@@ -511,6 +511,12 @@
USE_PREBUILT_SDK_TOOLS_IN_PLACE := true
+# USE_D8_BY_DEFAULT is the default behavior, use USE_D8 to override.
+USE_D8_BY_DEFAULT := false
+ifndef USE_D8
+ USE_D8 := $(USE_D8_BY_DEFAULT)
+endif
+
#
# Tools that are prebuilts for TARGET_BUILD_APPS
#
@@ -574,7 +580,6 @@
# ---------------------------------------------------------------
# Generic tools.
-JACK := $(HOST_OUT_EXECUTABLES)/jack
LEX := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/flex/flex-2.5.39
# The default PKGDATADIR built in the prebuilt bison is a relative path
@@ -645,19 +650,6 @@
FAT16COPY := build/tools/fat16copy.py
CHECK_LINK_TYPE := build/tools/check_link_type.py
-ifeq ($(ANDROID_COMPILE_WITH_JACK),true)
-DEFAULT_JACK_ENABLED:=full
-else
-DEFAULT_JACK_ENABLED:=
-endif
-ifneq ($(ANDROID_JACK_EXTRA_ARGS),)
-JACK_DEFAULT_ARGS :=
-DEFAULT_JACK_EXTRA_ARGS := $(ANDROID_JACK_EXTRA_ARGS)
-else
-JACK_DEFAULT_ARGS := $(BUILD_SYSTEM)/jack-default.args
-DEFAULT_JACK_EXTRA_ARGS := @$(JACK_DEFAULT_ARGS)
-endif
-
TURBINE := $(HOST_OUT_JAVA_LIBRARIES)/turbine$(COMMON_JAVA_PACKAGE_SUFFIX)
PROGUARD := external/proguard/bin/proguard.sh
JAVATAGS := build/tools/java-event-log-tags.py
@@ -908,7 +900,7 @@
vbmetaimage-nodeps \
product-graph dump-products
-ifndef KATI
+ifeq ($(CALLED_FROM_SETUP),true)
include $(BUILD_SYSTEM)/ninja_config.mk
include $(BUILD_SYSTEM)/soong_config.mk
endif
diff --git a/core/configure_local_jack.mk b/core/configure_local_jack.mk
deleted file mode 100644
index f8049a3..0000000
--- a/core/configure_local_jack.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-ifdef ANDROID_FORCE_JACK_ENABLED
-LOCAL_JACK_ENABLED := $(ANDROID_FORCE_JACK_ENABLED)
-endif
-
-ifneq ($(ANDROID_COMPILE_WITH_JACK),true)
-LOCAL_JACK_ENABLED :=
-endif
-
-LOCAL_JACK_ENABLED := $(strip $(LOCAL_JACK_ENABLED))
-LOCAL_MODULE := $(strip $(LOCAL_MODULE))
-
-valid_jack_enabled_values := full incremental javac_frontend disabled
-
-ifdef LOCAL_JACK_ENABLED
- ifneq ($(LOCAL_JACK_ENABLED),$(filter $(firstword $(LOCAL_JACK_ENABLED)),$(valid_jack_enabled_values)))
- $(error $(LOCAL_PATH): invalid LOCAL_JACK_ENABLED "$(LOCAL_JACK_ENABLED)" for $(LOCAL_MODULE))
- endif
-
- ifeq ($(LOCAL_JACK_ENABLED),disabled)
- LOCAL_JACK_ENABLED :=
- endif
-endif
-
-ifdef $(LOCAL_MODULE).JACK_VERSION
-LOCAL_JACK_VERSION := $($(LOCAL_MODULE).JACK_VERSION)
-else
-LOCAL_JACK_VERSION := $(JACK_DEFAULT_VERSION)
-endif
diff --git a/core/definitions.mk b/core/definitions.mk
index eb46e40..1f9891e 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -726,18 +726,6 @@
endif
###########################################################
-## Convert "core ext framework" to "out/.../classes.jack ..."
-## $(1): library list
-## $(2): Non-empty if IS_HOST_MODULE
-###########################################################
-
-# $(1): library name list
-# $(2): Non-empty if IS_HOST_MODULE
-define jack-lib-files
-$(foreach lib,$(1),$(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),$(2),COMMON)/classes.jack)
-endef
-
-###########################################################
## Returns true if $(1) and $(2) are equal. Returns
## the empty string if they are not equal.
###########################################################
@@ -2206,12 +2194,6 @@
$(if $(PRIVATE_DONT_DELETE_JAR_META_INF),,$(hide) rm -rf $(2)/META-INF)
endef
-# Call jack
-#
-define call-jack
- JACK_VERSION=$(PRIVATE_JACK_VERSION) $(JACK) $(DEFAULT_JACK_EXTRA_ARGS)
-endef
-
# Return jar arguments to compress files in a given directory
# $(1): directory
#
@@ -2223,6 +2205,17 @@
@<(find $(1) -type f | sort | $(JAR_ARGS) $(1); echo "-C $(EMPTY_DIRECTORY) .")
endef
+# append additional Java sources(resources/Proto sources, and etc) to $(1).
+define fetch-additional-java-source
+$(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \
+ find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1); \
+fi
+$(if $(PRIVATE_HAS_PROTO_SOURCES), \
+ $(hide) find $(PRIVATE_PROTO_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1))
+$(if $(PRIVATE_HAS_RS_SOURCES), \
+ $(hide) find $(PRIVATE_RS_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1))
+endef
+
# Some historical notes:
# - below we write the list of java files to java-source-list to avoid argument
# list length problems with Cygwin
@@ -2232,16 +2225,20 @@
@echo "$($(PRIVATE_PREFIX)DISPLAY) Java source list: $(PRIVATE_MODULE)"
$(hide) rm -f $@
$(call dump-words-to-file,$(sort $(PRIVATE_JAVA_SOURCES)),$@.tmp)
-$(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \
- find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $@.tmp; \
-fi
-$(if $(PRIVATE_HAS_PROTO_SOURCES), \
- $(hide) find $(PRIVATE_PROTO_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $@.tmp)
-$(if $(PRIVATE_HAS_RS_SOURCES), \
- $(hide) find $(PRIVATE_RS_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $@.tmp)
+$(call fetch-additional-java-source,$@.tmp)
$(hide) tr ' ' '\n' < $@.tmp | $(NORMALIZE_PATH) | sort -u > $@
endef
+# $(1): sharding number.
+# $(2): Java source files paths.
+define save-sharded-java-source-list
+$(java_source_list_file).shard.$(1): $(2) $$(NORMALIZE_PATH)
+ @echo "shard java source list: $$@"
+ rm -f $$@
+ $$(call dump-words-to-file,$(2),$$@.tmp)
+ $(hide) tr ' ' '\n' < $$@.tmp | $$(NORMALIZE_PATH) | sort -u > $$@
+endef
+
# Common definition to invoke javac on the host and target.
#
# $(1): javac
@@ -2283,9 +2280,33 @@
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@))
endef
-define transform-java-to-classes.jar
-@echo "$($(PRIVATE_PREFIX)DISPLAY) Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))"
-$(call compile-java,$(TARGET_JAVAC),$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES))
+# $(1): Javac output jar name.
+# $(2): Java source list file.
+# $(3): Java header libs.
+# $(4): Javac sharding number.
+# $(5): Javac sources deps (the arg may neeed $$ in case of containing '#')
+define create-classes-full-debug.jar
+$(1): PRIVATE_JAVACFLAGS := $$(LOCAL_JAVACFLAGS) $$(annotation_processor_flags)
+$(1): PRIVATE_JAR_EXCLUDE_FILES := $$(LOCAL_JAR_EXCLUDE_FILES)
+$(1): PRIVATE_JAR_PACKAGES := $$(LOCAL_JAR_PACKAGES)
+$(1): PRIVATE_JAR_EXCLUDE_PACKAGES := $$(LOCAL_JAR_EXCLUDE_PACKAGES)
+$(1): PRIVATE_DONT_DELETE_JAR_META_INF := $$(LOCAL_DONT_DELETE_JAR_META_INF)
+$(1): PRIVATE_JAVA_SOURCE_LIST := $(2)
+$(1): PRIVATE_ALL_JAVA_HEADER_LIBRARIES := $(3)
+$(1): PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates.COMMON)/classes$(4)
+$(1): PRIVATE_ANNO_INTERMEDIATES_DIR := $(intermediates.COMMON)/anno$(4)
+$(1): \
+ $(2) \
+ $(3) \
+ $(5) \
+ $$(full_java_bootclasspath_libs) \
+ $$(layers_file) \
+ $$(annotation_processor_deps) \
+ $$(NORMALIZE_PATH) \
+ $$(JAR_ARGS) \
+ | $$(SOONG_JAVAC_WRAPPER)
+ @echo "Target Java: $$@ ($$(PRIVATE_CLASS_INTERMEDIATES_DIR))"
+ $$(call compile-java,$$(TARGET_JAVAC),$$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES))
endef
define transform-java-to-header.jar
@@ -2312,106 +2333,6 @@
$(hide) $(call commit-change-for-toc,$@)
endef
-# Invoke Jack to compile java from source to dex and jack files.
-define jack-java-to-dex
-$(hide) rm -f $@
-$(hide) rm -f $(PRIVATE_CLASSES_JACK)
-$(hide) rm -rf $(PRIVATE_JACK_INTERMEDIATES_DIR)
-$(hide) mkdir -p $(dir $@)
-$(hide) mkdir -p $(dir $(PRIVATE_CLASSES_JACK))
-$(hide) mkdir -p $(PRIVATE_JACK_INTERMEDIATES_DIR)
-$(if $(PRIVATE_JACK_INCREMENTAL_DIR),$(hide) mkdir -p $(PRIVATE_JACK_INCREMENTAL_DIR))
-$(if $(PRIVATE_JACK_PROGUARD_FLAGS), \
- $(hide) echo -basedirectory $(CURDIR) > $@.flags; \
- echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \
-)
-$(if $(PRIVATE_EXTRA_JAR_ARGS),
- $(hide) mkdir -p $@.res.tmp
- $(hide) $(call create-empty-package-at,$@.res.tmp.zip)
- $(hide) $(call add-java-resources-to,$@.res.tmp.zip)
- $(hide) unzip -qo $@.res.tmp.zip -d $@.res.tmp
- $(hide) rm $@.res.tmp.zip)
-$(if $(PRIVATE_JACK_IMPORT_JAR),
- $(hide) mkdir -p $@.tmpjill.res
- $(hide) unzip -qo $(PRIVATE_JACK_IMPORT_JAR) -d $@.tmpjill.res
- $(hide) find $@.tmpjill.res -iname "*.class" -delete)
-$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \
- export tmpEcjArg="@$(PRIVATE_JAVA_SOURCE_LIST)"; \
-else \
- export tmpEcjArg=""; \
-fi; \
-$(call call-jack) \
- $(strip $(PRIVATE_JACK_FLAGS)) \
- $(strip $(PRIVATE_JACK_COVERAGE_OPTIONS)) \
- $(if $(NO_OPTIMIZE_DX), \
- -D jack.dex.optimize="false") \
- $(if $(PRIVATE_RMTYPEDEFS), \
- -D jack.android.remove-typedef="true") \
- $(if $(PRIVATE_JACK_IMPORT_JAR), \
- --import $(PRIVATE_JACK_IMPORT_JAR) --import-resource $@.tmpjill.res) \
- $(addprefix --classpath ,$(strip \
- $(call normalize-path-list,$(PRIVATE_JACK_SHARED_LIBRARIES)))) \
- $(addprefix --import ,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES))) \
- $(addprefix --pluginpath ,$(strip \
- $(call normalize-path-list,$(PRIVATE_JACK_PLUGIN_PATH)))) \
- $(if $(PRIVATE_JACK_PLUGIN),--plugin $(call normalize-comma-list,$(PRIVATE_JACK_PLUGIN))) \
- $(if $(PRIVATE_EXTRA_JAR_ARGS),--import-resource $@.res.tmp) \
- -D jack.android.min-api-level=$(PRIVATE_JACK_MIN_SDK_VERSION) \
- -D jack.import.resource.policy=keep-first \
- -D jack.import.type.policy=keep-first \
- --output-jack $(PRIVATE_CLASSES_JACK) \
- $(if $(PRIVATE_JACK_INCREMENTAL_DIR),--incremental-folder $(PRIVATE_JACK_INCREMENTAL_DIR)) \
- --output-dex $(PRIVATE_JACK_INTERMEDIATES_DIR) \
- $(addprefix --config-jarjar ,$(strip $(PRIVATE_JARJAR_RULES))) \
- $(if $(PRIVATE_JACK_PROGUARD_FLAGS),--config-proguard $@.flags) \
- $$tmpEcjArg \
- || ( rm -rf $(PRIVATE_CLASSES_JACK); exit 41 )
-$(hide) mv $(PRIVATE_JACK_INTERMEDIATES_DIR)/classes*.dex $(dir $@)
-$(if $(PRIVATE_EXTRA_JAR_ARGS),$(hide) rm -rf $@.res.tmp)
-$(if $(PRIVATE_JAR_PACKAGES), $(hide) echo unsupported options PRIVATE_JAR_PACKAGES in $@; exit 53)
-$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) echo unsupported options JAR_EXCLUDE_PACKAGES in $@; exit 53)
-$(if $(PRIVATE_JAR_MANIFEST), $(hide) echo unsupported options JAR_MANIFEST in $@; exit 53)
-endef
-
-# Invoke Jack to compile java source just to check it compiles correctly.
-define jack-check-java
-$(hide) rm -f $@
-$(hide) mkdir -p $(dir $@)
-$(if $(PRIVATE_JACK_INCREMENTAL_DIR),$(hide) mkdir -p $(PRIVATE_JACK_INCREMENTAL_DIR))
-$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \
- $(call call-jack,$(PRIVATE_JACK_EXTRA_ARGS)) \
- $(strip $(PRIVATE_JACK_FLAGS)) \
- $(strip $(PRIVATE_JACK_DEBUG_FLAGS)) \
- $(addprefix --classpath ,$(strip \
- $(call normalize-path-list,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES)) $(PRIVATE_JACK_SHARED_LIBRARIES)))) \
- -D jack.import.resource.policy=keep-first \
- -D jack.android.min-api-level=$(PRIVATE_JACK_MIN_SDK_VERSION) \
- -D jack.import.type.policy=keep-first \
- $(if $(PRIVATE_JACK_INCREMENTAL_DIR),--incremental-folder $(PRIVATE_JACK_INCREMENTAL_DIR)) \
- @$(PRIVATE_JAVA_SOURCE_LIST); \
-fi
-touch $@
-endef
-
-define transform-jar-to-jack
- $(hide) mkdir -p $(dir $@)
- $(hide) mkdir -p $@.tmpjill.res
- $(hide) unzip -qo $< -d $@.tmpjill.res
- $(hide) find $@.tmpjill.res -iname "*.class" -delete
- $(hide) $(call call-jack) \
- $(PRIVATE_JACK_FLAGS) \
- $(addprefix --pluginpath ,$(strip \
- $(call normalize-path-list,$(PRIVATE_JACK_PLUGIN_PATH)))) \
- $(if $(PRIVATE_JACK_PLUGIN),--plugin $(call normalize-comma-list,$(PRIVATE_JACK_PLUGIN))) \
- -D jack.import.resource.policy=keep-first \
- -D jack.import.type.policy=keep-first \
- -D jack.android.min-api-level=$(PRIVATE_JACK_MIN_SDK_VERSION) \
- --import $< \
- --import-resource $@.tmpjill.res \
- --output-jack $@
- $(hide) rm -rf $@.tmpjill.res
-endef
-
# Moves $1.tmp to $1 if necessary. This is designed to be used with
# .KATI_RESTAT. For kati, this function doesn't update the timestamp
# of $1 when $1.tmp is identical to $1 so that ninja won't rebuild
@@ -2453,54 +2374,6 @@
endif # TARGET_BUILD_APPS
-# Invoke Jack to compile java from source to jack files without shrink or obfuscation.
-define java-to-jack
-$(hide) rm -f $@
-$(hide) rm -rf $(PRIVATE_JACK_INTERMEDIATES_DIR)
-$(hide) mkdir -p $(dir $@)
-$(hide) mkdir -p $(PRIVATE_JACK_INTERMEDIATES_DIR)
-$(if $(PRIVATE_JACK_INCREMENTAL_DIR),$(hide) mkdir -p $(PRIVATE_JACK_INCREMENTAL_DIR))
-$(if $(PRIVATE_JACK_PROGUARD_FLAGS), \
- $(hide) echo -basedirectory $(CURDIR) > $@.flags; \
- echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \
-)
-$(if $(PRIVATE_EXTRA_JAR_ARGS),
- $(hide) mkdir -p $@.res.tmp
- $(hide) $(call create-empty-package-at,$@.res.tmp.zip)
- $(hide) $(call add-java-resources-to,$@.res.tmp.zip)
- $(hide) unzip -qo $@.res.tmp.zip -d $@.res.tmp
- $(hide) rm $@.res.tmp.zip)
-$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \
- export tmpEcjArg="@$(PRIVATE_JAVA_SOURCE_LIST)"; \
-else \
- export tmpEcjArg=""; \
-fi; \
-$(call call-jack) \
- $(strip $(PRIVATE_JACK_FLAGS)) \
- $(if $(NO_OPTIMIZE_DX), \
- -D jack.dex.optimize="false") \
- $(addprefix --classpath ,$(strip \
- $(call normalize-path-list,$(PRIVATE_JACK_SHARED_LIBRARIES)))) \
- $(addprefix --import ,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES))) \
- $(addprefix --pluginpath ,$(strip \
- $(call normalize-path-list,$(PRIVATE_JACK_PLUGIN_PATH)))) \
- $(if $(PRIVATE_JACK_PLUGIN),--plugin $(call normalize-comma-list,$(PRIVATE_JACK_PLUGIN))) \
- $(if $(PRIVATE_EXTRA_JAR_ARGS),--import-resource $@.res.tmp) \
- -D jack.import.resource.policy=keep-first \
- -D jack.import.type.policy=keep-first \
- -D jack.android.min-api-level=$(PRIVATE_JACK_MIN_SDK_VERSION) \
- $(if $(PRIVATE_JACK_INCREMENTAL_DIR),--incremental-folder $(PRIVATE_JACK_INCREMENTAL_DIR)) \
- --output-jack $@ \
- $(addprefix --config-jarjar ,$(strip $(PRIVATE_JARJAR_RULES))) \
- $(if $(PRIVATE_JACK_PROGUARD_FLAGS),--config-proguard $@.flags) \
- $$tmpEcjArg \
- || ( rm -f $@ ; exit 41 )
-$(if $(PRIVATE_EXTRA_JAR_ARGS),$(hide) rm -rf $@.res.tmp)
-$(if $(PRIVATE_JAR_PACKAGES), $(hide) echo unsupported options PRIVATE_JAR_PACKAGES in $@; exit 53)
-$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) echo unsupported options JAR_EXCLUDE_PACKAGES in $@; exit 53)
-$(if $(PRIVATE_JAR_MANIFEST), $(hide) echo unsupported options JAR_MANIFEST in $@; exit 53)
-endef
-
# Takes an sdk version that might be PLATFORM_VERSION_CODENAME (for example P),
# returns a number greater than the highest existing sdk version if it is, or
# the input if it is not.
@@ -2655,24 +2528,6 @@
@rm -f $(1).jar-arg-list
endef
-# Add resources carried by static Jack libraries.
-#
-define add-carried-jack-resources
-$(call add-carried-jack-resources-to,$@)
-endef
-
-# $(1) the target jar.
-define add-carried-jack-resources-to
- $(hide) if [ -d $(PRIVATE_JACK_INTERMEDIATES_DIR) ] ; then \
- find $(PRIVATE_JACK_INTERMEDIATES_DIR) -type f | sort \
- | sed -e "s?^$(PRIVATE_JACK_INTERMEDIATES_DIR)/? -C \"$(PRIVATE_JACK_INTERMEDIATES_DIR)\" \"?" -e "s/$$/\"/" \
- > $(dir $(1))jack_res_jar_flags; \
- if [ -s $(dir $(1))jack_res_jar_flags ] ; then \
- $(JAR) uf $(1) @$(dir $(1))jack_res_jar_flags; \
- fi; \
-fi
-endef
-
# Add resources (non .class files) from a jar to a package
# $(1): the package file
# $(2): the jar file
@@ -2898,6 +2753,26 @@
$(hide) ln -sf $(2) $$@
endef
+# Copy an apk to a target location while removing classes*.dex
+# $(1): source file
+# $(2): destination file
+# $(3): LOCAL_DEX_PREOPT, if nostripping then leave classes*.dex
+define dexpreopt-copy-jar
+$(2): $(1)
+ @echo $(if $(filter nostripping,$(3)),"Copy: $$@","Copy without dex: $$@")
+ $$(copy-file-to-target)
+ $(if $(filter nostripping,$(3)),,$$(call dexpreopt-remove-classes.dex,$$@))
+endef
+
+# $(1): the .jar or .apk to remove classes.dex
+define dexpreopt-remove-classes.dex
+$(hide) zip --quiet --delete $(1) classes.dex; \
+dex_index=2; \
+while zip --quiet --delete $(1) classes$${dex_index}.dex > /dev/null; do \
+ let dex_index=dex_index+1; \
+done
+endef
+
###########################################################
## Commands to call Proguard
###########################################################
@@ -2929,39 +2804,16 @@
$(error HOST_OS must define get-file-size)
endif
-# Convert a partition data size (eg, as reported in /proc/mtd) to the
-# size of the image used to flash that partition (which includes a
-# spare area for each page).
-# $(1): the partition data size
-define image-size-from-data-size
-$(strip $(eval _isfds_value := $$(shell echo $$$$(($(1) / $(BOARD_NAND_PAGE_SIZE) * \
- ($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE))))))\
-$(if $(filter 0, $(_isfds_value)),$(shell echo $$(($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE)))),$(_isfds_value))\
-$(eval _isfds_value :=))
-endef
-
# $(1): The file(s) to check (often $@)
-# $(2): The maximum total image size, in decimal bytes.
-# Make sure to take into account any reserved space needed for the FS.
-#
-# If $(2) is empty, evaluates to "true"
-#
-# Reserve bad blocks. Make sure that MAX(1% of partition size, 2 blocks)
-# is left over after the image has been flashed. Round the 1% up to the
-# next whole flash block size.
-define assert-max-file-size
+# $(2): The partition size.
+define assert-max-image-size
$(if $(2), \
size=$$(for i in $(1); do $(call get-file-size,$$i); echo +; done; echo 0); \
total=$$(( $$( echo "$$size" ) )); \
printname=$$(echo -n "$(1)" | tr " " +); \
- img_blocksize=$(call image-size-from-data-size,$(BOARD_FLASH_BLOCK_SIZE)); \
- twoblocks=$$((img_blocksize * 2)); \
- onepct=$$((((($(2) / 100) - 1) / img_blocksize + 1) * img_blocksize)); \
- reserve=$$((twoblocks > onepct ? twoblocks : onepct)); \
- maxsize=$$(($(2) - reserve)); \
- echo "$$printname maxsize=$$maxsize blocksize=$$img_blocksize total=$$total reserve=$$reserve"; \
+ maxsize=$(2); \
if [ "$$total" -gt "$$maxsize" ]; then \
- echo "error: $$printname too large ($$total > [$(2) - $$reserve])"; \
+ echo "error: $$printname too large ($$total > $$maxsize)"; \
false; \
elif [ "$$total" -gt $$((maxsize - 32768)) ]; then \
echo "WARNING: $$printname approaching size limit ($$total now; limit $$maxsize)"; \
@@ -2971,17 +2823,6 @@
)
endef
-# Like assert-max-file-size, but the second argument is a partition
-# size, which we'll convert to a max image size before checking it
-# against the files.
-#
-# $(1): The file(s) to check (often $@)
-# $(2): The partition size.
-define assert-max-image-size
-$(if $(2), \
- $(call assert-max-file-size,$(1),$(call image-size-from-data-size,$(2))))
-endef
-
###########################################################
## Define device-specific radio files
@@ -3160,7 +3001,7 @@
base_rules \
HEADER_LIBRARY
-$(foreach $(s),$(STATS.MODULE_TYPE),$(eval STATS.MODULE_TYPE.$(s) :=))
+$(foreach s,$(STATS.MODULE_TYPE),$(eval STATS.MODULE_TYPE.$(s) :=))
define record-module-type
$(strip $(if $(LOCAL_RECORDED_MODULE_TYPE),,
$(if $(filter-out $(SOONG_ANDROID_MK),$(LOCAL_MODULE_MAKEFILE)),
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 439f7e5..0dcb07f 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -35,10 +35,10 @@
# Conditional to building on linux, as dex2oat currently does not work on darwin.
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT ?= true
-# For an eng build only pre-opt the boot image. This gives reasonable performance and still
-# allows a simple workflow: building in frameworks/base and syncing.
+# For an eng build only pre-opt the boot image and system server. This gives reasonable performance
+# and still allows a simple workflow: building in frameworks/base and syncing.
ifeq (eng,$(TARGET_BUILD_VARIANT))
- WITH_DEXPREOPT_BOOT_IMG_ONLY ?= true
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= true
endif
# Add mini-debug-info to the boot classpath unless explicitly asked not to.
ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO))
@@ -48,15 +48,6 @@
GLOBAL_DEXPREOPT_FLAGS :=
-# $(1): the .jar or .apk to remove classes.dex
-define dexpreopt-remove-classes.dex
-$(hide) zip --quiet --delete $(1) classes.dex; \
-dex_index=2; \
-while zip --quiet --delete $(1) classes$${dex_index}.dex > /dev/null; do \
- let dex_index=dex_index+1; \
-done
-endef
-
# Special rules for building stripped boot jars that override java_library.mk rules
# $(1): boot jar module name
@@ -64,11 +55,7 @@
_dbj_jar_no_dex := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(1)_nodex.jar
_dbj_src_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,$(1),,COMMON)/javalib.jar
-$$(_dbj_jar_no_dex) : $$(_dbj_src_jar)
- $$(call copy-file-to-target)
-ifneq ($(DEX_PREOPT_DEFAULT),nostripping)
- $$(call dexpreopt-remove-classes.dex,$$@)
-endif
+$(call dexpreopt-copy-jar,$$(_dbj_src_jar),$$(_dbj_jar_no_dex),$(DEX_PREOPT_DEFAULT))
_dbj_jar_no_dex :=
_dbj_src_jar :=
diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk
index a06aaca..302cc8b 100644
--- a/core/dex_preopt_libart_boot.mk
+++ b/core/dex_preopt_libart_boot.mk
@@ -81,7 +81,7 @@
@rm -f $(dir $@)/*.art $(dir $@)/*.oat
@rm -f $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))/*.art
@rm -f $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))/*.oat
- $(DEX2OAT) --runtime-arg -Xms$(DEX2OAT_IMAGE_XMS) \
+ $(hide) ANDROID_LOG_TAGS="*:e" $(DEX2OAT) --runtime-arg -Xms$(DEX2OAT_IMAGE_XMS) \
--runtime-arg -Xmx$(DEX2OAT_IMAGE_XMX) \
$(PRIVATE_BOOT_IMAGE_FLAGS) \
$(addprefix --dex-file=,$(LIBART_TARGET_BOOT_DEX_FILES)) \
diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk
index 136def4..8c1a606 100644
--- a/core/dex_preopt_odex_install.mk
+++ b/core/dex_preopt_odex_install.mk
@@ -30,12 +30,15 @@
ifdef LOCAL_UNINSTALLABLE_MODULE
LOCAL_DEX_PREOPT :=
endif
-ifeq (,$(strip $(built_dex)$(my_prebuilt_src_file))) # contains no java code
+ifeq (,$(strip $(built_dex)$(my_prebuilt_src_file)$(LOCAL_SOONG_DEX_JAR))) # contains no java code
LOCAL_DEX_PREOPT :=
endif
-# if WITH_DEXPREOPT_BOOT_IMG_ONLY=true and module is not in boot class path skip
-ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_ONLY))
-ifeq ($(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),)
+# if WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true and module is not in boot class path skip
+# Also preopt system server jars since selinux prevents system server from loading anything from
+# /data. If we don't do this they will need to be extracted which is not favorable for RAM usage
+# or performance.
+ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
+ifeq ($(filter $(PRODUCT_SYSTEM_SERVER_JARS) $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),)
LOCAL_DEX_PREOPT :=
endif
endif
diff --git a/core/dpi_specific_apk.mk b/core/dpi_specific_apk.mk
index be0d33e..18c8d6e 100644
--- a/core/dpi_specific_apk.mk
+++ b/core/dpi_specific_apk.mk
@@ -35,12 +35,8 @@
$(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE :=
ifneq ($(full_classes_jar),)
$(built_dpi_apk): PRIVATE_DEX_FILE := $(built_dex)
-ifndef LOCAL_JACK_ENABLED
# Use the jarjar processed arhive as the initial package file.
$(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE := $(full_classes_pre_proguard_jar)
-else
-$(built_dpi_apk): PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack-rsc
-endif # LOCAL_JACK_ENABLED
$(built_dpi_apk): $(built_dex)
else
$(built_dpi_apk): PRIVATE_DEX_FILE :=
@@ -65,9 +61,6 @@
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@))
else
$(add-dex-to-package)
-ifdef LOCAL_JACK_ENABLED
- $(add-carried-jack-resources)
-endif
endif
$(sign-package)
diff --git a/core/envsetup.mk b/core/envsetup.mk
index c99c70f..5372336 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -639,7 +639,7 @@
DIST_DIR := $(OUT_DIR)/dist
endif
-ifndef KATI
+ifeq ($(CALLED_FROM_SETUP),true)
PRINT_BUILD_CONFIG ?= true
endif
diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk
index 53c9158..96796df 100644
--- a/core/host_dalvik_java_library.mk
+++ b/core/host_dalvik_java_library.mk
@@ -24,19 +24,9 @@
ifeq ($(HOST_OS),linux)
USE_CORE_LIB_BOOTCLASSPATH := true
-#################################
-include $(BUILD_SYSTEM)/configure_local_jack.mk
-#################################
-
#######################################
include $(BUILD_SYSTEM)/host_java_library_common.mk
#######################################
-ifdef LOCAL_JACK_ENABLED
-ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
- # For static library, $(LOCAL_BUILT_MODULE) is $(full_classes_jack).
- LOCAL_BUILT_MODULE_STEM := classes.jack
-endif
-endif
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
LOCAL_JAVA_LIBRARIES := core-oj-hostdex core-libart-hostdex $(LOCAL_JAVA_LIBRARIES)
@@ -50,8 +40,6 @@
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
-full_classes_jack := $(intermediates.COMMON)/classes.jack
-jack_check_timestamp := $(intermediates.COMMON)/jack.check.timestamp
built_dex := $(intermediates.COMMON)/classes.dex
java_source_list_file := $(intermediates.COMMON)/java-source-list
@@ -61,24 +49,18 @@
$(full_classes_combined_jar) \
$(full_classes_desugar_jar) \
$(full_classes_jarjar_jar) \
- $(full_classes_jack) \
$(full_classes_jar) \
- $(jack_check_timestamp) \
$(built_dex) \
$(java_source_list_file)
# See comment in java.mk
ifndef LOCAL_CHECKED_MODULE
-ifdef LOCAL_JACK_ENABLED
-LOCAL_CHECKED_MODULE := $(jack_check_timestamp)
-else
ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
LOCAL_CHECKED_MODULE := $(full_classes_compiled_jar)
else
LOCAL_CHECKED_MODULE := $(built_dex)
endif
endif
-endif
#######################################
include $(BUILD_SYSTEM)/base_rules.mk
@@ -101,8 +83,6 @@
$(java_source_list_file): $(java_sources_deps)
$(write-java-source-list)
-ifndef LOCAL_JACK_ENABLED
-
$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags)
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
@@ -226,65 +206,6 @@
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SDK_VERSION := $(my_sdk_version)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MIN_SDK_VERSION := $(my_min_sdk_version)
-else # LOCAL_JACK_ENABLED
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack-rsc
-
-ifeq ($(LOCAL_JACK_ENABLED),incremental)
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INCREMENTAL_DIR := $(intermediates.COMMON)/jack-incremental
-else
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INCREMENTAL_DIR :=
-endif
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_FLAGS := -g $(LOCAL_JACK_FLAGS)
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_VERSION := $(LOCAL_JACK_VERSION)
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_MIN_SDK_VERSION := $(PLATFORM_JACK_MIN_SDK_VERSION)
-
-jack_all_deps := \
- $(java_source_list_file) \
- $(java_sources_deps) \
- $(full_jack_deps) \
- $(jar_manifest_file) \
- $(NORMALIZE_PATH) \
- $(JACK_DEFAULT_ARGS) \
- $(JACK)
-
-ifneq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
-$(built_dex): PRIVATE_CLASSES_JACK := $(full_classes_jack)
-$(built_dex): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(built_dex): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(built_dex): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
- @echo Building with Jack: $@
- $(jack-java-to-dex)
-
-# $(full_classes_jack) is just by-product of $(built_dex).
-# The dummy command was added because, without it, make misses the fact the $(built_dex) also
-# change $(full_classes_jack).
-$(full_classes_jack): $(built_dex)
- $(hide) touch $@
-
-$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
-$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources)
- @echo "Host Jar: $(PRIVATE_MODULE) ($@)"
- $(create-empty-package)
- $(add-dex-to-package)
- $(add-carried-jack-resources)
-
-else # LOCAL_IS_STATIC_JAVA_LIBRARY
-$(full_classes_jack): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(full_classes_jack): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(full_classes_jack): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
- @echo Building with Jack: $@
- $(java-to-jack)
-
-endif # LOCAL_IS_STATIC_JAVA_LIBRARY
-
-$(jack_check_timestamp): $(jack_all_deps) | setup-jack-server
- @echo Checking build with Jack: $@
- $(jack-check-java)
-endif # LOCAL_JACK_ENABLED
-
USE_CORE_LIB_BOOTCLASSPATH :=
endif
diff --git a/core/install_jni_libs_internal.mk b/core/install_jni_libs_internal.mk
index b5f10cf..265d482 100644
--- a/core/install_jni_libs_internal.mk
+++ b/core/install_jni_libs_internal.mk
@@ -116,7 +116,7 @@
else
my_link_type := app:platform
my_warn_types :=
-my_allowed_types := native:ndk native:platform native:vendor
+my_allowed_types := native:ndk native:platform native:vendor native:vndk native:vndk_private
endif
my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
diff --git a/core/jack-default.args b/core/jack-default.args
deleted file mode 100644
index 433bc53..0000000
--- a/core/jack-default.args
+++ /dev/null
@@ -1,9 +0,0 @@
--D sched.runner=multi-threaded
--D sched.runner.thread.kind=fixed
--D sched.runner.thread.fixed.count=4
---sanity-checks off
--D jack.reporter.level.file=error=--,warning=-
---verbose error
--D jack.jayce.cache=false
--D jack.lambda.grouping-scope=package
--D jack.lambda.simplify-stateless=true
diff --git a/core/jacoco.mk b/core/jacoco.mk
index f4788bf..8915443 100644
--- a/core/jacoco.mk
+++ b/core/jacoco.mk
@@ -23,34 +23,32 @@
my_exclude_filter :=
ifeq ($(LOCAL_EMMA_INSTRUMENT),true)
- ifeq ($(ANDROID_COMPILE_WITH_JACK),false)
- # determine Jacoco include/exclude filters
- DEFAULT_JACOCO_EXCLUDE_FILTER := org/junit/*,org/jacoco/*,org/mockito/*
- # copy filters from Jack but also skip some known java packages
- my_include_filter := $(strip $(LOCAL_JACK_COVERAGE_INCLUDE_FILTER))
- my_exclude_filter := $(strip $(DEFAULT_JACOCO_EXCLUDE_FILTER),$(LOCAL_JACK_COVERAGE_EXCLUDE_FILTER))
+ # determine Jacoco include/exclude filters
+ DEFAULT_JACOCO_EXCLUDE_FILTER := org/junit/*,org/jacoco/*,org/mockito/*
+ # copy filters from Jack but also skip some known java packages
+ my_include_filter := $(strip $(LOCAL_JACK_COVERAGE_INCLUDE_FILTER))
+ my_exclude_filter := $(strip $(DEFAULT_JACOCO_EXCLUDE_FILTER),$(LOCAL_JACK_COVERAGE_EXCLUDE_FILTER))
- # replace '.' with '/' and ',' with ' ', and quote each arg
- ifneq ($(strip $(my_include_filter)),)
- my_include_args := $(strip $(my_include_filter))
+ # replace '.' with '/' and ',' with ' ', and quote each arg
+ ifneq ($(strip $(my_include_filter)),)
+ my_include_args := $(strip $(my_include_filter))
- my_include_args := $(subst .,/,$(my_include_args))
- my_include_args := '$(subst $(comma),' ',$(my_include_args))'
- else
- my_include_args :=
- endif
+ my_include_args := $(subst .,/,$(my_include_args))
+ my_include_args := '$(subst $(comma),' ',$(my_include_args))'
+ else
+ my_include_args :=
+ endif
- # replace '.' with '/' and ',' with ' ', and quote each arg
- ifneq ($(strip $(my_exclude_filter)),)
- my_exclude_args := $(my_exclude_filter)
+ # replace '.' with '/' and ',' with ' ', and quote each arg
+ ifneq ($(strip $(my_exclude_filter)),)
+ my_exclude_args := $(my_exclude_filter)
- my_exclude_args := $(subst .,/,$(my_exclude_args))
- my_exclude_args := $(subst $(comma)$(comma),$(comma),$(my_exclude_args))
- my_exclude_args := '$(subst $(comma),' ', $(my_exclude_args))'
- else
- my_exclude_args :=
- endif
- endif # ANDROID_COMPILE_WITH_JACK==false
+ my_exclude_args := $(subst .,/,$(my_exclude_args))
+ my_exclude_args := $(subst $(comma)$(comma),$(comma),$(my_exclude_args))
+ my_exclude_args := '$(subst $(comma),' ', $(my_exclude_args))'
+ else
+ my_exclude_args :=
+ endif
endif # LOCAL_EMMA_INSTRUMENT == true
# determine whether to run the instrumenter based on whether there is any work
diff --git a/core/java.mk b/core/java.mk
index efbc4bb..cf49994 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -31,55 +31,6 @@
endif # !LOCAL_NO_STANDARD_LIBRARIES
endif # LOCAL_MODULE == jacocoagent
-# This duplicates the bootclasspath logic in java_common.mk because jack doesn't use
-# bootclasspath.
-ifdef LOCAL_JACK_ENABLED
- 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)
- else
- ifeq ($(strip $(filter $(LOCAL_SDK_VERSION),$(TARGET_AVAILABLE_SDK_VERSIONS))),)
- $(error $(LOCAL_PATH): Invalid LOCAL_SDK_VERSION '$(LOCAL_SDK_VERSION)' \
- Choices are: $(TARGET_AVAILABLE_SDK_VERSIONS))
- else
- ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current)
- # Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS.
- LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES)
- else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current)
- LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES)
- else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),test_current)
- LOCAL_JAVA_LIBRARIES := android_test_stubs_current $(LOCAL_JAVA_LIBRARIES)
- else
- LOCAL_JAVA_LIBRARIES := sdk_v$(LOCAL_SDK_VERSION) $(LOCAL_JAVA_LIBRARIES)
- endif
-
- ifeq ($(LOCAL_SDK_VERSION),current)
- my_jack_min_sdk_version := $(PLATFORM_JACK_MIN_SDK_VERSION)
- else ifeq ($(LOCAL_SDK_VERSION),system_current)
- my_jack_min_sdk_version := $(PLATFORM_JACK_MIN_SDK_VERSION)
- else ifeq ($(LOCAL_SDK_VERSION),test_current)
- my_jack_min_sdk_version := $(PLATFORM_JACK_MIN_SDK_VERSION)
- else
- my_jack_min_sdk_version := $(LOCAL_SDK_VERSION)
- endif
- endif
- endif
- else
- my_jack_min_sdk_version := $(PLATFORM_JACK_MIN_SDK_VERSION)
- endif
-
- ifneq (,$(strip $(LOCAL_MIN_SDK_VERSION)))
- my_jack_min_sdk_version := $(LOCAL_MIN_SDK_VERSION)
- endif
-endif
-
-ifdef LOCAL_MIN_SDK_VERSION
- my_min_sdk_version := $(LOCAL_MIN_SDK_VERSION)
-else
- my_min_sdk_version := $(call codename-or-sdk-to-sdk,\
- $(PRIVATE_DEFAULT_APP_TARGET_SDK))
-endif
-
ifndef LOCAL_SDK_VERSION
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
LOCAL_JAVA_LIBRARIES := $(TARGET_DEFAULT_JAVA_LIBRARIES) $(LOCAL_JAVA_LIBRARIES)
@@ -163,11 +114,6 @@
full_classes_jar := $(intermediates.COMMON)/classes.jar
built_dex := $(intermediates.COMMON)/classes.dex
endif
-# final Jack library, shrinked and obfuscated if it must be
-full_classes_jack := $(intermediates.COMMON)/classes.jack
-# intermediate Jack library without shrink and obfuscation
-noshrob_classes_jack := $(intermediates.COMMON)/classes.noshrob.jack
-jack_check_timestamp := $(intermediates.COMMON)/jack.check.timestamp
LOCAL_INTERMEDIATE_TARGETS += \
$(full_classes_turbine_jar) \
@@ -178,9 +124,6 @@
$(full_classes_combined_jar) \
$(full_classes_proguard_jar) \
$(built_dex_intermediate) \
- $(full_classes_jack) \
- $(noshrob_classes_jack) \
- $(jack_check_timestamp) \
$(built_dex) \
$(full_classes_stubs_jar) \
$(java_source_list_file)
@@ -382,15 +325,7 @@
# command line.
ifndef LOCAL_CHECKED_MODULE
ifdef full_classes_jar
-ifdef LOCAL_JACK_ENABLED
-ifeq ($(LOCAL_JACK_ENABLED),javac_frontend)
LOCAL_CHECKED_MODULE := $(full_classes_compiled_jar)
-else
-LOCAL_CHECKED_MODULE := $(jack_check_timestamp)
-endif
-else
-LOCAL_CHECKED_MODULE := $(full_classes_compiled_jar)
-endif
endif
endif
@@ -417,7 +352,36 @@
##########################################
java_sources := $(addprefix $(LOCAL_PATH)/, $(filter %.java,$(LOCAL_SRC_FILES))) $(aidl_java_sources) $(logtags_java_sources) \
$(filter %.java,$(LOCAL_GENERATED_SOURCES))
-all_java_sources := $(java_sources) $(addprefix $(TARGET_OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES)))
+java_intermediate_sources := $(addprefix $(TARGET_OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES)))
+all_java_sources := $(java_sources) $(java_intermediate_sources)
+
+enable_sharding :=
+ifneq ($(TURBINE_ENABLED),false)
+ifneq ($(LOCAL_JAVAC_SHARD_SIZE),)
+ifneq ($(LOCAL_JAR_PROCESSOR),)
+$(call pretty-error,Cannot set both LOCAL_JAVAC_SHARD_SIZE and LOCAL_JAR_PROCESSOR!)
+endif # LOCAL_JAR_PROCESSOR is not empty
+enable_sharding := true
+
+num_shards := $(call int_divide,$(words $(java_sources)),$(LOCAL_JAVAC_SHARD_SIZE))
+ifneq ($(words $(java_sources)),$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(num_shards)))
+# increment number of shards by 1.
+num_shards := $(call int_plus,$(num_shards),1)
+endif
+
+shard_idx_list := $(call int_range_list,1,$(num_shards))
+sharded_java_source_list_files += $(foreach x,$(shard_idx_list),$(java_source_list_file).shard.$(x))
+sharded_jar_list += $(foreach x,$(shard_idx_list),$(full_classes_compiled_jar).shard.$(x))
+
+# always put dynamically-located .java files (generated by Proto/resource, etc) in a new final shard.
+# increment number of shards by 1.
+num_shards := $(call int_plus,$(num_shards),1)
+sharded_java_source_list_files += $(java_source_list_file).shard.$(num_shards)
+sharded_jar_list += $(full_classes_compiled_jar).shard.$(num_shards)
+LOCAL_INTERMEDIATE_TARGETS += $(sharded_java_source_list_files)
+LOCAL_INTERMEDIATE_TARGETS += $(sharded_jar_list)
+endif # LOCAL_JAVAC_SHARD_SIZE is not empty
+endif # TURBINE_ENABLED != false
include $(BUILD_SYSTEM)/java_common.mk
@@ -436,9 +400,6 @@
endif
endif
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_MIN_SDK_VERSION := $(my_jack_min_sdk_version)
-my_jack_min_sdk_version :=
-
# Since we're using intermediates.COMMON, make sure that it gets cleaned
# properly.
$(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON)
@@ -473,7 +434,6 @@
ifneq (,$(PRODUCT_MINIMIZE_JAVA_DEBUG_INFO))
ifneq (,$(filter userdebug user,$(TARGET_BUILD_VARIANT)))
LOCAL_JAVACFLAGS+= -g:source,lines
-LOCAL_JACK_FLAGS+= -D jack.dex.debug.vars=false -D jack.dex.debug.vars.synthetic=false
endif
endif
@@ -488,23 +448,47 @@
$(java_source_list_file): $(java_sources_deps)
$(write-java-source-list)
-$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags)
-$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES)
-$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES)
-$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES)
-$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
-$(full_classes_compiled_jar): PRIVATE_JAVA_SOURCE_LIST := $(java_source_list_file)
-$(full_classes_compiled_jar): \
- $(java_source_list_file) \
- $(java_sources_deps) \
- $(full_java_header_libs) \
- $(full_java_bootclasspath_libs) \
- $(layers_file) \
- $(annotation_processor_deps) \
- $(NORMALIZE_PATH) \
- $(JAR_ARGS) \
- | $(SOONG_JAVAC_WRAPPER)
- $(transform-java-to-classes.jar)
+ifdef enable_sharding
+$(foreach x,$(shard_idx_list),\
+ $(eval $(call save-sharded-java-source-list,$(x),\
+ $(wordlist $(call int_plus,1,$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(call int_subtract,$(x),1))),\
+ $(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(x)),$(sort $(java_sources))))))
+
+# always put dynamically-located .java files (generated by Proto/resource, etc) in a new final shard.
+$(java_source_list_file).shard.$(num_shards): PRIVATE_JAVA_INTERMEDIATE_SOURCES := $(java_intermediate_sources)
+$(java_source_list_file).shard.$(num_shards): $(java_resource_sources) \
+ $(RenderScript_file_stamp) \
+ $(proto_java_sources_file_stamp) \
+ $(LOCAL_ADDITIONAL_DEPENDENCIES) \
+ $(NORMALIZE_PATH)
+ $(hide) rm -f $@
+ $(call dump-words-to-file,$(PRIVATE_JAVA_INTERMEDIATE_SOURCES),$@.tmp)
+ $(call fetch-additional-java-source,$@.tmp)
+ $(hide) tr ' ' '\n' < $@.tmp | $(NORMALIZE_PATH) | sort -u > $@
+
+# Javac sharding with header libs including its own header jar as one of dependency.
+$(foreach x,$(shard_idx_list),\
+ $(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar).shard.$(x),\
+ $(java_source_list_file).shard.$(x),\
+ $(full_java_header_libs) $(full_classes_header_jar),$(x),\
+ $(wordlist $(call int_plus,1,$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(call int_subtract,$(x),1))),\
+ $(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(x)),$(sort $(java_sources))))))
+
+# Javac sharding for last shard with additional Java dependencies.
+$(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar).shard.$(num_shards),\
+ $(java_source_list_file).shard.$(num_shards),$(full_java_header_libs) $(full_classes_header_jar),$(strip \
+ $(num_shards)),$$(java_resource_sources) $$(RenderScript_file_stamp) \
+ $$(proto_java_sources_file_stamp) $$(LOCAL_ADDITIONAL_DEPENDENCIES)))
+
+$(full_classes_compiled_jar): PRIVATE_SHARDED_JAR_LIST := $(sharded_jar_list)
+$(full_classes_compiled_jar): $(sharded_jar_list) | $(MERGE_ZIPS)
+ $(MERGE_ZIPS) -j $@ $(PRIVATE_SHARDED_JAR_LIST)
+else
+# we can't use single $ for java_sources_deps since it may contain hash '#' sign.
+$(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar),\
+ $(java_source_list_file),$(full_java_header_libs),,$$(java_sources_deps)))
+
+endif # ifdef enable_sharding
ifneq ($(TURBINE_ENABLED),false)
@@ -590,14 +574,12 @@
$(eval $(call copy-one-file,$(full_classes_jarjar_jar),$(full_classes_jar)))
my_desugaring :=
-ifndef LOCAL_JACK_ENABLED
ifndef LOCAL_IS_STATIC_JAVA_LIBRARY
my_desugaring := true
$(full_classes_desugar_jar): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
$(full_classes_desugar_jar): $(full_classes_jar) $(full_java_header_libs) $(DESUGAR)
$(desugar-classes-jar)
endif
-endif
ifndef my_desugaring
full_classes_desugar_jar := $(full_classes_jar)
@@ -621,7 +603,6 @@
$(error invalid value for LOCAL_PROGUARD_ENABLED: $(LOCAL_PROGUARD_ENABLED))
endif
proguard_dictionary := $(intermediates.COMMON)/proguard_dictionary
-jack_dictionary := $(intermediates.COMMON)/jack_dictionary
# Hack: see b/20667396
# When an app's LOCAL_SDK_VERSION is lower than the support library's LOCAL_SDK_VERSION,
@@ -643,7 +624,6 @@
endif
endif
-# jack already has the libraries in its classpath and doesn't support jars
legacy_proguard_flags := $(addprefix -libraryjars ,$(my_support_library_sdk_raise) \
$(filter-out $(my_support_library_sdk_raise), \
$(full_java_bootclasspath_libs) \
@@ -653,7 +633,6 @@
$(filter-out $(my_support_library_sdk_raise),$(full_shared_java_header_libs))
legacy_proguard_flags += -printmapping $(proguard_dictionary)
-jack_proguard_flags := -printmapping $(jack_dictionary)
common_proguard_flags := -forceprocessing
@@ -661,11 +640,7 @@
ifeq ($(filter nosystem,$(LOCAL_PROGUARD_ENABLED)),)
common_proguard_flag_files += $(BUILD_SYSTEM)/proguard.flags
ifeq ($(LOCAL_EMMA_INSTRUMENT),true)
-ifdef LOCAL_JACK_ENABLED
-common_proguard_flag_files += $(BUILD_SYSTEM)/proguard.jacoco.flags
-else
common_proguard_flags += -include $(BUILD_SYSTEM)/proguard.emma.flags
-endif # LOCAL_JACK_ENABLED
endif
# If this is a test package, add proguard keep flags for tests.
ifneq ($(LOCAL_INSTRUMENTATION_FOR)$(filter tests,$(LOCAL_MODULE_TAGS)),)
@@ -693,7 +668,6 @@
ifeq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),)
# If no obfuscation, link in the instrmented package's classes.jar as a library.
# link_instr_classes_jar is defined in base_rule.mk
-# jack already has this library in its classpath and doesn't support jars
legacy_proguard_flags += -libraryjars $(link_instr_classes_jar)
legacy_proguard_lib_deps += $(link_instr_classes_jar)
else # obfuscation
@@ -706,10 +680,6 @@
-applymapping $(link_instr_intermediates_dir.COMMON)/proguard_dictionary \
-verbose \
$(legacy_proguard_flags)
-ifdef LOCAL_JACK_ENABLED
-jack_proguard_flags += -applymapping $(link_instr_intermediates_dir.COMMON)/jack_dictionary
-full_jack_deps += $(link_instr_intermediates_dir.COMMON)/jack_dictionary
-endif
# Sometimes (test + main app) uses different keep rules from the main app -
# apply the main app's dictionary anyway.
@@ -731,20 +701,18 @@
extra_input_jar :=
endif
-# If not using jack and building against the current SDK version then filter
-# out the junit, android.test and c.a.i.u.Predicate classes that are to be
-# removed from the Android API as part of b/30188076 but which are still
-# present in the Android API. This is to allow changes to be made to the
-# build to statically include those classes into the application without
+# If building against the current SDK version then filter out the junit,
+# android.test and c.a.i.u.Predicate classes that are to be removed from
+# the Android API as part of b/30188076 but which are still present in
+# the Android API. This is to allow changes to be made to the build to
+# statically include those classes into the application without
# simultaneously removing those classes from the API.
proguard_injar_filters :=
-ifndef LOCAL_JACK_ENABLED
ifdef LOCAL_SDK_VERSION
ifeq (,$(filter-out current system_current test_current, $(LOCAL_SDK_VERSION)))
proguard_injar_filters := (!junit/framework/**,!junit/runner/**,!junit/textui/**,!android/test/**,!com/android/internal/util/*)
endif
endif
-endif
ifneq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),)
$(full_classes_proguard_jar): .KATI_IMPLICIT_OUTPUTS := $(proguard_dictionary)
@@ -760,7 +728,6 @@
endif # LOCAL_PROGUARD_ENABLED defined
ifneq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
-ifndef LOCAL_JACK_ENABLED
$(built_dex_intermediate): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
# If you instrument class files that have local variable debug information in
# them emma does not correctly maintain the local variable table.
@@ -773,7 +740,6 @@
endif
$(built_dex_intermediate): $(full_classes_proguard_jar) $(DX)
$(transform-classes.jar-to-dex)
-endif # LOCAL_JACK_ENABLED is disabled
$(built_dex): $(built_dex_intermediate)
@echo Copying: $@
@@ -819,7 +785,6 @@
my_sdk_version := $(PLATFORM_SDK_VERSION)
endif
-
ifdef LOCAL_MIN_SDK_VERSION
my_min_sdk_version := $(LOCAL_MIN_SDK_VERSION)
else
@@ -829,135 +794,3 @@
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_DEFAULT_APP_TARGET_SDK := $(my_default_app_target_sdk)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SDK_VERSION := $(my_sdk_version)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MIN_SDK_VERSION := $(my_min_sdk_version)
-
-ifdef LOCAL_JACK_ENABLED
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack-rsc
-ifeq ($(LOCAL_JACK_ENABLED),incremental)
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INCREMENTAL_DIR := $(intermediates.COMMON)/jack-incremental
-$(noshrob_classes_jack): PRIVATE_JACK_INCREMENTAL_DIR := $(intermediates.COMMON)/jack-noshrob-incremental
-$(jack_check_timestamp): PRIVATE_JACK_INCREMENTAL_DIR := $(intermediates.COMMON)/jack-check-incremental
-else
-$(LOCAL_INTERMEDIATE_TARGETS): \
- PRIVATE_JACK_INCREMENTAL_DIR :=
-$(noshrob_classes_jack): PRIVATE_JACK_INCREMENTAL_DIR :=
-$(jack_check_timestamp): PRIVATE_JACK_INCREMENTAL_DIR :=
-endif
-
-ifdef full_classes_jar
-ifdef LOCAL_PROGUARD_ENABLED
-
-ifndef LOCAL_JACK_PROGUARD_FLAGS
- LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS)
-endif
-LOCAL_JACK_PROGUARD_FLAGS += $(addprefix -include , $(proguard_flag_files))
-ifdef LOCAL_TEST_MODULE_TO_PROGUARD_WITH
- $(error $(LOCAL_MODULE): Build with jack when LOCAL_TEST_MODULE_TO_PROGUARD_WITH is defined is not yet implemented)
-endif
-
-# $(jack_dictionary) is just by-product of $(built_dex_intermediate).
-# The dummy command was added because, without it, make misses the fact the $(built_dex) also
-# change $(jack_dictionary).
-$(jack_dictionary): $(full_classes_jack)
- $(hide) touch $@
-
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_PROGUARD_FLAGS := $(common_proguard_flags) $(jack_proguard_flags) $(LOCAL_JACK_PROGUARD_FLAGS)
-else # LOCAL_PROGUARD_ENABLED not defined
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_PROGUARD_FLAGS :=
-endif # LOCAL_PROGUARD_ENABLED defined
-
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_FLAGS := -g $(LOCAL_JACK_FLAGS) $(annotation_processor_flags)
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_VERSION := $(LOCAL_JACK_VERSION)
-
-jack_all_deps := \
- $(java_source_list_file) \
- $(java_sources_deps) \
- $(full_jack_deps) \
- $(jar_manifest_file) \
- $(layers_file) \
- $(common_proguard_flag_files) \
- $(proguard_flag_files) \
- $(annotation_processor_deps) \
- $(LOCAL_JARJAR_RULES) \
- $(NORMALIZE_PATH) \
- $(JACK_DEFAULT_ARGS) \
- $(JACK)
-
-$(jack_check_timestamp): $(jack_all_deps) | setup-jack-server
- @echo Checking build with Jack: $@
- $(jack-check-java)
-
-ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
-$(full_classes_jack): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(full_classes_jack): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(full_classes_jack): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
- @echo Building with Jack: $@
- $(java-to-jack)
-
-# Update timestamps of .toc files for static java libraries so
-# dependents will be always rebuilt.
-$(built_dex).toc: $(full_classes_jack)
- touch $@
-
-else #LOCAL_IS_STATIC_JAVA_LIBRARY
-$(built_dex_intermediate): PRIVATE_CLASSES_JACK := $(full_classes_jack)
-
-ifeq ($(LOCAL_EMMA_INSTRUMENT),true)
-LOCAL_JACK_PLUGIN_PATH += $(HOST_OUT_JAVA_LIBRARIES)/jack-coverage-plugin.jar
-LOCAL_JACK_PLUGIN += com.android.jack.coverage.CodeCoverage
-$(built_dex_intermediate): PRIVATE_JACK_COVERAGE_OPTIONS := \
- -D jack.coverage=true \
- -D jack.coverage.metadata.file=$(intermediates.COMMON)/coverage.em \
- -D jack.coverage.jacoco.package=$(JACOCO_PACKAGE_NAME) \
- $(addprefix -D jack.coverage.jacoco.include=,$(LOCAL_JACK_COVERAGE_INCLUDE_FILTER)) \
- $(addprefix -D jack.coverage.jacoco.exclude=,$(LOCAL_JACK_COVERAGE_EXCLUDE_FILTER))
-else
-$(built_dex_intermediate): PRIVATE_JACK_COVERAGE_OPTIONS :=
-endif
-
-# Compiling with javac to jar, then converting jar to dex with jack
-ifeq ($(LOCAL_JACK_ENABLED),javac_frontend)
-
-# PRIVATE_EXTRA_JAR_ARGS and source files were already handled during javac
-$(built_dex_intermediate): PRIVATE_EXTRA_JAR_ARGS :=
-$(built_dex_intermediate): PRIVATE_JAVA_SOURCES :=
-$(built_dex_intermediate): PRIVATE_SOURCE_INTERMEDIATES_DIR :=
-$(built_dex_intermediate): PRIVATE_HAS_PROTO_SOURCES :=
-$(built_dex_intermediate): PRIVATE_HAS_RS_SOURCES :=
-
-# Incremental compilation is not supported when mixing javac and jack
-$(built_dex_intermediate): PRIVATE_JACK_INCREMENTAL_DIR :=
-
-# Pass output of javac to jack
-$(built_dex_intermediate): PRIVATE_JACK_IMPORT_JAR := $(full_classes_compiled_jar)
-$(built_dex_intermediate): $(full_classes_compiled_jar)
-else # LOCAL_JACK_ENABLED != javac_frontend
-$(built_dex_intermediate): PRIVATE_JACK_IMPORT_JAR :=
-endif # LOCAL_JACK_ENABLED != javac_frontend
-
-$(built_dex_intermediate): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(built_dex_intermediate): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(built_dex_intermediate): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
- @echo Building with Jack: $@
- $(jack-java-to-dex)
-
-# $(full_classes_jack) is just by-product of $(built_dex_intermediate).
-# The dummy command was added because, without it, make misses the fact the $(built_dex) also
-# change $(full_classes_jack).
-$(full_classes_jack): $(built_dex_intermediate)
- $(hide) touch $@
-
-$(call define-dex-to-toc-rule, $(intermediates.COMMON))
-
-endif #LOCAL_IS_STATIC_JAVA_LIBRARY
-
-$(noshrob_classes_jack): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(noshrob_classes_jack): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(noshrob_classes_jack): PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack-noshrob-rsc
-$(noshrob_classes_jack): PRIVATE_JACK_PROGUARD_FLAGS :=
-$(noshrob_classes_jack): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
- @echo Building with Jack: $@
- $(java-to-jack)
-endif # full_classes_jar is defined
-endif # LOCAL_JACK_ENABLED
diff --git a/core/java_common.mk b/core/java_common.mk
index a416795..320c52f 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -22,7 +22,12 @@
ifneq ($(EXPERIMENTAL_USE_OPENJDK9),true)
LOCAL_JAVA_LANGUAGE_VERSION := 1.8
else
- LOCAL_JAVA_LANGUAGE_VERSION := 1.9
+ private_sdk_versions_without_any_java_19_support := 24 25 26
+ ifneq (,$(filter $(LOCAL_SDK_VERSION), $(private_sdk_versions_without_any_java_19_support)))
+ LOCAL_JAVA_LANGUAGE_VERSION := 1.8
+ else
+ LOCAL_JAVA_LANGUAGE_VERSION := 1.9
+ endif
endif
endif
endif
@@ -359,75 +364,6 @@
$(ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR) $(LOCAL_INTERMEDIATE_SOURCE_DIR)
###########################################################
-# JACK
-###########################################################
-ifdef LOCAL_JACK_ENABLED
-ifdef need_compile_java
-
-LOCAL_JACK_FLAGS += -D jack.java.source.version=$(LOCAL_JAVA_LANGUAGE_VERSION)
-
-full_static_jack_libs := \
- $(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES), \
- $(call intermediates-dir-for, \
- JAVA_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE),COMMON)/classes.jack)
-
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JACK_LIBRARIES := $(full_static_jack_libs)
-
-full_shared_jack_libs := $(call jack-lib-files,$(LOCAL_JAVA_LIBRARIES),$(LOCAL_IS_HOST_MODULE))
-ifndef LOCAL_SDK_VERSION
- ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
- my_jack_bootclasspath := $(TARGET_DEFAULT_BOOTCLASSPATH_LIBRARIES)
- ifdef LOCAL_IS_HOST_MODULE
- my_jack_bootclasspath := $(addsuffix -hostdex,$(my_jack_bootclasspath))
- endif
- full_shared_jack_libs := $(call jack-lib-files,$(my_jack_bootclasspath),$(LOCAL_IS_HOST_MODULE)) $(full_shared_jack_libs)
- endif
-endif
-full_jack_deps := $(full_shared_jack_libs)
-
-ifndef LOCAL_IS_HOST_MODULE
-# Turn off .toc optimization for apps build as we cannot build dexdump.
-ifeq (,$(TARGET_BUILD_APPS))
-full_jack_deps := $(patsubst %.jack, %.dex.toc, $(full_jack_deps))
-endif
-endif # !LOCAL_IS_HOST_MODULE
-full_shared_jack_libs += $(LOCAL_JACK_CLASSPATH)
-full_jack_deps += $(full_static_jack_libs) $(LOCAL_JACK_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.
-ifneq ($(apk_libraries),)
- link_apk_jack_libraries := \
- $(foreach lib,$(apk_libraries), \
- $(call intermediates-dir-for, \
- APPS,$(lib),,COMMON)/classes.jack)
-
- # link against the jar with full original names (before proguard processing).
- full_shared_jack_libs += $(link_apk_jack_libraries)
- full_jack_deps += $(link_apk_jack_libraries)
-endif
-
-# This is set by packages that contain instrumentation, allowing them to
-# link against the package they are instrumenting. Currently only one such
-# package is allowed.
-ifdef LOCAL_INSTRUMENTATION_FOR
- # link against the jar with full original names (before proguard processing).
- link_instr_classes_jack := $(link_instr_intermediates_dir.COMMON)/classes.noshrob.jack
- full_shared_jack_libs += $(link_instr_classes_jack)
- full_jack_deps += $(link_instr_classes_jack)
-endif # LOCAL_INSTRUMENTATION_FOR
-endif # !LOCAL_IS_HOST_MODULE
-
-# Propagate local configuration options to this target.
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_SHARED_LIBRARIES:= $(full_shared_jack_libs)
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)
-
-endif # need_compile_java
-endif # LOCAL_JACK_ENABLED
-
-
-###########################################################
# Verify that all libraries are safe to use
###########################################################
ifndef LOCAL_IS_HOST_MODULE
diff --git a/core/java_library.mk b/core/java_library.mk
index f766c01..d728c53 100644
--- a/core/java_library.mk
+++ b/core/java_library.mk
@@ -25,21 +25,8 @@
LOCAL_BUILT_MODULE_STEM := javalib.jar
-#################################
-include $(BUILD_SYSTEM)/configure_local_jack.mk
-#################################
-
-ifdef LOCAL_JACK_ENABLED
-ifdef LOCAL_IS_STATIC_JAVA_LIBRARY
-LOCAL_BUILT_MODULE_STEM := classes.jack
-endif
-endif
-
-# For non-static java libraries, other modules should depend on
-# out/target/common/obj/JAVA_LIBRARIES/.../javalib.jar (for jack)
-# or out/target/common/obj/JAVA_LIBRARIES/.../classes.jar (for javac).
-# For static java libraries, other modules should depend on
-# out/target/common/obj/JAVA_LIBRARIES/.../classes.jar
+# For java libraries, other modules should depend on
+# out/target/common/obj/JAVA_LIBRARIES/.../classes.jar.
# There are some dependencies outside the build system that assume static
# java libraries produce javalib.jar, so we will copy classes.jar there too.
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
@@ -69,11 +56,7 @@
# is available as javalib.jar so copy it there too.
$(eval $(call copy-one-file,$(full_classes_proguard_jar),$(common_javalib.jar)))
-ifdef LOCAL_JACK_ENABLED
-$(eval $(call copy-one-file,$(full_classes_jack),$(LOCAL_BUILT_MODULE)))
-else
$(eval $(call copy-one-file,$(full_classes_proguard_jar),$(LOCAL_BUILT_MODULE)))
-endif
else # !LOCAL_IS_STATIC_JAVA_LIBRARY
@@ -82,15 +65,8 @@
$(common_javalib.jar): PRIVATE_DONT_DELETE_JAR_DIRS := $(LOCAL_DONT_DELETE_JAR_DIRS)
$(common_javalib.jar) : $(built_dex) $(java_resource_sources) | $(ZIPTIME)
@echo "target Jar: $(PRIVATE_MODULE) ($@)"
-ifdef LOCAL_JACK_ENABLED
- $(call create-empty-package-at,$@.tmp)
-else
$(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@.tmp)
-endif
$(call add-dex-to-package-arg,$@.tmp)
-ifdef LOCAL_JACK_ENABLED
- $(call add-carried-jack-resources-to,$@.tmp)
-endif
$(hide) $(ZIPTIME) $@.tmp
$(call commit-change-for-toc,$@)
@@ -110,10 +86,7 @@
@echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)"
$(call dexpreopt-one-file,$<,$@)
-$(eval $(call copy-one-file,$(common_javalib.jar),$(LOCAL_BUILT_MODULE)))
-ifneq (nostripping,$(LOCAL_DEX_PREOPT))
- $(call dexpreopt-remove-classes.dex,$@)
-endif
+$(eval $(call dexpreopt-copy-jar,$(common_javalib.jar),$(LOCAL_BUILT_MODULE),$(LOCAL_DEX_PREOPT)))
endif # ! boot jar
diff --git a/core/main.mk b/core/main.mk
index 2c7a34b..8ace91d 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -84,24 +84,13 @@
-include tools/tradefederation/build/suites/general-tests/config.mk
# Clean rules
-.PHONY: clean-jack-files
-clean-jack-files: clean-dex-files
- $(hide) find $(OUT_DIR) -name "*.jack" | xargs rm -f
- $(hide) find $(OUT_DIR) -type d -name "jack" | xargs rm -rf
- @echo "All jack files have been removed."
-
.PHONY: clean-dex-files
clean-dex-files:
- $(hide) find $(OUT_DIR) -name "*.dex" ! -path "*/jack-incremental/*" | xargs rm -f
+ $(hide) find $(OUT_DIR) -name "*.dex" | xargs rm -f
$(hide) for i in `find $(OUT_DIR) -name "*.jar" -o -name "*.apk"` ; do ((unzip -l $$i 2> /dev/null | \
grep -q "\.dex$$" && rm -f $$i) || continue ) ; done
@echo "All dex files and archives containing dex files have been removed."
-.PHONY: clean-jack-incremental
-clean-jack-incremental:
- $(hide) find $(OUT_DIR) -name "jack-incremental" -type d | xargs rm -rf
- @echo "All jack incremental dirs have been removed."
-
# Include the google-specific config
-include vendor/google/build/config.mk
@@ -188,22 +177,6 @@
#
# -----------------------------------------------------------------
-# Jack version configuration
--include $(TOPDIR)prebuilts/sdk/tools/jack_versions.mk
--include $(TOPDIR)prebuilts/sdk/tools/jack_for_module.mk
-
-#
-# -----------------------------------------------------------------
-# Install and start Jack server
--include $(TOPDIR)prebuilts/sdk/tools/jack_server_setup.mk
-
-#
-# -----------------------------------------------------------------
-# Jacoco package name for Jack
--include $(TOPDIR)external/jacoco/config.mk
-
-#
-# -----------------------------------------------------------------
# Enable dynamic linker developer warnings for all builds except
# final release.
ifneq ($(PLATFORM_VERSION_CODENAME),REL)
@@ -1095,13 +1068,8 @@
$(call dist-for-goals,apps_only, $(apps_only_dist_built_files))
ifeq ($(EMMA_INSTRUMENT),true)
- ifeq ($(ANDROID_COMPILE_WITH_JACK),false)
- $(JACOCO_REPORT_CLASSES_ALL) : $(apps_only_installed_files)
- $(call dist-for-goals,apps_only, $(JACOCO_REPORT_CLASSES_ALL))
- else
- $(EMMA_META_ZIP) : $(apps_only_installed_files)
- $(call dist-for-goals,apps_only, $(EMMA_META_ZIP))
- endif
+ $(JACOCO_REPORT_CLASSES_ALL) : $(apps_only_installed_files)
+ $(call dist-for-goals,apps_only, $(JACOCO_REPORT_CLASSES_ALL))
endif
$(PROGUARD_DICT_ZIP) : $(apps_only_installed_files)
@@ -1158,13 +1126,8 @@
endif
ifeq ($(EMMA_INSTRUMENT),true)
- ifeq ($(ANDROID_COMPILE_WITH_JACK),false)
- $(JACOCO_REPORT_CLASSES_ALL) : $(INSTALLED_SYSTEMIMAGE)
- $(call dist-for-goals, dist_files, $(JACOCO_REPORT_CLASSES_ALL))
- else
- $(EMMA_META_ZIP) : $(INSTALLED_SYSTEMIMAGE)
- $(call dist-for-goals, dist_files, $(EMMA_META_ZIP))
- endif
+ $(JACOCO_REPORT_CLASSES_ALL) : $(INSTALLED_SYSTEMIMAGE)
+ $(call dist-for-goals, dist_files, $(JACOCO_REPORT_CLASSES_ALL))
endif
# Building a full system-- the default is to build droidcore
@@ -1200,7 +1163,7 @@
target-native-tests : native-target-tests
tests : host-tests target-tests
-# Phony target to run all java compilations that use javac instead of jack.
+# Phony target to run all java compilations that use javac
.PHONY: javac-check
ifneq (,$(filter samplecode, $(MAKECMDGOALS)))
diff --git a/core/math.mk b/core/math.mk
index 047d046..57cb681 100644
--- a/core/math.mk
+++ b/core/math.mk
@@ -42,6 +42,11 @@
$(if $(call math_is_number,$(1)),,$(error Only positive integers <= 100 are supported (not $(1))))
endef
+# return a list containing integers ranging from [$(1),$(2)]
+define int_range_list
+$(call _math_check_valid,$(1))$(call _math_check_valid,$(2))$(wordlist $(1),$(2),$(__MATH_NUMBERS))
+endef
+
#$(call _math_check_valid,0)
#$(call _math_check_valid,1)
#$(call _math_check_valid,100)
@@ -75,3 +80,60 @@
define inc_and_print
$(strip $(eval $(1) := $($(1)) .)$(words $($(1))))
endef
+
+_INT_LIMIT_WORDS := $(foreach a,x x,$(foreach b,x x x x x x x x x x x x x x x x,\
+ $(foreach c,x x x x x x x x x x x x x x x x,x x x x x x x x x x x x x x x x)))
+
+define _int_encode
+$(if $(filter $(words x $(_INT_LIMIT_WORDS)),$(words $(wordlist 1,$(1),x $(_INT_LIMIT_WORDS)))),\
+ $(call pretty-error,integer greater than $(words $(_INT_LIMIT_WORDS)) is not supported!),\
+ $(wordlist 1,$(1),$(_INT_LIMIT_WORDS)))
+endef
+
+# _int_max returns the maximum of the two arguments
+# input: two (x) lists; output: one (x) list
+# integer cannot be passed in directly. It has to be converted using _int_encode.
+define _int_max
+$(subst xx,x,$(join $(1),$(2)))
+endef
+
+# first argument is greater than second argument
+# output: non-empty if true
+# integer cannot be passed in directly. It has to be converted using _int_encode.
+define _int_greater-than
+$(filter-out $(words $(2)),$(words $(call _int_max,$(1),$(2))))
+endef
+
+# first argument equals to second argument
+# output: non-empty if true
+# integer cannot be passed in directly. It has to be converted using _int_encode.
+define _int_equal
+$(filter $(words $(1)),$(words $(2)))
+endef
+
+# first argument is greater than or equal to second argument
+# output: non-empty if true
+# integer cannot be passed in directly. It has to be converted using _int_encode.
+define _int_greater-or-equal
+$(call _int_greater-than,$(1),$(2))$(call _int_equal,$(1),$(2))
+endef
+
+define int_plus
+$(words $(call _int_encode,$(1)) $(call _int_encode,$(2)))
+endef
+
+define int_subtract
+$(if $(call _int_greater-or-equal,$(call _int_encode,$(1)),$(call _int_encode,$(2))),\
+ $(words $(filter-out xx,$(join $(call _int_encode,$(1)),$(call _int_encode,$(2))))),\
+ $(call pretty-error,$(1) subtract underflow $(2)))
+endef
+
+define int_multiply
+$(words $(foreach a,$(call _int_encode,$(1)),$(call _int_encode,$(2))))
+endef
+
+define int_divide
+$(if $(filter 0,$(2)),$(call pretty-error,division by zero is not allowed!),$(strip \
+ $(if $(call _int_greater-or-equal,$(call _int_encode,$(1)),$(call _int_encode,$(2))), \
+ $(call int_plus,$(call int_divide,$(call int_subtract,$(1),$(2)),$(2)),1),0)))
+endef
diff --git a/core/notice_files.mk b/core/notice_files.mk
index f850fff..383d73c 100644
--- a/core/notice_files.mk
+++ b/core/notice_files.mk
@@ -57,7 +57,7 @@
# javalib.jar is the default name for the build module (and isn't meaningful)
# If that's what we have, substitute the module name instead. These files
# aren't included on the device, so this name is synthetic anyway.
- ifneq ($(filter javalib.jar classes.jack,$(module_leaf)),)
+ ifneq ($(filter javalib.jar,$(module_leaf)),)
module_leaf := $(LOCAL_MODULE).jar
endif
module_installed_filename := \
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 7e27600..01e2463 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -60,10 +60,6 @@
intermediates := $(call local-intermediates-dir)
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
-#################################
-include $(BUILD_SYSTEM)/configure_local_jack.mk
-#################################
-
# Package LOCAL_MODULE_TAGS default to optional
LOCAL_MODULE_TAGS := $(strip $(LOCAL_MODULE_TAGS))
ifeq ($(LOCAL_MODULE_TAGS),)
@@ -247,13 +243,6 @@
endif # !custom
LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)
-ifdef LOCAL_JACK_ENABLED
-ifndef LOCAL_JACK_PROGUARD_FLAGS
- LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS)
-endif
-LOCAL_JACK_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_JACK_PROGUARD_FLAGS)
-endif # LOCAL_JACK_ENABLED
-
ifeq (true,$(EMMA_INSTRUMENT))
ifndef LOCAL_EMMA_INSTRUMENT
# No jacoco for test apks.
@@ -280,20 +269,8 @@
LOCAL_STATIC_JAVA_LIBRARIES += jacocoagent
# Exclude jacoco classes from proguard
LOCAL_PROGUARD_FLAGS += -include $(BUILD_SYSTEM)/proguard.jacoco.flags
-LOCAL_JACK_PROGUARD_FLAGS += -include $(BUILD_SYSTEM)/proguard.jacoco.flags
endif # Contains java code
-else # ! TARGET_BUILD_APPS
-ifdef LOCAL_JACK_ENABLED
-# If build against the SDK in full build, core.jar is not used
-# so coverage classes are not present.
-# Jack needs jacoco on the classpath but we do not want it to be in
-# the final apk. While it is a static library, we add it to the
-# LOCAL_JAVA_LIBRARIES which are only present on the classpath.
-# Note: we have nothing to do for proguard since jacoco will be
-# on the classpath only, thus not modified during the compilation.
-LOCAL_JAVA_LIBRARIES += jacocoagent
-endif # ! LOCAL_JACK_ENABLED
-endif # ! TARGET_BUILD_APPS
+endif # TARGET_BUILD_APPS
endif # LOCAL_SDK_VERSION
endif # EMMA_INSTRUMENT_STATIC
endif # LOCAL_EMMA_INSTRUMENT
@@ -304,7 +281,6 @@
data_binding_intermediates := $(intermediates.COMMON)/data-binding
LOCAL_JAVACFLAGS += -processorpath $(DATA_BINDING_COMPILER) -s $(data_binding_intermediates)/anno-src
-LOCAL_JACK_FLAGS += --processorpath $(DATA_BINDING_COMPILER)
LOCAL_STATIC_JAVA_LIBRARIES += databinding-baselibrary
LOCAL_STATIC_JAVA_AAR_LIBRARIES += databinding-library databinding-adapters
@@ -357,9 +333,8 @@
# Make sure the data-binding process happens before javac and generation of R.java.
$(R_file_stamp): $(data_binding_stamp)
$(java_source_list_file): $(data_binding_stamp)
+$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(data_binding_stamp)))
$(full_classes_compiled_jar): $(data_binding_stamp)
-# The dependency path when jack is enabled
-$(built_dex_intermediate) : $(data_binding_stamp)
endif # LOCAL_DATA_BINDING
ifeq ($(need_compile_res),true)
@@ -452,6 +427,7 @@
# The R.java file must exist by the time the java source
# list is generated
$(java_source_list_file): $(R_file_stamp)
+$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(R_file_stamp)))
endif # need_compile_res
@@ -578,13 +554,9 @@
ifdef LOCAL_USE_AAPT2
$(call copy-file-to-new-target)
else # ! LOCAL_USE_AAPT2
-ifdef LOCAL_JACK_ENABLED
- $(create-empty-package)
-else
$(if $(PRIVATE_SOURCE_ARCHIVE),\
$(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@),\
$(create-empty-package))
-endif
$(add-assets-to-package)
endif # LOCAL_USE_AAPT2
ifneq ($(jni_shared_libraries),)
@@ -596,14 +568,9 @@
else # full_classes_jar
$(add-dex-to-package)
ifdef LOCAL_USE_AAPT2
-ifndef LOCAL_JACK_ENABLED
$(call add-jar-resources-to-package,$@,$(PRIVATE_FULL_CLASSES_JAR),$(PRIVATE_RESOURCE_INTERMEDIATES_DIR))
endif
-endif
endif # full_classes_jar
-ifdef LOCAL_JACK_ENABLED
- $(add-carried-jack-resources)
-endif
ifdef LOCAL_DEX_PREOPT
ifneq ($(BUILD_PLATFORM_ZIP),)
@# Keep a copy of apk with classes.dex unstripped
diff --git a/core/pathmap.mk b/core/pathmap.mk
index e2331c6..a1c20c9 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -40,7 +40,6 @@
libhardware:hardware/libhardware/include \
libhardware_legacy:hardware/libhardware_legacy/include \
libril:hardware/ril/include \
- opengl-tests-includes:frameworks/native/opengl/tests/include \
recovery:bootable/recovery \
system-core:system/core/include \
audio:system/media/audio/include \
diff --git a/core/pdk_config.mk b/core/pdk_config.mk
index bef183e..43875df 100644
--- a/core/pdk_config.mk
+++ b/core/pdk_config.mk
@@ -36,7 +36,7 @@
$(PDK_PLATFORM_JAVA_ZIP_JAVA_HOST_LIB_DIR)
PDK_PLATFORM_JAVA_ZIP_CONTENTS += $(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_LIB_DIR),\
- $(lib_dir)/classes.jack $(lib_dir)/classes.jar $(lib_dir)/classes.jar.toc \
+ $(lib_dir)/classes.jar $(lib_dir)/classes.jar.toc \
$(lib_dir)/javalib.jar $(lib_dir)/classes*.dex \
$(lib_dir)/classes.dex.toc )
@@ -115,14 +115,6 @@
$(eval $(call JAVA_dependency_template,$(lib_dir)/javalib.jar,\
$(lib_dir)/classes.jar)))
-# pull .jack and .dex files
-$(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR),\
- $(eval $(call JAVA_dependency_template,$(lib_dir)/classes.jar.toc,\
- $(lib_dir)/classes.jar $(lib_dir)/classes.jack)))
-$(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR),\
- $(eval $(call JAVA_dependency_template,$(lib_dir)/classes.dex.toc,\
- $(lib_dir)/classes.jar $(lib_dir)/classes.jack $(lib_dir)/classes%.dex)))
-
# implicit rules for all other target files
$(TARGET_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/target/common/% $(_pdk_fusion_stamp)
@mkdir -p $(dir $@)
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index f1ea70e..b79e68b 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -155,7 +155,16 @@
ifdef LOCAL_SDK_VERSION
my_link_type := native:ndk
else ifdef LOCAL_USE_VNDK
-my_link_type := native:vendor
+ _name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
+ ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
+ ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
+ my_link_type := native:vndk
+ else
+ my_link_type := native:vndk_private
+ endif
+ else
+ my_link_type := native:vendor
+ endif
else
my_link_type := native:platform
endif
@@ -430,11 +439,7 @@
@echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)"
$(call dexpreopt-one-file,$<,$@)
-$(built_module) : $(my_prebuilt_src_file)
- $(call copy-file-to-target)
-ifneq (nostripping,$(LOCAL_DEX_PREOPT))
- $(call dexpreopt-remove-classes.dex,$@)
-endif
+$(eval $(call dexpreopt-copy-jar,$(my_prebuilt_src_file),$(built_module),$(LOCAL_DEX_PREOPT)))
endif # boot jar
else # ! LOCAL_DEX_PREOPT
$(built_module) : $(my_prebuilt_src_file)
@@ -560,7 +565,7 @@
# We needed only very few PRIVATE variables and aapt2.mk input variables. Reset the unnecessary ones.
$(my_res_package): PRIVATE_AAPT2_CFLAGS :=
-$(my_res_package): PRIVATE_AAPT_FLAGS := --static-lib --no-static-lib-packages
+$(my_res_package): PRIVATE_AAPT_FLAGS := --static-lib --no-static-lib-packages --auto-add-overlay
$(my_res_package): PRIVATE_ANDROID_MANIFEST := $(intermediates.COMMON)/aar/AndroidManifest.xml
$(my_res_package): PRIVATE_AAPT_INCLUDES := $(framework_res_package_export)
$(my_res_package): PRIVATE_SOURCE_INTERMEDIATES_DIR :=
@@ -592,25 +597,6 @@
endif # ! prebuilt_module_is_dex_javalib
endif # LOCAL_IS_HOST_MODULE is not set
-ifneq ($(prebuilt_module_is_dex_javalib),true)
-
-ifdef LOCAL_JACK_ENABLED
-# We may be building classes.jack from a host jar for host dalvik Java library.
-$(intermediates.COMMON)/classes.jack : PRIVATE_JACK_FLAGS:=$(LOCAL_JACK_FLAGS)
-$(intermediates.COMMON)/classes.jack : PRIVATE_JACK_MIN_SDK_VERSION := $(if $(strip $(LOCAL_MIN_SDK_VERSION)),$(LOCAL_MIN_SDK_VERSION),1)
-$(intermediates.COMMON)/classes.jack : PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
-$(intermediates.COMMON)/classes.jack : PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
-$(intermediates.COMMON)/classes.jack : $(LOCAL_JACK_PLUGIN_PATH) $(my_src_jar) \
- $(LOCAL_ADDITIONAL_DEPENDENCIES) $(JACK_DEFAULT_ARGS) $(JACK) \
- | setup-jack-server
- $(transform-jar-to-jack)
-
-# Update timestamps of .toc files for prebuilts so dependents will be
-# always rebuilt.
-$(intermediates.COMMON)/classes.dex.toc: $(intermediates.COMMON)/classes.jack
- touch $@
-endif # LOCAL_JACK_ENABLED
-endif # ! prebuilt_module_is_dex_javalib
endif # JAVA_LIBRARIES
$(built_module) : $(LOCAL_ADDITIONAL_DEPENDENCIES)
diff --git a/core/product.mk b/core/product.mk
index 95e3b27..c955ccc 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -142,7 +142,6 @@
PRODUCT_SYSTEM_HEADROOM \
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO \
PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS \
- PRODUCT_COMPILE_WITH_JACK \
@@ -304,7 +303,7 @@
_product_stash_var_list += \
DEFAULT_SYSTEM_DEV_CERTIFICATE \
WITH_DEXPREOPT \
- WITH_DEXPREOPT_BOOT_IMG_ONLY \
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY \
WITH_DEXPREOPT_APP_IMAGE
#
diff --git a/core/product_config.mk b/core/product_config.mk
index 6ab40c0..492219b 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -88,7 +88,7 @@
# Provide "PRODUCT-<prodname>-<goal>" targets, which lets you build
# a particular configuration without needing to set up the environment.
#
-ifndef KATI
+ifeq ($(CALLED_FROM_SETUP),true)
product_goals := $(strip $(filter PRODUCT-%,$(MAKECMDGOALS)))
ifdef product_goals
# Scrape the product and build names out of the goal,
@@ -129,14 +129,14 @@
# position, in case it matters.
override MAKECMDGOALS := $(patsubst $(goal_name),$(default_goal_substitution),$(MAKECMDGOALS))
endif
-endif # !KATI
+endif # CALLED_FROM_SETUP
# else: Use the value set in the environment or buildspec.mk.
# ---------------------------------------------------------------
# Provide "APP-<appname>" targets, which lets you build
# an unbundled app.
#
-ifndef KATI
+ifeq ($(CALLED_FROM_SETUP),true)
unbundled_goals := $(strip $(filter APP-%,$(MAKECMDGOALS)))
ifdef unbundled_goals
ifneq ($(words $(unbundled_goals)),1)
@@ -453,7 +453,3 @@
# Whether any paths are excluded from sanitization when SANITIZE_TARGET=integer_overflow
PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS := \
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS))
-
-# Temporarily force Jack back on for a product
-PRODUCT_COMPILE_WITH_JACK := \
- $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_COMPILE_WITH_JACK))
diff --git a/core/soong_java_prebuilt.mk b/core/soong_java_prebuilt.mk
index 9198d68..b251d7c 100644
--- a/core/soong_java_prebuilt.mk
+++ b/core/soong_java_prebuilt.mk
@@ -35,11 +35,38 @@
endif # TURBINE_DISABLED != false
ifdef LOCAL_SOONG_DEX_JAR
-$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
-$(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(LOCAL_BUILT_MODULE)))
-java-dex : $(LOCAL_BUILT_MODULE)
+ ifndef LOCAL_IS_HOST_MODULE
+ $(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
+
+ # defines built_odex along with rule to install odex
+ include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk
+
+ ifdef LOCAL_DEX_PREOPT
+ ifneq ($(dexpreopt_boot_jar_module),) # boot jar
+ # boot jar's rules are defined in dex_preopt.mk
+ dexpreopted_boot_jar := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module)_nodex.jar
+ $(eval $(call copy-one-file,$(dexpreopted_boot_jar),$(LOCAL_BUILT_MODULE)))
+
+ # For libart boot jars, we don't have .odex files.
+ else # ! boot jar
+ $(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE)
+ # Use pattern rule - we may have multiple built odex files.
+$(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(common_javalib.jar)
+ @echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)"
+ $(call dexpreopt-one-file,$<,$@)
+
+ $(eval $(call dexpreopt-copy-jar,$(common_javalib.jar),$(LOCAL_BUILT_MODULE),$(LOCAL_DEX_PREOPT)))
+ endif # ! boot jar
+ else # LOCAL_DEX_PREOPT
+ $(eval $(call copy-one-file,$(common_javalib.jar),$(LOCAL_BUILT_MODULE)))
+ endif # LOCAL_DEX_PREOPT
+ else # LOCAL_IS_HOST_MODULE
+ $(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(LOCAL_BUILT_MODULE)))
+ endif
+
+ java-dex : $(LOCAL_BUILT_MODULE)
else
-$(eval $(call copy-one-file,$(full_classes_jar),$(LOCAL_BUILT_MODULE)))
+ $(eval $(call copy-one-file,$(full_classes_jar),$(LOCAL_BUILT_MODULE)))
endif
javac-check : $(full_classes_jar)
diff --git a/core/static_java_library.mk b/core/static_java_library.mk
index d4f4f99..c402dce 100644
--- a/core/static_java_library.mk
+++ b/core/static_java_library.mk
@@ -24,10 +24,6 @@
LOCAL_IS_STATIC_JAVA_LIBRARY := true
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-#################################
-include $(BUILD_SYSTEM)/configure_local_jack.mk
-#################################
-
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
my_res_package :=
@@ -76,13 +72,6 @@
LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)
-ifdef LOCAL_JACK_ENABLED
-ifndef LOCAL_JACK_PROGUARD_FLAGS
- LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS)
-endif
-LOCAL_JACK_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_JACK_PROGUARD_FLAGS)
-endif # LOCAL_JACK_ENABLED
-
R_file_stamp := $(intermediates.COMMON)/src/R.stamp
LOCAL_INTERMEDIATE_TARGETS += $(R_file_stamp)
@@ -179,11 +168,7 @@
$(LOCAL_BUILT_MODULE): $(R_file_stamp)
$(java_source_list_file): $(R_file_stamp)
-ifdef LOCAL_JACK_ENABLED
-$(noshrob_classes_jack): $(R_file_stamp)
-$(full_classes_jack): $(R_file_stamp)
-$(jack_check_timestamp): $(R_file_stamp)
-endif # LOCAL_JACK_ENABLED
+$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(R_file_stamp)))
$(full_classes_compiled_jar): $(R_file_stamp)
$(full_classes_turbine_jar): $(R_file_stamp)
diff --git a/core/tasks/tools/build_custom_image.mk b/core/tasks/tools/build_custom_image.mk
index 370934b..7c38546 100644
--- a/core/tasks/tools/build_custom_image.mk
+++ b/core/tasks/tools/build_custom_image.mk
@@ -135,6 +135,7 @@
echo "verity_block_device=$(PRIVATE_VERITY_BLOCK_DEVICE)" >> $(PRIVATE_INTERMEDIATES)/image_info.txt)
$(if $(PRIVATE_SUPPORT_VERITY_FEC),\
$(hide) echo "verity_fec=$(PRIVATE_SUPPORT_VERITY_FEC)" >> $(PRIVATE_INTERMEDIATES)/image_info.txt)
+ $(if $(filter eng, $(TARGET_BUILD_VARIANT)),$(hide) echo "verity_disable=true" >> $(PRIVATE_INTERMEDIATES)/image_info.txt)
$(hide) echo "avb_avbtool=$(PRIVATE_AVB_AVBTOOL)" >> $(PRIVATE_INTERMEDIATES)/image_info.txt
$(if $(PRIVATE_AVB_KEY_PATH),\
$(hide) echo "avb_key_path=$(PRIVATE_AVB_KEY_PATH)" >> $(PRIVATE_INTERMEDIATES)/image_info.txt;\
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 498d551..802c481 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -113,15 +113,6 @@
PLATFORM_SDK_VERSION := 26
endif
-ifndef PLATFORM_JACK_MIN_SDK_VERSION
- # This is definition of the min SDK version given to Jack for the current
- # platform. For released version it should be the same as
- # PLATFORM_SDK_VERSION. During development, this number may be incremented
- # before PLATFORM_SDK_VERSION if the platform starts to add new java
- # language supports.
- PLATFORM_JACK_MIN_SDK_VERSION := o-b1
-endif
-
ifndef PLATFORM_VERSION_CODENAME
PLATFORM_VERSION_CODENAME := $(PLATFORM_VERSION_CODENAME.$(TARGET_PLATFORM_VERSION))
ifndef PLATFORM_VERSION_CODENAME
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 8bb3ed0..331f082 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -34,7 +34,7 @@
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
- WITH_DEXPREOPT_BOOT_IMG_ONLY := false
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
diff --git a/target/board/generic/sepolicy/OWNERS b/target/board/generic/sepolicy/OWNERS
new file mode 100644
index 0000000..4bd7e34
--- /dev/null
+++ b/target/board/generic/sepolicy/OWNERS
@@ -0,0 +1,6 @@
+nnk@google.com
+jeffv@google.com
+klyubin@google.com
+dcashman@google.com
+jbires@google.com
+sspatil@google.com
diff --git a/target/board/generic/sepolicy/domain.te b/target/board/generic/sepolicy/domain.te
index 5d5e4ac..3706dba 100644
--- a/target/board/generic/sepolicy/domain.te
+++ b/target/board/generic/sepolicy/domain.te
@@ -1,6 +1,3 @@
-# For /sys/qemu_trace files in the emulator.
-allow domain sysfs_writable:dir search;
-allow domain sysfs_writable:file rw_file_perms;
allow domain qemu_device:chr_file rw_file_perms;
get_prop(domain, qemu_prop)
diff --git a/target/board/generic/sepolicy/file.te b/target/board/generic/sepolicy/file.te
deleted file mode 100644
index f4ae9e4..0000000
--- a/target/board/generic/sepolicy/file.te
+++ /dev/null
@@ -1 +0,0 @@
-type sysfs_writable, fs_type, sysfs_type, mlstrustedobject;
diff --git a/target/board/generic/sepolicy/file_contexts b/target/board/generic/sepolicy/file_contexts
index f550f4d..a9b1472 100644
--- a/target/board/generic/sepolicy/file_contexts
+++ b/target/board/generic/sepolicy/file_contexts
@@ -15,7 +15,6 @@
/dev/qemu_.* u:object_r:qemu_device:s0
/dev/ttyGF[0-9]* u:object_r:serial_device:s0
/dev/ttyS2 u:object_r:console_device:s0
-/sys/qemu_trace(/.*)? u:object_r:sysfs_writable:s0
/vendor/bin/init\.ranchu-core\.sh u:object_r:goldfish_setup_exec:s0
/vendor/bin/init\.ranchu-net\.sh u:object_r:goldfish_setup_exec:s0
/vendor/bin/qemu-props u:object_r:qemu_props_exec:s0
diff --git a/target/board/generic/sepolicy/qemu_props.te b/target/board/generic/sepolicy/qemu_props.te
index 0f5ec8c..33055c8 100644
--- a/target/board/generic/sepolicy/qemu_props.te
+++ b/target/board/generic/sepolicy/qemu_props.te
@@ -4,6 +4,7 @@
init_daemon_domain(qemu_props)
+set_prop(qemu_props, opengles_prop)
set_prop(qemu_props, qemu_prop)
set_prop(qemu_props, dalvik_prop)
set_prop(qemu_props, qemu_cmdline)
diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk
index 2feba6b..d6df2cf 100644
--- a/target/board/generic_arm64/BoardConfig.mk
+++ b/target/board/generic_arm64/BoardConfig.mk
@@ -65,7 +65,7 @@
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
- WITH_DEXPREOPT_BOOT_IMG_ONLY := false
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
diff --git a/target/board/generic_arm64_a/BoardConfig.mk b/target/board/generic_arm64_a/BoardConfig.mk
index fbac417..88bd87c 100644
--- a/target/board/generic_arm64_a/BoardConfig.mk
+++ b/target/board/generic_arm64_a/BoardConfig.mk
@@ -63,8 +63,6 @@
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736 # 1.5 GB
-# TODO(b/35790399): remove when b/35790399 is fixed.
-BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/target/board/generic_arm64_ab/BoardConfig.mk b/target/board/generic_arm64_ab/BoardConfig.mk
index 99dbe9f..dafd592 100644
--- a/target/board/generic_arm64_ab/BoardConfig.mk
+++ b/target/board/generic_arm64_ab/BoardConfig.mk
@@ -74,8 +74,6 @@
# Fix this!
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648
-# TODO(b/35790399): remove when b/35790399 is fixed.
-BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/target/board/generic_arm64_ab/sepolicy/OWNERS b/target/board/generic_arm64_ab/sepolicy/OWNERS
new file mode 100644
index 0000000..4bd7e34
--- /dev/null
+++ b/target/board/generic_arm64_ab/sepolicy/OWNERS
@@ -0,0 +1,6 @@
+nnk@google.com
+jeffv@google.com
+klyubin@google.com
+dcashman@google.com
+jbires@google.com
+sspatil@google.com
diff --git a/target/board/generic_arm_a/BoardConfig.mk b/target/board/generic_arm_a/BoardConfig.mk
index 6c1b36f..6530e6e 100644
--- a/target/board/generic_arm_a/BoardConfig.mk
+++ b/target/board/generic_arm_a/BoardConfig.mk
@@ -55,8 +55,6 @@
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
-# TODO(b/35790399): remove when b/35790399 is fixed.
-BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk
index a9e46b4..fb66d21 100644
--- a/target/board/generic_mips/BoardConfig.mk
+++ b/target/board/generic_mips/BoardConfig.mk
@@ -42,7 +42,7 @@
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
- WITH_DEXPREOPT_BOOT_IMG_ONLY := false
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
diff --git a/target/board/generic_mips64/BoardConfig.mk b/target/board/generic_mips64/BoardConfig.mk
index 6cb6c11..67bb51f 100644
--- a/target/board/generic_mips64/BoardConfig.mk
+++ b/target/board/generic_mips64/BoardConfig.mk
@@ -57,7 +57,7 @@
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
- WITH_DEXPREOPT_BOOT_IMG_ONLY := false
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk
index bb2166b..000a9a3 100644
--- a/target/board/generic_x86/BoardConfig.mk
+++ b/target/board/generic_x86/BoardConfig.mk
@@ -22,7 +22,7 @@
# of an SDK AVD. Note that this operation only works on Linux for now
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT ?= true
-WITH_DEXPREOPT_BOOT_IMG_ONLY ?= false
+WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false
endif
TARGET_USES_HWC2 := true
diff --git a/target/board/generic_x86/sepolicy/OWNERS b/target/board/generic_x86/sepolicy/OWNERS
new file mode 100644
index 0000000..4bd7e34
--- /dev/null
+++ b/target/board/generic_x86/sepolicy/OWNERS
@@ -0,0 +1,6 @@
+nnk@google.com
+jeffv@google.com
+klyubin@google.com
+dcashman@google.com
+jbires@google.com
+sspatil@google.com
diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk
index b49a10c..883dd2e 100755
--- a/target/board/generic_x86_64/BoardConfig.mk
+++ b/target/board/generic_x86_64/BoardConfig.mk
@@ -28,7 +28,7 @@
# of an SDK AVD. Note that this operation only works on Linux for now
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT ?= true
-WITH_DEXPREOPT_BOOT_IMG_ONLY ?= false
+WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false
endif
TARGET_USES_HWC2 := true
diff --git a/target/board/generic_x86_arm/BoardConfig.mk b/target/board/generic_x86_arm/BoardConfig.mk
index 4a2e159..847ad80 100644
--- a/target/board/generic_x86_arm/BoardConfig.mk
+++ b/target/board/generic_x86_arm/BoardConfig.mk
@@ -39,7 +39,7 @@
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
- WITH_DEXPREOPT_BOOT_IMG_ONLY := false
+ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
diff --git a/target/product/verity.mk b/target/product/verity.mk
index 0badb9f..d954159 100644
--- a/target/product/verity.mk
+++ b/target/product/verity.mk
@@ -14,20 +14,16 @@
# limitations under the License.
#
-# Provides dependencies necessary for verified boot (only for user and
-# userdebug builds)
+# Provides dependencies necessary for verified boot.
-user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
-ifneq (,$(user_variant))
- PRODUCT_SUPPORTS_BOOT_SIGNER := true
- PRODUCT_SUPPORTS_VERITY := true
- PRODUCT_SUPPORTS_VERITY_FEC := true
+PRODUCT_SUPPORTS_BOOT_SIGNER := true
+PRODUCT_SUPPORTS_VERITY := true
+PRODUCT_SUPPORTS_VERITY_FEC := true
- # The dev key is used to sign boot and recovery images, and the verity
- # metadata table. Actual product deliverables will be re-signed by hand.
- # We expect this file to exist with the suffixes ".x509.pem" and ".pk8".
- PRODUCT_VERITY_SIGNING_KEY := build/target/product/security/verity
+# The dev key is used to sign boot and recovery images, and the verity
+# metadata table. Actual product deliverables will be re-signed by hand.
+# We expect this file to exist with the suffixes ".x509.pem" and ".pk8".
+PRODUCT_VERITY_SIGNING_KEY := build/target/product/security/verity
- PRODUCT_PACKAGES += \
- verity_key
-endif
+PRODUCT_PACKAGES += \
+ verity_key
diff --git a/tools/acp/Android.bp b/tools/acp/Android.bp
index faf2034..64f5a10 100644
--- a/tools/acp/Android.bp
+++ b/tools/acp/Android.bp
@@ -5,6 +5,7 @@
cc_binary_host {
srcs: ["acp.c"],
+ cflags: ["-Wall", "-Werror"],
static_libs: ["libhost"],
name: "acp",
diff --git a/tools/acp/acp.c b/tools/acp/acp.c
index eb1de1f..d4a9fbc 100644
--- a/tools/acp/acp.c
+++ b/tools/acp/acp.c
@@ -41,10 +41,9 @@
int process(int argc, char* const argv[], unsigned int options)
{
int retVal = 0;
- int i, cc;
+ int i;
char* stripDest = NULL;
int stripDestLen;
- struct stat destStat;
bool destMustBeDir = false;
struct stat sb;
diff --git a/tools/atree/Android.bp b/tools/atree/Android.bp
index 3c3a8ef..5fbe042 100644
--- a/tools/atree/Android.bp
+++ b/tools/atree/Android.bp
@@ -9,5 +9,6 @@
"files.cpp",
"fs.cpp",
],
+ cflags: ["-Wall", "-Werror"],
static_libs: ["libhost"],
}
diff --git a/tools/atree/files.cpp b/tools/atree/files.cpp
index d945f58..d5c8a97 100644
--- a/tools/atree/files.cpp
+++ b/tools/atree/files.cpp
@@ -425,8 +425,6 @@
const vector<string>& excludes,
vector<FileRecord>* more)
{
- int err;
-
string full = path_append(rec.sourceBase, rec.sourceName);
full = path_append(full, path);
diff --git a/tools/dump-package-stats b/tools/dump-package-stats
index d11e727..7814368 100755
--- a/tools/dump-package-stats
+++ b/tools/dump-package-stats
@@ -77,7 +77,7 @@
then
fail "$file doesn't exist or isn't a file"
fi
- unzip -lv "$file" | awk '
+ unzip -lvq "$file" | awk '
BEGIN {
total_compressed = 0;
total_uncompressed = 0;
@@ -88,16 +88,6 @@
# Make sure the output of unzip -lv looks like something we expect.
#
NR == "1" {
- if ($1 != "Archive:") {
- print "'$PROGNAME': ERROR: Unexpected zip listing format" > \
- "/dev/stderr";
- print "'$PROGNAME': ERROR: Line 1 is \"" $0 "\"" > \
- "/dev/stderr";
- failed = 1;
- exit 1;
- }
- }
- NR == "2" {
if (NF != "8" ||
$1 != "Length" ||
$2 != "Method" ||
diff --git a/tools/fs_get_stats/Android.bp b/tools/fs_get_stats/Android.bp
index 6684319..67742b8 100644
--- a/tools/fs_get_stats/Android.bp
+++ b/tools/fs_get_stats/Android.bp
@@ -1,6 +1,7 @@
cc_binary_host {
name: "fs_get_stats",
srcs: ["fs_get_stats.c"],
+ cflags: ["-Wall", "-Werror"],
shared_libs: [
"libcutils",
"liblog",
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index 94626d7..816cf4e 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -225,12 +225,15 @@
return True
def BuildVerityMetadata(image_size, verity_metadata_path, root_hash, salt,
- block_device, signer_path, key, signer_args):
+ block_device, signer_path, key, signer_args,
+ verity_disable):
cmd = ["system/extras/verity/build_verity_metadata.py", "build",
str(image_size), verity_metadata_path, root_hash, salt, block_device,
signer_path, key]
if signer_args:
cmd.append("--signer_args=\"%s\"" % (' '.join(signer_args),))
+ if verity_disable:
+ cmd.append("--verity_disable")
output, exit_code = RunCommand(cmd)
if exit_code != 0:
print "Could not build verity metadata! Error: %s" % output
@@ -334,8 +337,10 @@
# build the metadata blocks
root_hash = prop_dict["verity_root_hash"]
salt = prop_dict["verity_salt"]
+ verity_disable = "verity_disable" in prop_dict
if not BuildVerityMetadata(image_size, verity_metadata_path, root_hash, salt,
- block_dev, signer_path, signer_key, signer_args):
+ block_dev, signer_path, signer_key, signer_args,
+ verity_disable):
shutil.rmtree(tempdir_name, ignore_errors=True)
return False
@@ -644,6 +649,7 @@
"verity_key",
"verity_signer_cmd",
"verity_fec",
+ "verity_disable",
"avb_enable",
"avb_avbtool",
"avb_salt",
diff --git a/tools/zipalign/Android.bp b/tools/zipalign/Android.bp
index cfc6aec..2aa6450 100644
--- a/tools/zipalign/Android.bp
+++ b/tools/zipalign/Android.bp
@@ -13,6 +13,8 @@
"ZipFile.cpp",
],
+ cflags: ["-Wall", "-Werror"],
+
static_libs: [
"libandroidfw",
"libutils",
diff --git a/tools/zipalign/ZipFile.cpp b/tools/zipalign/ZipFile.cpp
index 1b39902..719c6b9 100644
--- a/tools/zipalign/ZipFile.cpp
+++ b/tools/zipalign/ZipFile.cpp
@@ -785,8 +785,6 @@
status_t ZipFile::copyDataToFp(FILE* dstFp,
const void* data, size_t size, uint32_t* pCRC32)
{
- size_t count;
-
*pCRC32 = crc32(0L, Z_NULL, 0);
if (size > 0) {
*pCRC32 = crc32(*pCRC32, (const unsigned char*)data, size);
diff --git a/tools/ziptime/Android.bp b/tools/ziptime/Android.bp
index 874d346..5ef45ed 100644
--- a/tools/ziptime/Android.bp
+++ b/tools/ziptime/Android.bp
@@ -27,6 +27,7 @@
],
name: "ziptime",
+ cflags: ["-Wall", "-Werror"],
target: {
windows: {
enabled: true,
diff --git a/tools/ziptime/ZipEntry.cpp b/tools/ziptime/ZipEntry.cpp
index 51ce09f..e7b52ed 100644
--- a/tools/ziptime/ZipEntry.cpp
+++ b/tools/ziptime/ZipEntry.cpp
@@ -86,7 +86,6 @@
*/
status_t ZipEntry::LocalFileHeader::rewrite(FILE* fp)
{
- status_t result = 0;
uint8_t buf[kLFHLen];
if (fread(buf, 1, kLFHLen, fp) != kLFHLen)
@@ -124,7 +123,6 @@
*/
status_t ZipEntry::CentralDirEntry::rewrite(FILE* fp)
{
- status_t result = 0;
uint8_t buf[kCDELen];
uint16_t fileNameLength, extraFieldLength, fileCommentLength;