diff --git a/core/Makefile b/core/Makefile
index 47ecbd9763..4a1118cb8a 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -5289,6 +5289,67 @@ INTERNAL_ALLIMAGES_FILES := \
$(INTERNAL_SYSTEM_DLKMIMAGE_FILES) \
$(INTERNAL_PVMFWIMAGE_FILES) \
+FULLER_ALLIMAGES_FILES := $(INTERNAL_ALLIMAGES_FILES) \
+ $(filter \
+ $(TARGET_DEBUG_RAMDISK_OUT)/% \
+ $(TARGET_RAMDISK_OUT)/% \
+ $(TARGET_RECOVERY_OUT)/% \
+ $(TARGET_VENDOR_KERNEL_RAMDISK_OUT)/% \
+ $(TARGET_VENDOR_RAMDISK_OUT)/% \
+ ,$(ALL_DEFAULT_INSTALLED_MODULES))
+
+define write-allimages-file-list
+ $(file >$(PRODUCT_OUT)/allimages-file-list.txt,$(sort $(FULLER_ALLIMAGES_FILES)))
+endef
+
+.PHONY: allimages-file-list
+allimages-file-list: $(call write-allimages-file-list)
+
+ALL_SYSCONFIG_FILES := $(filter \
+ $(TARGET_OUT)/etc/classpaths/systemserverclasspath.pb \
+ $(TARGET_OUT)/etc/sysconfig/% \
+ $(TARGET_OUT_SYSTEM_EXT)/etc/sysconfig/% \
+ $(TARGET_OUT_PRODUCT)/etc/sysconfig/% \
+ $(TARGET_OUT_VENDOR)/etc/sysconfig/% \
+ $(TARGET_OUT_ODM)/etc/sysconfig/% \
+ $(TARGET_OUT)/etc/permissions/% \
+ $(TARGET_OUT_SYSTEM_EXT)/etc/permissions/% \
+ $(TARGET_OUT_PRODUCT)/etc/permissions/% \
+ $(TARGET_OUT_VENDOR)/etc/permissions/% \
+ $(TARGET_OUT_ODM)/etc/permissions/% \
+ $(TARGET_OUT)/etc/default-permissions/% \
+ $(TARGET_OUT_SYSTEM_EXT)/etc/default-permissions/% \
+ $(TARGET_OUT_PRODUCT)/etc/default-permissions/% \
+ $(TARGET_OUT_VENDOR)/etc/default-permissions/% \
+ $(TARGET_OUT_ODM)/etc/default-permissions/% \
+ ,$(INTERNAL_ALLIMAGES_FILES))
+
+.PHONY: sysconfigs
+sysconfigs: $(ALL_SYSCONFIG_FILES)
+
+ALL_VINTF_FILES := $(filter \
+ $(TARGET_OUT)/etc/vintf/% \
+ $(TARGET_OUT_SYSTEM_EXT)/etc/vintf/% \
+ $(TARGET_OUT_PRODUCT)/etc/vintf/% \
+ $(TARGET_OUT_VENDOR)/etc/vintf/% \
+ $(TARGET_OUT_ODM)/etc/vintf/% \
+ ,$(INTERNAL_ALLIMAGES_FILES))
+
+.PHONY: vintfs
+vintfs: $(ALL_VINTF_FILES)
+
+adevtool-state-collection-inputs: \
+ allimages-file-list \
+ build-props \
+ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET) \
+ module-info \
+ selinux_policy \
+ sepolicy.recovery \
+ sysconfigs \
+ vintfs \
+
+.PHONY: adevtool-state-collection-inputs
+
# -----------------------------------------------------------------
# Run apex_sepolicy_tests for all installed APEXes
@@ -5812,6 +5873,7 @@ INTERNAL_OTATOOLS_MODULES := \
delta_generator \
e2fsck \
e2fsdroid \
+ fastboot \
fc_sort \
fec \
fsck.erofs \
@@ -5886,6 +5948,78 @@ INTERNAL_OTATOOLS_FILES := \
.PHONY: otatools
otatools: $(INTERNAL_OTATOOLS_FILES)
+# For each module, recursively resolve its host shared library dependencies. Then we have a full
+# list of modules whose installed files need to be packed.
+INTERNAL_OTATOOLS_MODULES_WITH_DEPS := \
+ $(sort $(INTERNAL_OTATOOLS_MODULES) \
+ $(foreach m,$(INTERNAL_OTATOOLS_MODULES),$(call get-all-shared-libs-deps,$(m))))
+
+INTERNAL_OTATOOLS_PACKAGE_FILES := \
+ $(filter $(HOST_OUT)/%,$(call module-installed-files,$(INTERNAL_OTATOOLS_MODULES_WITH_DEPS)))
+
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ $(sort $(shell find build/make/target/product/security -type f -name "*.x509.pem" -o \
+ -name "*.pk8"))
+
+ifneq (,$(wildcard packages/modules))
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ $(sort $(shell find packages/modules -type f -name "*.x509.pem" -o -name "*.pk8" -o -name \
+ "key.pem"))
+endif
+
+ifneq (,$(wildcard device))
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ $(sort $(shell find device $(wildcard vendor) -type f -name "*.pk8" -o -name "verifiedboot*" -o \
+ -name "*.pem" -o -name "oem*.prop" -o -name "*.avbpubkey"))
+endif
+ifneq (,$(wildcard external/avb))
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ $(sort $(shell find external/avb/test/data -type f -name "testkey_*.pem" -o \
+ -name "atx_metadata.bin"))
+endif
+
+# Factory images
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ device/common/clear-factory-images-variables.sh \
+ device/common/generate-factory-images-common.sh
+
+# GrapheneOS scripts
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ script/common.sh \
+ script/decrypt-keys \
+ script/encrypt-keys \
+ script/generate-metadata \
+ script/generate-release.sh \
+ script/generate-delta.sh
+
+INTERNAL_OTATOOLS_RELEASETOOLS := \
+ $(shell find build/make/tools/releasetools -name "*.pyc" -prune -o \
+ \( -type f -o -type l \) -print | sort)
+
+BUILT_OTATOOLS_PACKAGE := $(PRODUCT_OUT)/otatools.zip
+$(BUILT_OTATOOLS_PACKAGE): PRIVATE_ZIP_ROOT := $(call intermediates-dir-for,PACKAGING,otatools)/otatools
+$(BUILT_OTATOOLS_PACKAGE): PRIVATE_OTATOOLS_PACKAGE_FILES := $(INTERNAL_OTATOOLS_PACKAGE_FILES)
+$(BUILT_OTATOOLS_PACKAGE): PRIVATE_OTATOOLS_RELEASETOOLS := $(INTERNAL_OTATOOLS_RELEASETOOLS)
+$(BUILT_OTATOOLS_PACKAGE): $(INTERNAL_OTATOOLS_PACKAGE_FILES) $(INTERNAL_OTATOOLS_RELEASETOOLS)
+$(BUILT_OTATOOLS_PACKAGE): $(SOONG_ZIP) $(ZIP2ZIP)
+ @echo "Package OTA tools: $@"
+ rm -rf $@ $(PRIVATE_ZIP_ROOT)
+ mkdir -p $(dir $@)
+ $(call copy-files-with-structure,$(PRIVATE_OTATOOLS_PACKAGE_FILES),$(HOST_OUT)/,$(PRIVATE_ZIP_ROOT))
+ $(call copy-files-with-structure,$(PRIVATE_OTATOOLS_RELEASETOOLS),build/make/tools/,$(PRIVATE_ZIP_ROOT))
+ cp $(SOONG_ZIP) $(ZIP2ZIP) $(MERGE_ZIPS) $(PRIVATE_ZIP_ROOT)/bin/
+ $(SOONG_ZIP) -o $@ -C $(PRIVATE_ZIP_ROOT) -D $(PRIVATE_ZIP_ROOT)
+
+$(call declare-1p-container,$(BUILT_OTATOOLS_PACKAGE),build)
+$(call declare-container-license-deps,$(INTERNAL_OTATOOLS_PACKAGE_FILES) $(INTERNAL_OTATOOLS_RELEASETOOLS),$(BUILT_OTATOOLS_PACKAGE):)
+
+.PHONY: otatools-package
+otatools-package: $(BUILT_OTATOOLS_PACKAGE)
+
+$(call dist-for-goals, otatools-package, \
+ $(BUILT_OTATOOLS_PACKAGE) \
+)
+
endif # build_otatools_package
# -----------------------------------------------------------------
diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk
index 6364d03f73..dda87400dd 100644
--- a/core/android_soong_config_vars.mk
+++ b/core/android_soong_config_vars.mk
@@ -408,12 +408,6 @@ ifneq ($(filter StorageManager, $(PRODUCT_PACKAGES)),)
$(call soong_config_set_bool,ci_tests,uses_storage_manager_tests,true)
endif
-ifneq ($(BUILD_OS),darwin)
- ifneq ($(TARGET_SKIP_OTATOOLS_PACKAGE),true)
- $(call soong_config_set_bool,otatools,use_otatools_package,true)
- endif
-endif
-
# Variables for qcom bluetooth modules.
$(call soong_config_set,qcom_bluetooth,TARGET_BLUETOOTH_UART_DEVICE,$(TARGET_BLUETOOTH_UART_DEVICE))
$(call soong_config_set_bool,qcom_bluetooth,BOARD_HAVE_QCOM_FM,$(if $(filter true,$(BOARD_HAVE_QCOM_FM)),true,false))
diff --git a/core/board_config.mk b/core/board_config.mk
index 86ac3fe9dd..6890ad6f32 100644
--- a/core/board_config.mk
+++ b/core/board_config.mk
@@ -199,10 +199,7 @@ _board_true_false_vars := $(_build_broken_var_list)
_board_strip_readonly_list += $(_build_broken_var_list) \
BUILD_BROKEN_NINJA_USES_ENV_VARS
-# Conditional to building on linux, as dex2oat currently does not work on darwin.
-ifeq ($(HOST_OS),linux)
- WITH_DEXPREOPT ?= true
-endif
+WITH_DEXPREOPT := true
# ###############################################################
# Broken build defaults
diff --git a/core/build_id.mk b/core/build_id.mk
index 253ab28154..88a43b5d1e 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -1,3 +1,8 @@
+ifneq ($(ALLOW_BUILD_ID_MK_INCLUSION), 1)
+ # do not allow including this file from unexpected places, since that would break per-product
+ # BUILD_ID. See core/version_util.mk
+ $(error ALLOW_BUILD_ID_MK_INCLUSION is not set)
+endif
#
# Copyright (C) 2008 The Android Open Source Project
#
diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk
index 35a62faf29..5850126d8e 100644
--- a/core/combo/TARGET_linux-arm.mk
+++ b/core/combo/TARGET_linux-arm.mk
@@ -33,7 +33,7 @@
KNOWN_ARMv8_CORES := cortex-a53 cortex-a53.a57 cortex-a55 cortex-a73 cortex-a75 cortex-a76
KNOWN_ARMv8_CORES += kryo kryo385 exynos-m1 exynos-m2
-KNOWN_ARMv82a_CORES := cortex-a55 cortex-a75 kryo385
+KNOWN_ARMv82a_CORES := cortex-a55 cortex-a75 cortex-a76 kryo385
ifeq (,$(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)))
TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT := generic
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
index c0f2c6893f..cf9a55f1a4 100644
--- a/core/config_sanitizers.mk
+++ b/core/config_sanitizers.mk
@@ -575,3 +575,9 @@ ifneq ($(findstring fsanitize,$(my_cflags)),)
endif
endif
endif
+
+ifeq ($(filter signed-integer-overflow integer undefined,$(my_sanitize)),)
+ ifeq ($(filter -ftrapv,$(my_cflags)),)
+ my_cflags += -fwrapv
+ endif
+endif
diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk
index 596dfe7443..cb43c866cc 100644
--- a/core/dex_preopt_config.mk
+++ b/core/dex_preopt_config.mk
@@ -24,7 +24,7 @@ else
endif
# The default value for LOCAL_DEX_PREOPT
-DEX_PREOPT_DEFAULT ?= $(ENABLE_PREOPT)
+DEX_PREOPT_DEFAULT := true
# Whether to fail immediately if verify_uses_libraries check fails, or to keep
# going and restrict dexpreopt to not compile any code for the failed module.
@@ -56,12 +56,9 @@ SYSTEM_OTHER_ODEX_FILTER ?= \
# Global switch to control if updatable boot jars are included in dexpreopt.
DEX_PREOPT_WITH_UPDATABLE_BCP := true
-# Conditional to building on linux, as dex2oat currently does not work on darwin.
-ifeq ($(HOST_OS),linux)
- # Add mini-debug-info to the boot classpath unless explicitly asked not to.
- ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO))
- PRODUCT_DEX_PREOPT_BOOT_FLAGS += --generate-mini-debug-info
- endif
+# Add mini-debug-info to the boot classpath unless explicitly asked not to.
+ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO))
+ PRODUCT_DEX_PREOPT_BOOT_FLAGS += --generate-mini-debug-info
endif
# Get value of a property. It is first searched from PRODUCT_VENDOR_PROPERTIES
diff --git a/core/envsetup.mk b/core/envsetup.mk
index 7a264859dd..dd0ff385a9 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -75,7 +75,7 @@ CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13
# ---------------------------------------------------------------
# The product defaults to generic on hardware
ifeq ($(TARGET_PRODUCT),)
-TARGET_PRODUCT := aosp_arm64
+TARGET_PRODUCT := sdk_phone64_x86_64
endif
@@ -144,8 +144,7 @@ BUILD_OS := $(HOST_OS)
# We can do the cross-build only on Linux
ifeq ($(HOST_OS),linux)
- # Windows has been the default host_cross OS
- ifeq (,$(filter-out windows,$(HOST_CROSS_OS)))
+ ifeq ($(HOST_CROSS_OS),windows)
# We can only create static host binaries for Linux, so if static host
# binaries are requested, turn off Windows cross-builds.
ifeq ($(BUILD_HOST_static),)
@@ -158,7 +157,7 @@ ifeq ($(HOST_OS),linux)
ifeq (,$(HOST_CROSS_ARCH))
$(error HOST_CROSS_ARCH missing.)
endif
- else
+ else ifneq ($(HOST_CROSS_OS),)
$(error Unsupported HOST_CROSS_OS $(HOST_CROSS_OS))
endif
else ifeq ($(HOST_OS),darwin)
diff --git a/core/layoutlib_data.mk b/core/layoutlib_data.mk
index 792a17ab7e..5a6553a2cf 100644
--- a/core/layoutlib_data.mk
+++ b/core/layoutlib_data.mk
@@ -77,22 +77,13 @@ $(call dist-for-goals,layoutlib,$(LAYOUTLIB_BUILD_PROP)/layoutlib-build.prop:lay
LAYOUTLIB_RES := $(call intermediates-dir-for,PACKAGING,layoutlib-res,HOST,COMMON)
LAYOUTLIB_RES_FILES := $(shell find frameworks/base/core/res/res -type f -not -path 'frameworks/base/core/res/res/values-m[nc]c*' | sort)
EMULATED_OVERLAYS_FILES := $(shell find frameworks/base/packages/overlays/*/res/ | sort)
-LAYOUTLIB_SUPPORTED_DEVICES := raviole/oriole raviole/raven bluejay/bluejay pantah/panther pantah/cheetah lynx/lynx felix/felix shusky/shiba shusky/husky akita/akita caimito/tokay caimito/caiman caimito/komodo comet/comet tangorpro/tangorpro
-LAYOUTLIB_DEVICE_OVERLAYS_FILES := $(addsuffix /overlay/frameworks/base/core/res/res/values/*, $(addprefix device/google/, $(LAYOUTLIB_SUPPORTED_DEVICES)))
-LAYOUTLIB_DEVICE_OVERLAYS_FILES := $(shell find $(LAYOUTLIB_DEVICE_OVERLAYS_FILES) | sort)
+LAYOUTLIB_DEVICE_OVERLAYS_FILES :=
$(LAYOUTLIB_RES)/layoutlib-res.zip: $(SOONG_ZIP) $(HOST_OUT_EXECUTABLES)/aapt2 $(LAYOUTLIB_RES_FILES) $(EMULATED_OVERLAYS_FILES) $(LAYOUTLIB_DEVICE_OVERLAYS_FILES) frameworks/layoutlib/overlay_codenames.txt
rm -rf $@
echo $(LAYOUTLIB_RES_FILES) > $(LAYOUTLIB_RES)/filelist_res.txt
$(SOONG_ZIP) -C frameworks/base/core/res -l $(LAYOUTLIB_RES)/filelist_res.txt -o $(LAYOUTLIB_RES)/temp_res.zip
echo $(EMULATED_OVERLAYS_FILES) > $(LAYOUTLIB_RES)/filelist_emulated_overlays.txt
$(SOONG_ZIP) -C frameworks/base/packages -l $(LAYOUTLIB_RES)/filelist_emulated_overlays.txt -o $(LAYOUTLIB_RES)/temp_emulated_overlays.zip
- for line in $$(cut -f 1 frameworks/layoutlib/overlay_codenames.txt); \
- do splitLine=($${line//:/ }) \
- origin_dir=device/google/*/$${splitLine[0]}/overlay/frameworks/base/core/res/res/values; \
- target_dir=$(LAYOUTLIB_RES)/overlays/$${splitLine[1]}/res/; \
- mkdir -p $$target_dir; \
- cp -r $$origin_dir $$target_dir; \
- done
$(SOONG_ZIP) -C $(LAYOUTLIB_RES) -D $(LAYOUTLIB_RES)/overlays/ -o $(LAYOUTLIB_RES)/temp_device_overlays.zip
rm -rf $(LAYOUTLIB_RES)/data && unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp_res.zip
unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp_emulated_overlays.zip
diff --git a/core/main.mk b/core/main.mk
index 825f1f455e..f44732ab17 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -48,7 +48,7 @@ $(KATI_obsolete_var FILE_NAME_TAG,https://android.googlesource.com/platform/buil
.KATI_RESTAT: $(BUILD_NUMBER_FILE)
.KATI_RESTAT: $(BUILD_HOSTNAME_FILE)
-DATE_FROM_FILE := date -d @$(BUILD_DATETIME_FROM_FILE)
+DATE_FROM_FILE := date -ud @$(BUILD_DATETIME_FROM_FILE)
.KATI_READONLY := DATE_FROM_FILE
@@ -1486,6 +1486,10 @@ else ifeq ($(TARGET_BUILD_UNBUNDLED),$(TARGET_BUILD_UNBUNDLED_IMAGE))
# can include java-related targets that would cause building framework java
# sources in a droidcore full build.
+ $(call dist-for-goals, droidcore, \
+ $(BUILT_OTATOOLS_PACKAGE) \
+ )
+
# We dist the following targets for droidcore-unbundled (and droidcore since
# droidcore depends on droidcore-unbundled). The droidcore-unbundled target
# is a subset of droidcore. It can be used used for an unbundled build to
diff --git a/core/soong_config.mk b/core/soong_config.mk
index 44aced2812..0bfa9348e6 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -66,6 +66,8 @@ $(call add_json_str, DeviceArchVariant, $(TARGET_ARCH_VARIANT))
$(call add_json_str, DeviceCpuVariant, $(TARGET_CPU_VARIANT))
$(call add_json_list, DeviceAbi, $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2))
+$(call add_json_bool, Device_has_arm_mte, $(TARGET_HAS_ARM_MTE))
+
$(call add_json_str, DeviceSecondaryArch, $(TARGET_2ND_ARCH))
$(call add_json_str, DeviceSecondaryArchVariant, $(TARGET_2ND_ARCH_VARIANT))
$(call add_json_str, DeviceSecondaryCpuVariant, $(TARGET_2ND_CPU_VARIANT))
diff --git a/core/sysprop.mk b/core/sysprop.mk
index 4c040e497e..5745cca0fb 100644
--- a/core/sysprop.mk
+++ b/core/sysprop.mk
@@ -273,6 +273,9 @@ ALL_INSTALLED_BUILD_PROP_FILES := \
$(INSTALLED_SYSTEM_EXT_BUILD_PROP_TARGET) \
$(INSTALLED_RAMDISK_BUILD_PROP_TARGET)
+.PHONY: build-props
+build-props: $(ALL_INSTALLED_BUILD_PROP_FILES)
+
# $1 installed file path, e.g. out/target/product/vsoc_x86_64/system/build.prop
define is-build-prop
$(if $(findstring $1,$(ALL_INSTALLED_BUILD_PROP_FILES)),Y)
diff --git a/core/version_util.mk b/core/version_util.mk
index 8ab36b773b..70875e2cf5 100644
--- a/core/version_util.mk
+++ b/core/version_util.mk
@@ -40,9 +40,15 @@
# the build.prop target also wants INTERNAL_BUILD_ID_MAKEFILE to be set
# if the file exists.
#
-INTERNAL_BUILD_ID_MAKEFILE := $(wildcard $(BUILD_SYSTEM)/build_id.mk)
-ifdef INTERNAL_BUILD_ID_MAKEFILE
- include $(INTERNAL_BUILD_ID_MAKEFILE)
+BUILD_ID := $(BUILD_ID_$(TARGET_PRODUCT))
+
+ifeq ($(BUILD_ID),)
+ INTERNAL_BUILD_ID_MAKEFILE := $(wildcard $(BUILD_SYSTEM)/build_id.mk)
+ ifdef INTERNAL_BUILD_ID_MAKEFILE
+ ALLOW_BUILD_ID_MK_INCLUSION := 1
+ include $(INTERNAL_BUILD_ID_MAKEFILE)
+ ALLOW_BUILD_ID_MK_INCLUSION := 0
+ endif
endif
ifdef TARGET_PLATFORM_VERSION
@@ -55,6 +61,11 @@ ifdef PLATFORM_SECURITY_PATCH
$(error Do not set PLATFORM_SECURITY_PATCH directly. Use RELEASE_PLATFORM_SECURITY_PATCH. value: $(PLATFORM_SECURITY_PATCH))
endif
PLATFORM_SECURITY_PATCH := $(RELEASE_PLATFORM_SECURITY_PATCH)
+
+ifneq ($(PLATFORM_SECURITY_PATCH_$(TARGET_PRODUCT)),)
+ PLATFORM_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH_$(TARGET_PRODUCT))
+endif
+
.KATI_READONLY := PLATFORM_SECURITY_PATCH
ifdef PLATFORM_SDK_VERSION
@@ -234,7 +245,7 @@ ifndef BUILD_DATETIME
BUILD_DATETIME := $(shell date +%s)
endif
-DATE := date -d @$(BUILD_DATETIME)
+DATE := date -ud @$(BUILD_DATETIME)
.KATI_READONLY := DATE
# Everything should be using BUILD_DATETIME_FROM_FILE instead.
diff --git a/envsetup.sh b/envsetup.sh
index e34a365f6a..c6e0fcbc57 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -15,6 +15,11 @@
# gettop is duplicated here and in shell_utils.mk, because it's difficult
# to find shell_utils.make without it for all the novel ways this file can be
# sourced. Other common functions should only be in one place or the other.
+
+umask 022
+# use shell built-in instead of the separate program which is missing by default on some distros
+alias which='command -v'
+
function _gettop_once
{
local TOPFILE=build/make/core/envsetup.mk
@@ -444,12 +449,52 @@ function print_lunch_menu()
echo
}
+function maybe_source_extra_commands() {
+ local PRODUCT=$1
+ local SCRIPT_NAME="cmds-for-envsetup.sh"
+
+ [[ $PRODUCT = sdk_* || $PRODUCT = aosp_* ]] && {
+ # skip for products that are known to not have this extra script
+ return
+ }
+
+ local EXTRA_CMDS_ARR=(vendor/*/"$PRODUCT"/"$SCRIPT_NAME")
+
+ [[ ${#EXTRA_CMDS_ARR[@]} == 1 ]] || {
+ echo "More than one $SCRIPT_NAME file for $PRODUCT: ${EXTRA_CMDS_ARR[*]}"
+ read -s
+ exit 1
+ }
+
+ local EXTRA_CMDS
+ if [ -n "$ZSH_VERSION" ]; then
+ EXTRA_CMDS=${EXTRA_CMDS_ARR[1]}
+ else
+ EXTRA_CMDS=${EXTRA_CMDS_ARR[0]}
+ fi
+
+ [[ $EXTRA_CMDS == "vendor/*/$PRODUCT/$SCRIPT_NAME" ]] && {
+ # wildcard didn't expand, which means that SCRIPT_NAME is missing
+ return
+ }
+
+ [[ -n "${ANDROID_QUIET_BUILD:-}" ]] || {
+ echo "============================================"
+ echo "Commands from $EXTRA_CMDS:"
+ cat $EXTRA_CMDS
+ echo "============================================"
+ }
+ source $EXTRA_CMDS
+}
+
function _lunch_meat()
{
local product=$1
local release=$2
local variant=$3
+ maybe_source_extra_commands $product $variant
+
TARGET_PRODUCT=$product \
TARGET_RELEASE=$release \
TARGET_BUILD_VARIANT=$variant \
@@ -581,11 +626,11 @@ function lunch()
product=$1
release=$2
if [[ -z $release ]]; then
- release=trunk_staging
+ release=cur
fi
variant=$3
if [[ -z $variant ]]; then
- variant=eng
+ variant=userdebug
fi
fi
@@ -1185,3 +1230,15 @@ addcompletions
if [[ "$USE_LEFTOVERS" -eq 1 ]]; then
leftovers
fi
+
+export LANG=C.UTF-8
+export BUILD_DATETIME=${BUILD_DATETIME:-$(cat ${OUT_DIR:-out}/build_date.txt 2>/dev/null || date -u +%s)}
+export BUILD_NUMBER=${BUILD_NUMBER:-$(cat ${OUT_DIR:-out}/soong/build_number.txt 2>/dev/null || date -u -d @$BUILD_DATETIME +%Y%m%d00)}
+export BUILD_USERNAME=android-user
+export BUILD_HOSTNAME=r-0123456789abcdef-0123
+
+echo "export BUILD_DATETIME=$BUILD_DATETIME BUILD_NUMBER=$BUILD_NUMBER"
+
+alias adevtool='vendor/adevtool/bin/run'
+alias adto='vendor/adevtool/bin/run'
+
diff --git a/target/board/BoardConfigMainlineCommon.mk b/target/board/BoardConfigMainlineCommon.mk
index b5e3dc2b1e..68699624b2 100644
--- a/target/board/BoardConfigMainlineCommon.mk
+++ b/target/board/BoardConfigMainlineCommon.mk
@@ -27,10 +27,6 @@ BOARD_USES_METADATA_PARTITION := true
# 64 bit mediadrmserver
TARGET_ENABLE_MEDIADRM_64 := true
-# Puts odex files on system_other, as well as causing dex files not to get
-# stripped from APKs.
-BOARD_USES_SYSTEM_OTHER_ODEX := true
-
# Audio: must using XML format for Treblized devices
USE_XML_AUDIO_POLICY_CONF := 1
diff --git a/target/product/aosp_base_telephony.mk b/target/product/aosp_base_telephony.mk
index 4667e38562..8e5cc4cbdf 100644
--- a/target/product/aosp_base_telephony.mk
+++ b/target/product/aosp_base_telephony.mk
@@ -16,5 +16,5 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
PRODUCT_PACKAGES += \
- messaging \
+ Messaging \
Stk
diff --git a/target/product/aosp_product.mk b/target/product/aosp_product.mk
index 00b4e6a932..c54d58ddf6 100644
--- a/target/product/aosp_product.mk
+++ b/target/product/aosp_product.mk
@@ -26,11 +26,12 @@ PRODUCT_PRODUCT_PROPERTIES += \
ro.config.ringtone?=Ring_Synth_04.ogg \
ro.config.notification_sound?=pixiedust.ogg \
ro.com.android.dataroaming?=true \
+ ro.boot.vendor.overlay.theme=com.android.internal.systemui.navbar.gestural
# More AOSP packages
PRODUCT_PACKAGES += \
initial-package-stopped-states-aosp.xml \
- messaging \
+ Messaging \
PhotoTable \
preinstalled-packages-platform-aosp-product.xml \
ThemePicker \
diff --git a/target/product/handheld_product.mk b/target/product/handheld_product.mk
index dde952e4fd..8a5602d91a 100644
--- a/target/product/handheld_product.mk
+++ b/target/product/handheld_product.mk
@@ -35,6 +35,7 @@ PRODUCT_PACKAGES += \
Music \
PdfViewerGOS \
preinstalled-packages-platform-handheld-product.xml \
+ SpeechServicesApp
SettingsIntelligence \
ThemePicker \
ThemesStub \
diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk
index 94386691dd..dbd5febda5 100644
--- a/target/product/handheld_system.mk
+++ b/target/product/handheld_system.mk
@@ -62,6 +62,7 @@ PRODUCT_PACKAGES += \
MmsService \
MtpService \
MusicFX \
+ NetworkLocation \
PacProcessor \
preinstalled-packages-platform-handheld-system.xml \
PrintRecommendationService \
diff --git a/target/product/memtag-common.mk b/target/product/memtag-common.mk
index 829cb41c93..7592d8be5c 100644
--- a/target/product/memtag-common.mk
+++ b/target/product/memtag-common.mk
@@ -28,3 +28,6 @@ PRODUCT_MEMTAG_HEAP_ASYNC_DEFAULT_INCLUDE_PATHS := \
system/bpf \
system/netd/netutil_wrappers \
system/netd/server
+
+PRODUCT_MEMTAG_HEAP_EXCLUDE_PATHS := \
+ frameworks/native/services/surfaceflinger
diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk
index 71138ac560..59d1a4d289 100644
--- a/target/product/runtime_libart.mk
+++ b/target/product/runtime_libart.mk
@@ -94,7 +94,7 @@ endif
#
# The thermal cutoff value is currently set to THERMAL_STATUS_MODERATE.
PRODUCT_SYSTEM_PROPERTIES += \
- dalvik.vm.usejit=true \
+ dalvik.vm.usejit=false \
dalvik.vm.dexopt.secondary=true \
dalvik.vm.dexopt.thermal-cutoff=2 \
dalvik.vm.appimageformat=lz4
@@ -110,40 +110,23 @@ PRODUCT_SYSTEM_PROPERTIES += \
# without exceptions).
# TODO(b/243646876): Remove `pm.dexopt.post-boot`.
PRODUCT_SYSTEM_PROPERTIES += \
- pm.dexopt.post-boot?=verify \
- pm.dexopt.first-boot?=verify \
- pm.dexopt.boot-after-ota?=verify \
- pm.dexopt.boot-after-mainline-update?=verify \
- pm.dexopt.install?=speed-profile \
- pm.dexopt.install-fast?=skip \
- pm.dexopt.install-bulk?=speed-profile \
- pm.dexopt.install-bulk-secondary?=verify \
- pm.dexopt.install-bulk-downgraded?=verify \
- pm.dexopt.install-bulk-secondary-downgraded?=verify \
- pm.dexopt.bg-dexopt?=speed-profile \
- pm.dexopt.ab-ota?=speed-profile \
- pm.dexopt.inactive?=verify \
- pm.dexopt.cmdline?=verify \
+ pm.dexopt.post-boot?=speed \
+ pm.dexopt.first-boot=speed \
+ pm.dexopt.boot-after-ota=speed-profile \
+ pm.dexopt.boot-after-mainline-update?=speed \
+ pm.dexopt.install?=speed \
+ pm.dexopt.install-fast?=speed \
+ pm.dexopt.install-bulk?=speed \
+ pm.dexopt.install-bulk-secondary?=speed \
+ pm.dexopt.install-bulk-downgraded?=speed \
+ pm.dexopt.install-bulk-secondary-downgraded?=speed \
+ pm.dexopt.bg-dexopt?=speed \
+ pm.dexopt.ab-ota?=speed \
+ pm.dexopt.inactive?=speed \
+ pm.dexopt.cmdline?=speed \
pm.dexopt.shared?=speed
-ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
- OVERRIDE_DISABLE_DEXOPT_ALL ?= true
-endif
-
-# OVERRIDE_DISABLE_DEXOPT_ALL disables all dexpreopt (build-time) and dexopt (on-device) activities.
-# This option is for faster iteration during development and should never be enabled for production.
-ifneq (,$(filter true,$(OVERRIDE_DISABLE_DEXOPT_ALL)))
- PRODUCT_SYSTEM_PROPERTIES += \
- dalvik.vm.disable-art-service-dexopt=true \
- dalvik.vm.disable-odrefresh=true
-
- # Disable all dexpreopt activities except for the ART boot image.
- # We have to dexpreopt the ART boot image because they are used by ART tests. This should not
- # be too much of a problem for platform developers because a change to framework code should not
- # trigger dexpreopt for the ART boot image.
- WITH_DEXPREOPT_ART_BOOT_IMG_ONLY := true
- $(call soong_config_set_bool,PrebuiltGmsCore,ExcludeExtractApk,true)
-endif
+WITH_DEXPREOPT_ART_BOOT_IMG_ONLY := false
# Enable resolution of startup const strings.
PRODUCT_SYSTEM_PROPERTIES += \
diff --git a/target/product/security/gmscompat_lib.pk8 b/target/product/security/gmscompat_lib.pk8
new file mode 100644
index 0000000000..f7eb94a8c3
Binary files /dev/null and b/target/product/security/gmscompat_lib.pk8 differ
diff --git a/target/product/security/gmscompat_lib.x509.pem b/target/product/security/gmscompat_lib.x509.pem
new file mode 100644
index 0000000000..7b3fd9f09e
--- /dev/null
+++ b/target/product/security/gmscompat_lib.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+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
+4Zu2DO2SkuXrnHtyWpEt03g=
+-----END CERTIFICATE-----
diff --git a/target/product/sysconfig/preinstalled-packages-platform-handheld-product.xml b/target/product/sysconfig/preinstalled-packages-platform-handheld-product.xml
index 536c35b671..b7ffd79540 100644
--- a/target/product/sysconfig/preinstalled-packages-platform-handheld-product.xml
+++ b/target/product/sysconfig/preinstalled-packages-platform-handheld-product.xml
@@ -58,7 +58,6 @@
-
diff --git a/target/product/updatable_apex.mk b/target/product/updatable_apex.mk
index 8b3bc9a7e5..186927e83b 100644
--- a/target/product/updatable_apex.mk
+++ b/target/product/updatable_apex.mk
@@ -18,3 +18,5 @@
# and CtsShimPrivPrebuilt since they are packaged inside the APEX.
PRODUCT_PACKAGES += com.android.apex.cts.shim.v1_prebuilt
PRODUCT_SYSTEM_PROPERTIES += ro.apex.updatable=true
+
+OVERRIDE_PRODUCT_COMPRESSED_APEX := false
diff --git a/tools/otatools_package/Android.bp b/tools/otatools_package/Android.bp
index 1028da1f04..dfd6e9c4bf 100644
--- a/tools/otatools_package/Android.bp
+++ b/tools/otatools_package/Android.bp
@@ -17,22 +17,8 @@ package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
-genrule_defaults {
- name: "otatools_package_defaults",
- enabled: select(soong_config_variable("otatools", "use_otatools_package"), {
- true: true,
- default: false,
- }),
- target: {
- windows: {
- enabled: false,
- },
- },
-}
-
java_genrule_host {
name: "otatools_package_dep_jars",
- defaults: ["otatools_package_defaults"],
tools: ["soong_zip"],
compile_multilib: "first",
cmd: "mkdir -p $(genDir)/framework && " +
@@ -49,7 +35,6 @@ java_genrule_host {
cc_genrule {
name: "otatools_package_dep_libs",
- defaults: ["otatools_package_defaults"],
host_supported: true,
device_supported: false,
compile_multilib: "first",
@@ -99,7 +84,6 @@ cc_genrule {
cc_genrule {
name: "otatools_package_dep_bins",
- defaults: ["otatools_package_defaults"],
host_supported: true,
device_supported: false,
compile_multilib: "first",
@@ -209,8 +193,7 @@ cc_genrule {
}
java_genrule_host {
- name: "otatools-package",
- defaults: ["otatools_package_defaults"],
+ name: "otatools_package",
tools: ["merge_zips"],
compile_multilib: "first",
cmd: "$(location merge_zips) $(out) $(in)",
@@ -221,11 +204,11 @@ java_genrule_host {
":otatools_package_dep_libs",
":otatools_package_releasetools",
],
- out: ["otatools.zip"],
+ // TODO: Rename as "otatools.zip" when the rest files are ready.
+ out: ["otatools_temp.zip"],
dist: {
targets: [
- "droidcore",
- "otatools-package",
+ "otatools-package-temp",
],
},
}
diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py
index 801b628252..7720a85a1f 100755
--- a/tools/releasetools/sign_target_files_apks.py
+++ b/tools/releasetools/sign_target_files_apks.py
@@ -1429,6 +1429,8 @@ def BuildKeyMap(misc_info, key_mapping_options):
devkeydir + "/platform": d + "/platform",
devkeydir + "/networkstack": d + "/networkstack",
devkeydir + "/sdk_sandbox": d + "/sdk_sandbox",
+ devkeydir + "/bluetooth": d + "/bluetooth",
+ devkeydir + "/gmscompat_lib": d + "/gmscompat_lib",
})
else:
OPTIONS.key_map[s] = d