Merge changes I6457933a,I955aa0fa
* changes:
Revert "Relax inode usage estimation slack for DAP right sizing"
Revert "Increase slack for inode estimation algorithm"
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/envsetup.mk b/core/envsetup.mk
index f5babb6..8150fb6 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -206,7 +206,7 @@
#################################################################
# Set up minimal BOOTCLASSPATH list of jars to build/execute
# java code with dalvikvm/art.
-TARGET_CORE_JARS := core-oj core-libart core-simple conscrypt okhttp bouncycastle apache-xml
+TARGET_CORE_JARS := core-oj core-libart conscrypt okhttp bouncycastle apache-xml
ifeq ($(EMMA_INSTRUMENT),true)
ifneq ($(EMMA_INSTRUMENT_STATIC),true)
# For instrumented build, if Jacoco is not being included statically
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/main.mk b/core/main.mk
index 282821c..c84cbe0 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -1305,8 +1305,8 @@
# Build files and then package it into the rom formats
.PHONY: droidcore
-droidcore: files \
- systemimage \
+droidcore: $(filter $(HOST_OUT_ROOT)/%,$(modules_to_install)) \
+ $(INSTALLED_SYSTEMIMAGE_TARGET) \
$(INSTALLED_RAMDISK_TARGET) \
$(INSTALLED_BOOTIMAGE_TARGET) \
$(INSTALLED_RECOVERYIMAGE_TARGET) \
@@ -1337,6 +1337,7 @@
$(INSTALLED_FILES_JSON_ROOT) \
$(INSTALLED_FILES_FILE_RECOVERY) \
$(INSTALLED_FILES_JSON_RECOVERY) \
+ $(INSTALLED_ANDROID_INFO_TXT_TARGET) \
soong_docs
# dist_files only for putting your library into the dist directory with a full build.
diff --git a/core/package_internal.mk b/core/package_internal.mk
index c657f2e..31cb01e 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -88,7 +88,7 @@
endif
# If LOCAL_MODULE matches a rule in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES,
-# override the manfest package name by the (first) rule matched
+# override the manifest package name by the (first) rule matched
override_manifest_name := $(strip $(word 1,\
$(foreach rule,$(PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES),\
$(eval _pkg_name_pat := $(call word-colon,1,$(rule)))\
@@ -100,7 +100,7 @@
))
ifneq (,$(override_manifest_name))
-# Note: this can override LOCAL_MANFEST_PACKAGE_NAME value set in Android.mk
+# Note: this can override LOCAL_MANIFEST_PACKAGE_NAME value set in Android.mk
LOCAL_MANIFEST_PACKAGE_NAME := $(override_manifest_name)
endif
diff --git a/core/pdk_config.mk b/core/pdk_config.mk
index b2c9e9e..383c11a 100644
--- a/core/pdk_config.mk
+++ b/core/pdk_config.mk
@@ -20,7 +20,6 @@
target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates \
target/common/obj/JAVA_LIBRARIES/core-oj_intermediates \
target/common/obj/JAVA_LIBRARIES/core-libart_intermediates \
- target/common/obj/JAVA_LIBRARIES/core-simple_intermediates \
target/common/obj/JAVA_LIBRARIES/legacy-test_intermediates \
target/common/obj/JAVA_LIBRARIES/legacy-android-test_intermediates \
target/common/obj/JAVA_LIBRARIES/ext_intermediates \
diff --git a/core/python_binary_host_test_config_template.xml b/core/python_binary_host_test_config_template.xml
new file mode 100644
index 0000000..0f63953
--- /dev/null
+++ b/core/python_binary_host_test_config_template.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<configuration description="Config to run {MODULE} unittests">
+ <test class="com.android.tradefed.testtype.python.PythonBinaryHostTest" >
+ <option name="par-file-name" value="{MODULE}" />
+ <option name="test-timeout" value="5m" />
+ </test>
+</configuration>
diff --git a/core/soong_java_prebuilt.mk b/core/soong_java_prebuilt.mk
index a62590d..cfda44e 100644
--- a/core/soong_java_prebuilt.mk
+++ b/core/soong_java_prebuilt.mk
@@ -121,6 +121,11 @@
java-dex : $(common_javalib.jar)
endif # LOCAL_UNINSTALLABLE_MODULE
else # LOCAL_SOONG_DEX_JAR
+ ifndef LOCAL_UNINSTALLABLE_MODULE
+ ifndef LOCAL_IS_HOST_MODULE
+ $(call pretty-error,Installable device module must have LOCAL_SOONG_DEX_JAR set)
+ endif
+ endif
$(eval $(call copy-one-file,$(full_classes_jar),$(LOCAL_BUILT_MODULE)))
endif # LOCAL_SOONG_DEX_JAR
diff --git a/core/tasks/module-info.mk b/core/tasks/module-info.mk
index 9eb3ab3..2c56162 100644
--- a/core/tasks/module-info.mk
+++ b/core/tasks/module-info.mk
@@ -25,7 +25,7 @@
# If ONE_SHOT_MAKEFILE is set, our view of the world is smaller, so don't
# rewrite the file in that came.
ifndef ONE_SHOT_MAKEFILE
-files: $(MODULE_INFO_JSON)
+droidcore: $(MODULE_INFO_JSON)
endif
$(call dist-for-goals, general-tests, $(MODULE_INFO_JSON))
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/gsi/current.txt b/target/product/gsi/current.txt
index 17d2f1b..9eff6b6 100644
--- a/target/product/gsi/current.txt
+++ b/target/product/gsi/current.txt
@@ -70,6 +70,7 @@
VNDK-core: android.hardware.automotive.vehicle@2.0.so
VNDK-core: android.hardware.biometrics.fingerprint@2.1.so
VNDK-core: android.hardware.bluetooth.a2dp@1.0.so
+VNDK-core: android.hardware.bluetooth.audio@2.0.so
VNDK-core: android.hardware.bluetooth@1.0.so
VNDK-core: android.hardware.boot@1.0.so
VNDK-core: android.hardware.broadcastradio@1.0.so
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