Merge "Clean .intermediates for removing hashed subdir" into main
diff --git a/common/math.mk b/common/math.mk
index ecee474..829ceb5 100644
--- a/common/math.mk
+++ b/common/math.mk
@@ -315,8 +315,9 @@
$(call math-expect,(call numbers_greater_or_equal_to,0,0 2 1 3),0 2 1 3)
$(call math-expect,(call numbers_greater_or_equal_to,1,0 2 1 3 2),2 1 3 2)
-_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)))
+# 10,001 = 10 ** 4 + 1, contains 10,001 x's, so 1 more than 10,000 (future) API level
+_INT_LIMIT_WORDS := x $(foreach a,0 1 2 3 4 5 6 7 8 9,$(foreach b,0 1 2 3 4 5 6 7 8 9,\
+ $(foreach c,0 1 2 3 4 5 6 7 8 9,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)))),\
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 0d72903..a8cf67e 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -717,12 +717,14 @@
endif
ifeq ($(EXCLUDE_MCTS),true)
+ifeq (,$(filter $(LOCAL_MODULE),$(mcts_whitelist)))
ifneq (,$(test_config))
ifneq (,$(filter mcts-%,$(LOCAL_COMPATIBILITY_SUITE)))
LOCAL_COMPATIBILITY_SUITE := $(filter-out cts,$(LOCAL_COMPATIBILITY_SUITE))
endif
endif
endif
+endif
ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))
diff --git a/core/config.mk b/core/config.mk
index 99337fc..ae65944 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -839,9 +839,6 @@
else
min_systemsdk_version := $(PRODUCT_SHIPPING_API_LEVEL)
endif
- ifneq ($(call numbers_less_than,$(min_systemsdk_version),$(BOARD_SYSTEMSDK_VERSIONS)),)
- $(error BOARD_SYSTEMSDK_VERSIONS ($(BOARD_SYSTEMSDK_VERSIONS)) must all be greater than or equal to BOARD_API_LEVEL, BOARD_SHIPPING_API_LEVEL or PRODUCT_SHIPPING_API_LEVEL ($(min_systemsdk_version)))
- endif
ifneq ($(call math_gt_or_eq,$(PRODUCT_SHIPPING_API_LEVEL),29),)
ifneq ($(BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE),)
$(error When PRODUCT_SHIPPING_API_LEVEL >= 29, BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE cannot be set)
diff --git a/core/packaging/flags.mk b/core/packaging/flags.mk
index a96ea8f..282e18e9 100644
--- a/core/packaging/flags.mk
+++ b/core/packaging/flags.mk
@@ -27,9 +27,27 @@
# Create a summary file of build flags for each partition
# $(1): built aconfig flags file (out)
# $(2): installed aconfig flags file (out)
-# $(3): input aconfig files for the partition (in)
+# $(3): the partition (in)
+# $(4): input aconfig files for the partition (in)
define generate-partition-aconfig-flag-file
$(eval $(strip $(1)): PRIVATE_OUT := $(strip $(1)))
+$(eval $(strip $(1)): PRIVATE_IN := $(strip $(4)))
+$(strip $(1)): $(ACONFIG) $(strip $(4))
+ mkdir -p $$(dir $$(PRIVATE_OUT))
+ $$(if $$(PRIVATE_IN), \
+ $$(ACONFIG) dump --dedup --format protobuf --out $$(PRIVATE_OUT) \
+ --filter container:$$(strip $(3)) $$(addprefix --cache ,$$(PRIVATE_IN)), \
+ echo -n > $$(PRIVATE_OUT) \
+ )
+$(call copy-one-file, $(1), $(2))
+endef
+
+# Create a summary file of build flags for each partition
+# $(1): built aconfig flags file (out)
+# $(2): installed aconfig flags file (out)
+# $(3): input aconfig files for the partition (in)
+define generate-global-aconfig-flag-file
+$(eval $(strip $(1)): PRIVATE_OUT := $(strip $(1)))
$(eval $(strip $(1)): PRIVATE_IN := $(strip $(3)))
$(strip $(1)): $(ACONFIG) $(strip $(3))
mkdir -p $$(dir $$(PRIVATE_OUT))
@@ -47,6 +65,7 @@
$(eval $(call generate-partition-aconfig-flag-file, \
$(TARGET_OUT_FLAGS)/$(partition)/aconfig_flags.pb, \
$(aconfig_flag_summaries_protobuf.$(partition)), \
+ $(partition), \
$(sort $(foreach m,$(call register-names-for-partition, $(partition)), \
$(ALL_MODULES.$(m).ACONFIG_FILES) \
)), \
@@ -61,7 +80,7 @@
.PHONY: device_aconfig_declarations
device_aconfig_declarations: $(PRODUCT_OUT)/device_aconfig_declarations.pb
-$(eval $(call generate-partition-aconfig-flag-file, \
+$(eval $(call generate-global-aconfig-flag-file, \
$(TARGET_OUT_FLAGS)/device_aconfig_declarations.pb, \
$(PRODUCT_OUT)/device_aconfig_declarations.pb, \
$(sort $(required_aconfig_flags_files)) \
diff --git a/core/product_config.mk b/core/product_config.mk
index f939690..8dc175a 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -405,6 +405,10 @@
TARGET_AAPT_CHARACTERISTICS := $(PRODUCT_CHARACTERISTICS)
endif
+ifndef PRODUCT_SHIPPING_API_LEVEL
+ PRODUCT_SHIPPING_API_LEVEL := 10000
+endif
+
ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE
ifneq (1,$(words $(PRODUCT_DEFAULT_DEV_CERTIFICATE)))
$(error PRODUCT_DEFAULT_DEV_CERTIFICATE='$(PRODUCT_DEFAULT_DEV_CERTIFICATE)', \
diff --git a/core/soong_extra_config.mk b/core/soong_extra_config.mk
index c2b4775..e4432d2 100644
--- a/core/soong_extra_config.mk
+++ b/core/soong_extra_config.mk
@@ -91,6 +91,8 @@
$(call add_json_str, VendorSecurityPatch, $(VENDOR_SECURITY_PATCH))
$(call add_json_str, VendorImageFileSystemType, $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE))
+$(call add_json_list, BuildVersionTags, $(BUILD_VERSION_TAGS))
+
$(call json_end)
$(shell mkdir -p $(dir $(SOONG_EXTRA_VARIABLES)))
diff --git a/core/tasks/meta-lic.mk b/core/tasks/meta-lic.mk
index 3520a32..85357eb 100644
--- a/core/tasks/meta-lic.mk
+++ b/core/tasks/meta-lic.mk
@@ -188,3 +188,6 @@
# Moved here from packages/services/Car/Android.mk
$(eval $(call declare-1p-copy-files,packages/services/Car,))
+
+# Moved here from hardware/libhardware_legacy/Android.mk
+$(eval $(call declare-1p-copy-files,hardware/libhardware_legacy,))
diff --git a/target/product/generic_system.mk b/target/product/generic_system.mk
index 4793657..14efa67 100644
--- a/target/product/generic_system.mk
+++ b/target/product/generic_system.mk
@@ -125,6 +125,10 @@
PRODUCT_ENFORCE_RRO_TARGETS := *
+# Support Credential Manager
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/android.software.credentials.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.software.credentials.xml
+
PRODUCT_NAME := generic_system
PRODUCT_BRAND := generic
diff --git a/target/product/go_defaults.mk b/target/product/go_defaults.mk
index 7fbc09d..4627fde 100644
--- a/target/product/go_defaults.mk
+++ b/target/product/go_defaults.mk
@@ -17,10 +17,7 @@
# Inherit common Android Go defaults.
$(call inherit-product, build/make/target/product/go_defaults_common.mk)
-PRODUCT_RELEASE_CONFIG_MAPS += $(wildcard vendor/google_shared/build/release/go_devices/release_config_map.mk)
-
-# TODO (b/342265627): Remove v/g/r once all the flags have been moved to v/g_s/b/r
-PRODUCT_RELEASE_CONFIG_MAPS += $(wildcard vendor/google/release/go_devices/release_config_map.mk)
+PRODUCT_RELEASE_CONFIG_MAPS += $(wildcard vendor/google_shared/build/release/go_devices/release_config_map.textproto)
# Add the system properties.
TARGET_SYSTEM_PROP += \
diff --git a/teams/Android.bp b/teams/Android.bp
index fbf1344..a9699d2 100644
--- a/teams/Android.bp
+++ b/teams/Android.bp
@@ -4412,3 +4412,10 @@
// go/trendy/manage/engineers/5350750192762880
trendy_team_id: "5350750192762880",
}
+
+team {
+ name: "trendy_team_android_telemetry_client_infra",
+
+ // go/trendy/manage/engineers/5403245077430272
+ trendy_team_id: "5403245077430272",
+}
diff --git a/tools/releasetools/ota_from_raw_img.py b/tools/releasetools/ota_from_raw_img.py
index c186940..03b44f1 100644
--- a/tools/releasetools/ota_from_raw_img.py
+++ b/tools/releasetools/ota_from_raw_img.py
@@ -54,7 +54,7 @@
prog=argv[0], description="Given a series of .img files, produces a full OTA package that installs thoese images")
parser.add_argument("images", nargs="+", type=str,
help="List of images to generate OTA")
- parser.add_argument("--partition_names", nargs='+', type=str,
+ parser.add_argument("--partition_names", nargs='?', type=str,
help="Partition names to install the images, default to basename of the image(no file name extension)")
parser.add_argument('--output', type=str,
help='Paths to output merged ota', required=True)
@@ -74,18 +74,20 @@
old_imgs[i], args.images[i] = img.split(":", maxsplit=1)
if not args.partition_names:
- args.partition_names = [os.path.os.path.splitext(os.path.basename(path))[
+ args.partition_names = [os.path.splitext(os.path.basename(path))[
0] for path in args.images]
+ else:
+ args.partition_names = args.partition_names.split(",")
with tempfile.NamedTemporaryFile() as unsigned_payload, tempfile.NamedTemporaryFile() as dynamic_partition_info_file:
dynamic_partition_info_file.writelines(
[b"virtual_ab=true\n", b"super_partition_groups=\n"])
dynamic_partition_info_file.flush()
cmd = [ResolveBinaryPath("delta_generator", args.search_path)]
- cmd.append("--partition_names=" + ",".join(args.partition_names))
+ cmd.append("--partition_names=" + ":".join(args.partition_names))
cmd.append("--dynamic_partition_info_file=" +
dynamic_partition_info_file.name)
- cmd.append("--old_partitions=" + ",".join(old_imgs))
- cmd.append("--new_partitions=" + ",".join(args.images))
+ cmd.append("--old_partitions=" + ":".join(old_imgs))
+ cmd.append("--new_partitions=" + ":".join(args.images))
cmd.append("--out_file=" + unsigned_payload.name)
cmd.append("--is_partial_update")
if args.max_timestamp: