Merge "Add IBluetoothAudio HAL 2.0 to VNDK"
diff --git a/OWNERS b/OWNERS
index b9fee4e..7bc9fe0 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,8 +1,7 @@
ccross@android.com
dwillemsen@google.com
-nanzhang@google.com
-per-file * = ccross@android.com,dwillemsen@google.com,nanzhang@google.com
+per-file * = ccross@android.com,dwillemsen@google.com
# for version updates
per-file version_defaults.mk = aseaton@google.com,elisapascual@google.com
diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk
index 0793516..3eaf55b 100644
--- a/core/dex_preopt_config.mk
+++ b/core/dex_preopt_config.mk
@@ -1,8 +1,8 @@
DEX_PREOPT_CONFIG := $(PRODUCT_OUT)/dexpreopt.config
# list of boot classpath jars for dexpreopt
-DEXPREOPT_BOOT_JARS_MODULES := $(PRODUCT_BOOT_JARS)
-PRODUCT_BOOTCLASSPATH_JARS := $(strip $(DEXPREOPT_BOOT_JARS_MODULES))
+DEXPREOPT_BOOT_JARS_MODULES := $(strip $(filter-out conscrypt,$(PRODUCT_BOOT_JARS)))
+PRODUCT_BOOTCLASSPATH_JARS := $(strip $(DEXPREOPT_BOOT_JARS_MODULES) $(filter conscrypt,$(PRODUCT_BOOT_JARS)))
PRODUCT_BOOTCLASSPATH := $(subst $(space),:,$(foreach m,$(PRODUCT_BOOTCLASSPATH_JARS),/system/framework/$(m).jar))
PRODUCT_SYSTEM_SERVER_CLASSPATH := $(subst $(space),:,$(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),/system/framework/$(m).jar))
@@ -118,6 +118,7 @@
$(call add_json_list, PreoptBootClassPathDexFiles, $(DEXPREOPT_BOOTCLASSPATH_DEX_FILES))
$(call add_json_list, PreoptBootClassPathDexLocations, $(DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS))
$(call add_json_list, BootJars, $(PRODUCT_BOOT_JARS))
+ $(call add_json_list, PreoptBootJars, $(DEXPREOPT_BOOT_JARS_MODULES))
$(call add_json_list, SystemServerJars, $(PRODUCT_SYSTEM_SERVER_JARS))
$(call add_json_list, SystemServerApps, $(PRODUCT_SYSTEM_SERVER_APPS))
$(call add_json_list, SpeedApps, $(PRODUCT_DEXPREOPT_SPEED_APPS))
diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk
index b31f5a8..47a8de8 100644
--- a/core/dex_preopt_libart_boot.mk
+++ b/core/dex_preopt_libart_boot.mk
@@ -113,7 +113,6 @@
--android-root=$(PRODUCT_OUT)/system \
--no-inline-from=core-oj.jar \
--abort-on-hard-verifier-error \
- --abort-on-soft-verifier-error \
$(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(ART_BOOT_IMAGE_EXTRA_ARGS) \
|| ( echo "$(DEX2OAT_FAILURE_MESSAGE)" ; false )
diff --git a/core/jacoco.mk b/core/jacoco.mk
index 6406df4..148bb04 100644
--- a/core/jacoco.mk
+++ b/core/jacoco.mk
@@ -51,7 +51,7 @@
-d $(PRIVATE_UNZIPPED_PATH) \
$(PRIVATE_INCLUDE_ARGS)
(cd $(PRIVATE_UNZIPPED_PATH) && rm -rf $(PRIVATE_EXCLUDE_ARGS))
- (cd $(PRIVATE_UNZIPPED_PATH) && find -not -name "*.class" -type f | xargs --no-run-if-empty rm)
+ (cd $(PRIVATE_UNZIPPED_PATH) && find -not -name "*.class" -type f -exec rm {} \;)
touch $(PRIVATE_UNZIPPED_TIMESTAMP_PATH)
# Unfortunately in the previous task above,
# 'rm -rf $(PRIVATE_EXCLUDE_ARGS)' needs to be a separate
diff --git a/core/soong_config.mk b/core/soong_config.mk
index 58e1a03..77329c3 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -111,6 +111,9 @@
$(call add_json_bool, UncompressPrivAppDex, $(call invert_bool,$(filter true,$(DONT_UNCOMPRESS_PRIV_APPS_DEXS))))
$(call add_json_list, ModulesLoadedByPrivilegedModules, $(PRODUCT_LOADED_BY_PRIVILEGED_MODULES))
+$(call add_json_list, BootJars, $(PRODUCT_BOOT_JARS))
+$(call add_json_list, PreoptBootJars, $(DEXPREOPT_BOOT_JARS_MODULES))
+
$(call add_json_bool, DisableDexPreopt, $(call invert_bool,$(filter true,$(WITH_DEXPREOPT))))
$(call add_json_list, DisableDexPreoptModules, $(DEXPREOPT_DISABLED_MODULES))
$(call add_json_str, DexPreoptProfileDir, $(PRODUCT_DEX_PREOPT_PROFILE_DIR))
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
index 7c3ac3b..df793bf 100644
--- a/target/product/base_system.mk
+++ b/target/product/base_system.mk
@@ -259,6 +259,7 @@
uncrypt \
usbd \
vdc \
+ viewcompiler \
voip-common \
vold \
WallpaperBackup \
diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk
index 71834aa..f1b09c1 100644
--- a/target/product/runtime_libart.mk
+++ b/target/product/runtime_libart.mk
@@ -52,9 +52,7 @@
# ART/dex helpers.
PRODUCT_PACKAGES += art-tools
# Android Runtime APEX module.
-ifneq ($(DONT_INCLUDE_RUNTIME_APEX), true)
- PRODUCT_PACKAGES += com.android.runtime
-endif
+PRODUCT_PACKAGES += com.android.runtime
# Certificates.
PRODUCT_PACKAGES += \
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index da5ea4a..e75b3b7 100755
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -82,18 +82,23 @@
class OutputFile(object):
- def __init__(self, output_zip, input_dir, prefix, name):
- self._output_zip = output_zip
- self.input_name = os.path.join(input_dir, prefix, name)
+ """A helper class to write a generated file to the given dir or zip.
+ When generating images, we want the outputs to go into the given zip file, or
+ the given dir.
+
+ Attributes:
+ name: The name of the output file, regardless of the final destination.
+ """
+
+ def __init__(self, output_zip, input_dir, prefix, name):
+ # We write the intermediate output file under the given input_dir, even if
+ # the final destination is a zip archive.
+ self.name = os.path.join(input_dir, prefix, name)
+ self._output_zip = output_zip
if self._output_zip:
self._zip_name = os.path.join(prefix, name)
- root, suffix = os.path.splitext(name)
- self.name = common.MakeTempFile(prefix=root + '-', suffix=suffix)
- else:
- self.name = self.input_name
-
def Write(self):
if self._output_zip:
common.ZipWrite(self._output_zip, self.name, self._zip_name)
@@ -129,9 +134,9 @@
output_zip. Returns the name of the system image file."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "system.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("system.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
def output_sink(fn, data):
ofile = open(os.path.join(OPTIONS.input_tmp, "SYSTEM", fn), "w")
@@ -161,7 +166,7 @@
and store it in output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "system_other.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("system_other.img already exists; no need to rebuild...")
return
@@ -173,9 +178,9 @@
output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "vendor.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("vendor.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
block_list = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "vendor.map")
CreateImage(OPTIONS.input_tmp, OPTIONS.info_dict, "vendor", img,
@@ -188,9 +193,9 @@
output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "product.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("product.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
block_list = OutputFile(
output_zip, OPTIONS.input_tmp, "IMAGES", "product.map")
@@ -206,9 +211,9 @@
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES",
"product_services.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("product_services.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
block_list = OutputFile(
output_zip, OPTIONS.input_tmp, "IMAGES", "product_services.map")
@@ -222,9 +227,9 @@
"""Turn the contents of ODM into an odm image and store it in output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "odm.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("odm.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
block_list = OutputFile(
output_zip, OPTIONS.input_tmp, "IMAGES", "odm.map")
@@ -241,9 +246,9 @@
image under PREBUILT_IMAGES/, signs it as needed, and returns the image name.
"""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "dtbo.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("dtbo.img already exists; no need to rebuild...")
- return img.input_name
+ return img.name
dtbo_prebuilt_path = os.path.join(
OPTIONS.input_tmp, "PREBUILT_IMAGES", "dtbo.img")
@@ -344,7 +349,7 @@
"""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "userdata.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("userdata.img already exists; no need to rebuild...")
return
@@ -418,9 +423,9 @@
img = OutputFile(
output_zip, OPTIONS.input_tmp, "IMAGES", "{}.img".format(name))
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("%s.img already exists; not rebuilding...", name)
- return img.input_name
+ return img.name
avbtool = os.getenv('AVBTOOL') or OPTIONS.info_dict["avb_avbtool"]
cmd = [avbtool, "make_vbmeta_image", "--output", img.name]
@@ -497,7 +502,7 @@
"""Create an empty cache image and store it in output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "cache.img")
- if os.path.exists(img.input_name):
+ if os.path.exists(img.name):
logger.info("cache.img already exists; no need to rebuild...")
return