Merge "Switch apicheck over from doclava to metalava"
diff --git a/core/Makefile b/core/Makefile
index 179cf29..1b2b704 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1619,12 +1619,13 @@
$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_IMAGE_GENERATOR_JAR := $(image_generator_jar)
$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_ZOPFLIPNG := $(zopflipng)
$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_RECOVERY_IMAGE_WIDTH := $(recovery_image_width)
-$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_RECOVERY_TEXT_LIST := \
+$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_RECOVERY_BACKGROUND_TEXT_LIST := \
recovery_installing \
recovery_installing_security \
recovery_erasing \
recovery_error \
- recovery_no_command \
+ recovery_no_command
+$(RECOVERY_INSTALLING_TEXT_FILE): PRIVATE_RECOVERY_WIPE_DATA_TEXT_LIST := \
recovery_cancel_wipe_data \
recovery_factory_data_reset \
recovery_try_again \
@@ -1636,17 +1637,17 @@
@rm -rf $(PRIVATE_RECOVERY_FONT_FILES_DIR)
@mkdir -p $(PRIVATE_RECOVERY_FONT_FILES_DIR)
$(foreach filename,$(PRIVATE_SOURCE_FONTS), cp $(filename) $(PRIVATE_RECOVERY_FONT_FILES_DIR) &&) true
-
@rm -rf $(dir $@)
@mkdir -p $(dir $@)
- $(foreach text_name,$(PRIVATE_RECOVERY_TEXT_LIST), \
+ $(foreach text_name,$(PRIVATE_RECOVERY_BACKGROUND_TEXT_LIST) $(PRIVATE_RECOVERY_WIPE_DATA_TEXT_LIST), \
$(eval output_file := $(dir $@)/$(patsubst recovery_%,%_text.png,$(text_name))) \
+ $(eval center_alignment := $(if $(filter $(text_name),$(PRIVATE_RECOVERY_BACKGROUND_TEXT_LIST)), --center_alignment)) \
java -jar $(PRIVATE_IMAGE_GENERATOR_JAR) \
--image_width $(PRIVATE_RECOVERY_IMAGE_WIDTH) \
--text_name $(text_name) \
--font_dir $(PRIVATE_RECOVERY_FONT_FILES_DIR) \
--resource_dir $(PRIVATE_RESOURCE_DIR) \
- --output_file $(output_file) && \
+ --output_file $(output_file) $(center_alignment) && \
$(PRIVATE_ZOPFLIPNG) -y --iterations=1 --filters=0 $(output_file) $(output_file) > /dev/null &&) true
else
RECOVERY_INSTALLING_TEXT_FILE :=
@@ -3282,7 +3283,9 @@
$(HOST_LIBRARY_PATH)/libpcre2$(HOST_SHLIB_SUFFIX) \
$(HOST_LIBRARY_PATH)/libbrotli$(HOST_SHLIB_SUFFIX) \
$(HOST_LIBRARY_PATH)/liblp$(HOST_SHLIB_SUFFIX) \
- $(HOST_LIBRARY_PATH)/libext4_utils$(HOST_SHLIB_SUFFIX)
+ $(HOST_LIBRARY_PATH)/libext4_utils$(HOST_SHLIB_SUFFIX) \
+ $(HOST_LIBRARY_PATH)/libfec$(HOST_SHLIB_SUFFIX) \
+ $(HOST_LIBRARY_PATH)/libsquashfs_utils$(HOST_SHLIB_SUFFIX)
.PHONY: otatools
diff --git a/core/android_manifest.mk b/core/android_manifest.mk
index c3af942..ed759c5 100644
--- a/core/android_manifest.mk
+++ b/core/android_manifest.mk
@@ -72,8 +72,8 @@
my_manifest_fixer_flags += --uses-non-sdk-api
endif
-ifeq (true,$(LOCAL_PREFER_INTEGRITY))
- my_manifest_fixer_flags += --prefer-integrity
+ifeq (true,$(LOCAL_PREFER_CODE_INTEGRITY))
+ my_manifest_fixer_flags += --prefer-code-integrity
endif
$(fixed_android_manifest): PRIVATE_MANIFEST_FIXER_FLAGS := $(my_manifest_fixer_flags)
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 0fce502..d3cadb5 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -213,7 +213,7 @@
LOCAL_PREBUILT_OBJ_FILES:=
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=
LOCAL_PREBUILT_STRIP_COMMENTS:=
-LOCAL_PREFER_INTEGRITY:=
+LOCAL_PREFER_CODE_INTEGRITY:=
LOCAL_PRESUBMIT_DISABLED:=
LOCAL_PRIVATE_PLATFORM_APIS:=
LOCAL_PRIVILEGED_MODULE:=
diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk
index 2675e41..17eeb8a 100644
--- a/core/dex_preopt_odex_install.mk
+++ b/core/dex_preopt_odex_install.mk
@@ -3,7 +3,7 @@
# Output variables: LOCAL_DEX_PREOPT, LOCAL_UNCOMPRESS_DEX, built_odex,
# dexpreopt_boot_jar_module
-ifeq (true,$(LOCAL_PREFER_INTEGRITY))
+ifeq (true,$(LOCAL_PREFER_CODE_INTEGRITY))
LOCAL_UNCOMPRESS_DEX := true
else
LOCAL_UNCOMPRESS_DEX :=
@@ -181,7 +181,7 @@
$(call add_json_str, BuildPath, $(LOCAL_BUILT_MODULE))
$(call add_json_str, DexPath, $$1)
$(call add_json_str, ExtrasOutputPath, $$2)
- $(call add_json_bool, PreferIntegrity, $(filter true,$(LOCAL_PREFER_INTEGRITY)))
+ $(call add_json_bool, PreferCodeIntegrity, $(filter true,$(LOCAL_PREFER_CODE_INTEGRITY)))
$(call add_json_bool, Privileged, $(filter true,$(LOCAL_PRIVILEGED_MODULE)))
$(call add_json_bool, UncompressedDex, $(filter true,$(LOCAL_UNCOMPRESS_DEX)))
$(call add_json_bool, HasApkLibraries, $(LOCAL_APK_LIBRARIES))
diff --git a/core/java_renderscript.mk b/core/java_renderscript.mk
index 406d679..13a6f8e 100644
--- a/core/java_renderscript.mk
+++ b/core/java_renderscript.mk
@@ -82,8 +82,8 @@
$(rs_generated_src_jar): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC) $(SOONG_ZIP)
$(transform-renderscripts-to-java-and-bc)
-# include the dependency files (.d/.P) generated by llvm-rs-cc.
-$(call include-depfile,$(rs_generated_src_jar).P,$(rs_generated_src_jar))
+# include the dependency files (.d) generated by llvm-rs-cc.
+$(call include-depfile,$(rs_generated_src_jar).d,$(rs_generated_src_jar))
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
diff --git a/core/product_config.mk b/core/product_config.mk
index ac7fe91..f0f7da1 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -175,15 +175,9 @@
include $(BUILD_SYSTEM)/product.mk
include $(BUILD_SYSTEM)/device.mk
-ifneq ($(strip $(TARGET_BUILD_APPS)),)
-# An unbundled app build needs only the core product makefiles.
-all_product_configs := $(call get-product-makefiles,\
- $(SRC_TARGET_DIR)/product/AndroidProducts.mk)
-else
# Read in all of the product definitions specified by the AndroidProducts.mk
# files in the tree.
all_product_configs := $(get-all-product-makefiles)
-endif
all_named_products :=
diff --git a/envsetup.sh b/envsetup.sh
index 44ae659..62a64b6 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -772,6 +772,9 @@
{
local TOPFILE=build/make/core/envsetup.mk
local HERE=$PWD
+ if [ "$1" ]; then
+ \cd $1
+ fi;
local T=
while [ \( ! \( -f $TOPFILE \) \) -a \( $PWD != "/" \) ]; do
T=`PWD= /bin/pwd`
@@ -852,24 +855,29 @@
# Remove the leading ./ and trailing / if any exists.
DIR=${DIR#./}
DIR=${DIR%/}
- if [ -f $DIR/Android.mk -o -f $DIR/Android.bp ]; then
- local TO_CHOP=`(\cd -P -- $T && pwd -P) | wc -c | tr -d ' '`
- local TO_CHOP=`expr $TO_CHOP + 1`
- local START=`PWD= /bin/pwd`
- local MDIR=`echo $START | cut -c${TO_CHOP}-`
- if [ "$MDIR" = "" ] ; then
- MDIR=$DIR
- else
- MDIR=$MDIR/$DIR
+ local M
+ if [ "$DIR_MODULES" = "" ]; then
+ M=$(findmakefile $DIR)
+ else
+ # Only check the target directory if a module is specified.
+ if [ -f $DIR/Android.mk -o -f $DIR/Android.bp ]; then
+ local HERE=$PWD
+ cd $DIR
+ M=`PWD= /bin/pwd`
+ M=$M/Android.mk
+ cd $HERE
fi
- MDIR=${MDIR%/.}
+ fi
+ if [ "$M" ]; then
+ # Remove the path to top as the makefilepath needs to be relative
+ local M=`echo $M|sed 's:'$T'/::'`
if [ "$DIR_MODULES" = "" ]; then
- MODULES_IN_PATHS="$MODULES_IN_PATHS MODULES-IN-$MDIR"
- GET_INSTALL_PATHS="$GET_INSTALL_PATHS GET-INSTALL-PATH-IN-$MDIR"
+ MODULES_IN_PATHS="$MODULES_IN_PATHS MODULES-IN-$(dirname ${M})"
+ GET_INSTALL_PATHS="$GET_INSTALL_PATHS GET-INSTALL-PATH-IN-$(dirname ${M})"
else
MODULES="$MODULES $DIR_MODULES"
fi
- MAKEFILE="$MAKEFILE $MDIR/Android.mk"
+ MAKEFILE="$MAKEFILE $M"
else
case $DIR in
showcommands | snod | dist | *=*) ARGS="$ARGS $DIR";;
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
index 392a580..6e8e79b 100644
--- a/target/product/base_system.mk
+++ b/target/product/base_system.mk
@@ -206,6 +206,7 @@
MediaProvider \
mediaserver \
mke2fs \
+ ModuleMetadata \
monkey \
mtpd \
ndc \
@@ -315,10 +316,7 @@
# Packages included only for eng or userdebug builds, previously debug tagged
PRODUCT_PACKAGES_DEBUG := \
adb_keys \
- apex.test.key \
arping \
- com.android.apex.test_package.key \
- com.android.apex.test_package.preinstall.key \
iotop \
iw \
logpersist.start \
diff --git a/target/product/gsi/current.txt b/target/product/gsi/current.txt
index 0b99000..e3a8f9c 100644
--- a/target/product/gsi/current.txt
+++ b/target/product/gsi/current.txt
@@ -118,6 +118,7 @@
VNDK-core: android.hardware.neuralnetworks@1.2.so
VNDK-core: android.hardware.nfc@1.0.so
VNDK-core: android.hardware.nfc@1.1.so
+VNDK-core: android.hardware.nfc@1.2.so
VNDK-core: android.hardware.oemlock@1.0.so
VNDK-core: android.hardware.power@1.0.so
VNDK-core: android.hardware.power@1.1.so
diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk
index f874868..57b61c2 100644
--- a/target/product/handheld_system.mk
+++ b/target/product/handheld_system.mk
@@ -56,7 +56,6 @@
ExternalStorageProvider \
FusedLocation \
Gallery2 \
- Home \
InputDevices \
KeyChain \
LatinIME \
diff --git a/target/product/languages_small.mk b/target/product/languages_small.mk
deleted file mode 100644
index d695ca8..0000000
--- a/target/product/languages_small.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Copyright (C) 2009 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.
-#
-
-# This is a build configuration that just contains a list of languages.
-# It helps in situations where laugnages must come first in the list,
-# mostly because screen densities interfere with the list of locales and
-# the system misbehaves when a density is the first locale.
-
-# This is the list of languages that originally shipped on ADP1
-
-PRODUCT_LOCALES := en_US en_GB fr_FR it_IT de_DE es_ES
diff --git a/target/product/mainline_system.mk b/target/product/mainline_system.mk
index c41e1d7..fe0f81a 100644
--- a/target/product/mainline_system.mk
+++ b/target/product/mainline_system.mk
@@ -31,6 +31,7 @@
RcsService \
SafetyRegulatoryInfo \
Stk \
+ Tag \
TimeZoneUpdater \
# Binaries
diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk
index 0408028..7642876 100644
--- a/target/product/treble_common.mk
+++ b/target/product/treble_common.mk
@@ -38,7 +38,7 @@
# Telephony:
# Provide a default APN configuration
PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml
+ device/sample/etc/apns-full-conf.xml:system/etc/apns-conf.xml
# NFC:
# Provide default libnfc-nci.conf file for devices that does not have one in
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index 146b868..d710603 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -75,8 +75,8 @@
"""
cmd = ["find", path, "-print"]
output = common.RunAndCheckOutput(cmd, verbose=False)
- # increase by 25 % as number of files and directories is not whole picture.
- return output.count('\n') * 30 // 24
+ # TODO(b/122328872) Fix estimation algorithm to not need the multiplier.
+ return output.count('\n') * 2
def GetFilesystemCharacteristics(sparse_image_path):
diff --git a/tools/releasetools/build_super_image.py b/tools/releasetools/build_super_image.py
index e8730ae..bb0e641 100755
--- a/tools/releasetools/build_super_image.py
+++ b/tools/releasetools/build_super_image.py
@@ -67,6 +67,17 @@
return os.path.getsize(img)
+def GetArgumentsForImage(partition, group, image=None):
+ image_size = GetPartitionSizeFromImage(image) if image else 0
+
+ cmd = ["--partition",
+ "{}:readonly:{}:{}".format(partition, image_size, group)]
+ if image:
+ cmd += ["--image", "{}={}".format(partition, image)]
+
+ return cmd
+
+
def BuildSuperImageFromDict(info_dict, output):
cmd = [info_dict["lpmake"],
@@ -105,26 +116,25 @@
for partition in partition_list:
image = info_dict.get("{}_image".format(partition))
- image_size = 0
if image:
- image_size = GetPartitionSizeFromImage(image)
has_image = True
- if append_suffix:
- cmd += ["--partition",
- "{}_a:readonly:{}:{}_a".format(partition, image_size, group),
- "--partition",
- "{}_b:readonly:0:{}_b".format(partition, group)]
- if image:
- # For A/B devices, super partition always contains sub-partitions in
- # the _a slot, because this image should only be used for
- # bootstrapping / initializing the device. When flashing the image,
- # bootloader fastboot should always mark _a slot as bootable.
- cmd += ["--image", "{}_a={}".format(partition, image)]
- else:
- cmd += ["--partition",
- "{}:readonly:{}:{}".format(partition, image_size, group)]
- if image:
- cmd += ["--image", "{}={}".format(partition, image)]
+
+ if not append_suffix:
+ cmd += GetArgumentsForImage(partition, group, image)
+ continue
+
+ # For A/B devices, super partition always contains sub-partitions in
+ # the _a slot, because this image should only be used for
+ # bootstrapping / initializing the device. When flashing the image,
+ # bootloader fastboot should always mark _a slot as bootable.
+ cmd += GetArgumentsForImage(partition + "_a", group + "_a", image)
+
+ other_image = None
+ if partition == "system" and "system_other_image" in info_dict:
+ other_image = info_dict["system_other_image"]
+ has_image = True
+
+ cmd += GetArgumentsForImage(partition + "_b", group + "_b", other_image)
if has_image:
cmd.append("--sparse")
@@ -145,6 +155,12 @@
info_dict = common.LoadInfoDict(inp)
partition_list = shlex.split(
info_dict.get("dynamic_partition_list", "").strip())
+
+ if "system" in partition_list:
+ image_path = os.path.join(inp, "IMAGES", "system_other.img")
+ if os.path.isfile(image_path):
+ info_dict["system_other_image"] = image_path
+
missing_images = []
for partition in partition_list:
image_path = os.path.join(inp, "IMAGES", "{}.img".format(partition))