Merge "[RESTRICT AUTOMERGE] Enable build MCTS on aosp-android13" into android13-tests-dev am: 41f7dbd101 am: 25586dde83 am: a2fef11e67
Original change: https://android-review.googlesource.com/c/platform/build/+/3195473
Change-Id: Ief4bb72d5c3c1ab97dff46ad593571f4e8a0a9d4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk
index 2880b28..cba0e03 100644
--- a/core/android_soong_config_vars.mk
+++ b/core/android_soong_config_vars.mk
@@ -121,11 +121,16 @@
$(call soong_config_set,art_module,source_build,$(ART_MODULE_BUILD_FROM_SOURCE))
+ifdef TARGET_BOARD_AUTO
+ $(call add_soong_config_var_value, ANDROID, target_board_auto, $(TARGET_BOARD_AUTO))
+endif
+
# Ensure that those mainline modules who have individually toggleable prebuilts
# are controlled by the MODULE_BUILD_FROM_SOURCE environment variable by
# default.
INDIVIDUALLY_TOGGLEABLE_PREBUILT_MODULES := \
- bluetooth \
+ btservices \
+ permission \
uwb \
wifi \
@@ -147,11 +152,29 @@
$(call soong_config_set,messaging,build_variant_eng,true)
endif
-# TODO(b/203088572): Remove when Java optimizations enabled by default for
-# SystemUI.
+# Enable SystemUI optimizations by default unless explicitly set.
+SYSTEMUI_OPTIMIZE_JAVA ?= true
$(call add_soong_config_var,ANDROID,SYSTEMUI_OPTIMIZE_JAVA)
-# TODO(b/196084106): Remove when Java optimizations enabled by default for
-# system packages.
+
+# Disable Compose in SystemUI by default.
+SYSTEMUI_USE_COMPOSE ?= false
+$(call add_soong_config_var,ANDROID,SYSTEMUI_USE_COMPOSE)
+
+# Enable system_server optimizations by default unless explicitly set or if
+# there may be dependent runtime jars.
+# TODO(b/240588226): Remove the off-by-default exceptions after handling
+# system_server jars automatically w/ R8.
+ifeq (true,$(PRODUCT_BROKEN_SUBOPTIMAL_ORDER_OF_SYSTEM_SERVER_JARS))
+ # If system_server jar ordering is broken, don't assume services.jar can be
+ # safely optimized in isolation, as there may be dependent jars.
+ SYSTEM_OPTIMIZE_JAVA ?= false
+else ifneq (platform:services,$(lastword $(PRODUCT_SYSTEM_SERVER_JARS)))
+ # If services is not the final jar in the dependency ordering, don't assume
+ # it can be safely optimized in isolation, as there may be dependent jars.
+ SYSTEM_OPTIMIZE_JAVA ?= false
+else
+ SYSTEM_OPTIMIZE_JAVA ?= true
+endif
$(call add_soong_config_var,ANDROID,SYSTEM_OPTIMIZE_JAVA)
# Check for SupplementalApi module.
diff --git a/core/app_prebuilt_internal.mk b/core/app_prebuilt_internal.mk
index 4586f35..eb429cd 100644
--- a/core/app_prebuilt_internal.mk
+++ b/core/app_prebuilt_internal.mk
@@ -280,7 +280,7 @@
endif
my_src_dir := $(LOCAL_PATH)/$(my_src_dir)
-$(built_apk_splits) : $(LOCAL_CERTIFICATE).pk8 $(LOCAL_CERTIFICATE).x509.pem
+$(built_apk_splits) : $(LOCAL_CERTIFICATE).pk8 $(LOCAL_CERTIFICATE).x509.pem | $(ZIPALIGN) $(ZIP2ZIP) $(SIGNAPK_JAR) $(SIGNAPK_JNI_LIBRARY_PATH)
$(built_apk_splits) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8
$(built_apk_splits) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
$(built_apk_splits) : $(intermediates)/%.apk : $(my_src_dir)/%.apk
diff --git a/core/product-graph.mk b/core/product-graph.mk
index 379110e..4a44837 100644
--- a/core/product-graph.mk
+++ b/core/product-graph.mk
@@ -25,7 +25,7 @@
$(if $(filter $(p),$(_all_products_visited)),, \
$(p) \
$(eval _all_products_visited += $(p)) \
- $(call all-products-inner, $(PRODUCTS.$(strip $(p)).INHERITS_FROM))
+ $(call gather-all-makefiles-for-current-product-inner, $(PRODUCTS.$(strip $(p)).INHERITS_FROM))
) \
)
endef
diff --git a/core/product.mk b/core/product.mk
index 53fee1c..e57ca13 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -267,6 +267,9 @@
# This flag implies PRODUCT_USE_DYNAMIC_PARTITIONS.
_product_single_value_vars += PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
+# List of tags that will be used to gate blueprint modules from the build graph
+_product_list_vars += PRODUCT_INCLUDE_TAGS
+
# When this is true, various build time as well as runtime debugfs restrictions are enabled.
_product_single_value_vars += PRODUCT_SET_DEBUGFS_RESTRICTIONS
diff --git a/core/product_config.mk b/core/product_config.mk
index 37146d3..c55d07b 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -278,6 +278,23 @@
all_product_configs :=
#############################################################################
+# Check product include tag allowlist
+BLUEPRINT_INCLUDE_TAGS_ALLOWLIST := com.android.mainline_go com.android.mainline
+.KATI_READONLY := BLUEPRINT_INCLUDE_TAGS_ALLOWLIST
+$(foreach include_tag,$(PRODUCT_INCLUDE_TAGS), \
+ $(if $(filter $(include_tag),$(BLUEPRINT_INCLUDE_TAGS_ALLOWLIST)),,\
+ $(call pretty-error, $(include_tag) is not in BLUEPRINT_INCLUDE_TAGS_ALLOWLIST: $(BLUEPRINT_INCLUDE_TAGS_ALLOWLIST))))
+# Create default PRODUCT_INCLUDE_TAGS
+ifeq (, $(PRODUCT_INCLUDE_TAGS))
+# Soong analysis is global: even though a module might not be relevant to a specific product (e.g. build_tools for aosp_arm),
+# we still analyse it.
+# This means that in setups where we two have two prebuilts of module_sdk, we need a "default" to use in analysis
+# This should be a no-op in aosp and internal since no Android.bp file contains blueprint_package_includes
+PRODUCT_INCLUDE_TAGS += com.android.mainline # Use the big android one by default
+endif
+
+#############################################################################
+
# Quick check and assign default values
TARGET_DEVICE := $(PRODUCT_DEVICE)
diff --git a/core/soong_config.mk b/core/soong_config.mk
index dfbd08e..16b7fae 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -292,6 +292,8 @@
$(call add_json_bool, ForceMultilibFirstOnDevice, $(filter true,$(FORCE_MULTILIB_FIRST_ON_DEVICE)))
+$(call add_json_list, IncludeTags, $(PRODUCT_INCLUDE_TAGS))
+
$(call json_end)
$(file >$(SOONG_VARIABLES).tmp,$(json_contents))
diff --git a/target/board/BoardConfigEmuCommon.mk b/target/board/BoardConfigEmuCommon.mk
index 845225d..cc5e3ab 100644
--- a/target/board/BoardConfigEmuCommon.mk
+++ b/target/board/BoardConfigEmuCommon.mk
@@ -26,51 +26,34 @@
# Emulator doesn't support sparse image format.
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
-ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true)
- # emulator is Non-A/B device
- AB_OTA_UPDATER := false
+# emulator is Non-A/B device
+AB_OTA_UPDATER := false
- # emulator needs super.img
- BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
+# emulator needs super.img
+BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
- # 4G + 8M
- BOARD_SUPER_PARTITION_SIZE := 4303355904
- BOARD_SUPER_PARTITION_GROUPS := emulator_dynamic_partitions
+# 8G + 8M
+BOARD_SUPER_PARTITION_SIZE := 8598323200
+BOARD_SUPER_PARTITION_GROUPS := emulator_dynamic_partitions
- ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
- BOARD_EMULATOR_DYNAMIC_PARTITIONS_PARTITION_LIST := \
- system \
- system_ext \
- product \
- vendor
+BOARD_EMULATOR_DYNAMIC_PARTITIONS_PARTITION_LIST := \
+ system \
+ system_dlkm \
+ system_ext \
+ product \
+ vendor
- TARGET_COPY_OUT_PRODUCT := product
- BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
- TARGET_COPY_OUT_SYSTEM_EXT := system_ext
- BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
- else
- TARGET_COPY_OUT_PRODUCT := system/product
- TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
- BOARD_EMULATOR_DYNAMIC_PARTITIONS_PARTITION_LIST := \
- system \
- vendor
- endif
+TARGET_COPY_OUT_PRODUCT := product
+BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_COPY_OUT_SYSTEM_EXT := system_ext
+BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
- # 4G
- BOARD_EMULATOR_DYNAMIC_PARTITIONS_SIZE := 4294967296
+BOARD_USES_SYSTEM_DLKMIMAGE := true
+BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
+TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
- # in build environment to speed up make -j
- ifeq ($(QEMU_DISABLE_AVB),true)
- BOARD_AVB_ENABLE := false
- endif
-else ifeq ($(PRODUCT_USE_DYNAMIC_PARTITION_SIZE),true)
- # Enable dynamic system image size and reserved 64MB in it.
- BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864
- BOARD_VENDORIMAGE_PARTITION_RESERVED_SIZE := 67108864
-else
- BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
- BOARD_VENDORIMAGE_PARTITION_SIZE := 146800640
-endif
+# 8G
+BOARD_EMULATOR_DYNAMIC_PARTITIONS_SIZE := 8589934592
#vendor boot
BOARD_INCLUDE_DTB_IN_BOOTIMG := false
diff --git a/target/board/generic_64bitonly_x86_64/BoardConfig.mk b/target/board/generic_64bitonly_x86_64/BoardConfig.mk
index 71c4357..a240eab 100644
--- a/target/board/generic_64bitonly_x86_64/BoardConfig.mk
+++ b/target/board/generic_64bitonly_x86_64/BoardConfig.mk
@@ -26,7 +26,10 @@
TARGET_2ND_ARCH_VARIANT := x86_64
TARGET_PRELINK_MODULE := false
+
include build/make/target/board/BoardConfigGsiCommon.mk
+
+ifndef BUILDING_GSI
include build/make/target/board/BoardConfigEmuCommon.mk
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
@@ -43,3 +46,5 @@
WIFI_DRIVER_FW_PATH_PARAM := "/dev/null"
WIFI_DRIVER_FW_PATH_STA := "/dev/null"
WIFI_DRIVER_FW_PATH_AP := "/dev/null"
+
+endif # !BUILDING_GSI
diff --git a/target/product/OWNERS b/target/product/OWNERS
index b3d8998..30b1af6 100644
--- a/target/product/OWNERS
+++ b/target/product/OWNERS
@@ -3,3 +3,8 @@
# GSI
per-file gsi_release.mk = file:/target/product/gsi/OWNERS
per-file developer_gsi_keys.mk = file:/target/product/gsi/OWNERS
+
+# Android Go
+per-file go_defaults.mk = gkaiser@google.com, kushg@google.com, rajekumar@google.com
+per-file go_defaults_512.mk = gkaiser@google.com, kushg@google.com, rajekumar@google.com
+per-file go_defaults_common.mk = gkaiser@google.com, kushg@google.com, rajekumar@google.com
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
index c919ac4..b0870c3 100644
--- a/target/product/base_system.mk
+++ b/target/product/base_system.mk
@@ -120,6 +120,7 @@
init_system \
input \
installd \
+ IntentResolver \
ip \
iptables \
ip-up-vpn \
@@ -237,6 +238,7 @@
pppd \
preinstalled-packages-platform.xml \
privapp-permissions-platform.xml \
+ prng_seeder \
racoon \
recovery-persist \
resize2fs \
diff --git a/target/product/cfi-common.mk b/target/product/cfi-common.mk
index 3aa2be7..559963c 100644
--- a/target/product/cfi-common.mk
+++ b/target/product/cfi-common.mk
@@ -26,8 +26,11 @@
frameworks/av/services \
frameworks/minikin \
hardware/broadcom/wlan/bcmdhd/wpa_supplicant_8_lib \
+ hardware/synaptics/wlan/synadhd/wpa_supplicant_8_lib \
hardware/interfaces/nfc \
hardware/qcom/wlan/qcwcn/wpa_supplicant_8_lib \
+ hardware/qcom/wlan/legacy/qcwcn/wpa_supplicant_8_lib \
+ hardware/qcom/wlan/wcn6740/qcwcn/wpa_supplicant_8_lib \
hardware/interfaces/keymaster \
hardware/interfaces/security \
packages/modules/Bluetooth/system \
diff --git a/target/product/go_defaults_common.mk b/target/product/go_defaults_common.mk
index 7f19615..51a1ef6 100644
--- a/target/product/go_defaults_common.mk
+++ b/target/product/go_defaults_common.mk
@@ -36,12 +36,6 @@
# Do not generate libartd.
PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false
-# Do not spin up a separate process for the network stack on go devices, use an in-process APK.
-PRODUCT_PACKAGES += InProcessNetworkStack
-PRODUCT_PACKAGES += CellBroadcastAppPlatform
-PRODUCT_PACKAGES += CellBroadcastServiceModulePlatform
-PRODUCT_PACKAGES += com.android.tethering.inprocess
-
# Strip the local variable table and the local variable type table to reduce
# the size of the system image. This has no bearing on stack traces, but will
# leave less information available via JDWP.
diff --git a/target/product/window_extensions.mk b/target/product/window_extensions.mk
new file mode 100644
index 0000000..5f5431f
--- /dev/null
+++ b/target/product/window_extensions.mk
@@ -0,0 +1,24 @@
+#
+# Copyright (C) 2022 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.
+#
+
+# /system_ext packages
+PRODUCT_PACKAGES += \
+ androidx.window.extensions \
+ androidx.window.sidecar
+
+# properties
+PRODUCT_PRODUCT_PROPERTIES += \
+ persist.wm.extensions.enabled=true