Merge "Remove the testing-purpose APEX keys."
diff --git a/core/Makefile b/core/Makefile
index 24a0632..c5dbe24 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -122,6 +122,33 @@
endif
# -----------------------------------------------------------------
+# generate preview API fingerprint
+api_fingerprint := $(call intermediates-dir-for,PACKAGING,api_fingerprint)/api_fingerprint.txt
+.KATI_READONLY := api_fingerprint
+
+ifeq (REL,$(PLATFORM_VERSION_CODENAME))
+ $(api_fingerprint):
+ echo REL >$@
+else ifneq ($(TARGET_BUILD_APPS),)
+ # TODO: use a prebuilt api_fingerprint.txt from prebuilts/sdk/current.txt once we have one
+ #$(eval $(call copy-one-file,prebuilts/sdk/current/api_fingerprint.txt,$(api_fingerprint)))
+ $(api_fingerprint):
+ echo $(PLATFORM_PREVIEW_SDK_VERSION) >$@
+else ifneq ($(TARGET_BUILD_PDK),)
+ $(eval $(call copy-one-file,$(_pdk_fusion_intermediates)/api_fingerprint.txt,$(api_fingerprint)))
+else
+ ifeq ($(HOST_OS),darwin)
+ $(api_fingerprint): PRIVATE_HASH := md5
+ else
+ $(api_fingerprint): PRIVATE_HASH := md5sum
+ endif
+ $(api_fingerprint): $(sort $(wildcard frameworks/base/api/*current.txt))
+ cat $^ | $(PRIVATE_HASH) | cut -d' ' -f1 >$@
+
+ $(call dist-for-goals,sdk,$(api_fingerprint))
+endif
+
+# -----------------------------------------------------------------
# property_overrides_split_enabled
property_overrides_split_enabled :=
ifeq ($(BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED), true)
@@ -368,7 +395,7 @@
else
system_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop)
endif
-$(intermediate_system_build_prop): $(BUILDINFO_SH) $(BUILDINFO_COMMON_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file) $(INSTALLED_ANDROID_INFO_TXT_TARGET)
+$(intermediate_system_build_prop): $(BUILDINFO_SH) $(BUILDINFO_COMMON_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file) $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(api_fingerprint)
@echo Target buildinfo: $@
@mkdir -p $(dir $@)
$(hide) echo > $@
@@ -401,6 +428,7 @@
PLATFORM_BASE_OS="$(PLATFORM_BASE_OS)" \
PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \
PLATFORM_PREVIEW_SDK_VERSION="$(PLATFORM_PREVIEW_SDK_VERSION)" \
+ PLATFORM_PREVIEW_SDK_FINGERPRINT="$$(cat $(api_fingerprint))" \
PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \
PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \
PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION="$(PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION)" \
@@ -2199,7 +2227,7 @@
$(INSTALLED_PLATFORM_ZIP) : $(SOONG_ZIP)
# dependencies for the other partitions are defined below after their file lists
# are known
-$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(pdk_classes_dex) $(pdk_odex_config_mk)
+$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES) $(pdk_classes_dex) $(pdk_odex_config_mk) $(api_fingerprint)
$(call pretty,"Platform zip package: $(INSTALLED_PLATFORM_ZIP)")
rm -f $@ $@.lst
echo "-C $(PRODUCT_OUT)" >> $@.lst
@@ -2232,6 +2260,7 @@
@# Add dex-preopt files and config.
$(if $(PRIVATE_DEX_FILES),\
echo "-C $(OUT_DIR) $(addprefix -f ,$(PRIVATE_DEX_FILES))") >> $@.lst
+ echo "-C $(dir $(api_fingerprint)) -f $(api_fingerprint)" >> $@.lst
touch $(PRODUCT_OUT)/pdk.mk
echo "-C $(PRODUCT_OUT) -f $(PRIVATE_ODEX_CONFIG) -f $(PRODUCT_OUT)/pdk.mk" >> $@.lst
$(SOONG_ZIP) --ignore_missing_files -o $@ @$@.lst
@@ -3253,7 +3282,8 @@
$(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)
.PHONY: otatools
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 e716598..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 \
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/buildinfo.sh b/tools/buildinfo.sh
index c2e6f85..b76c089 100755
--- a/tools/buildinfo.sh
+++ b/tools/buildinfo.sh
@@ -8,6 +8,7 @@
echo "ro.build.version.incremental=$BUILD_NUMBER"
echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION"
echo "ro.build.version.preview_sdk=$PLATFORM_PREVIEW_SDK_VERSION"
+echo "ro.build.version.preview_sdk_fingerprint=$PLATFORM_PREVIEW_SDK_FINGERPRINT"
echo "ro.build.version.codename=$PLATFORM_VERSION_CODENAME"
echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES"
echo "ro.build.version.release=$PLATFORM_VERSION"
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))