From aecc714e2e1e1d85b4f10cf5810582abf3d531ac Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Thu, 18 Aug 2022 13:38:55 -0400 Subject: [PATCH 01/33] add bluetooth to standard key mapping --- tools/releasetools/sign_target_files_apks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index 801b628252..6e3b21c13f 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -1429,6 +1429,7 @@ 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", }) else: OPTIONS.key_map[s] = d From 0205a7180e43575b8355c6b39110793327559e73 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Tue, 12 Oct 2021 08:19:39 -0400 Subject: [PATCH 02/33] add cortex-a76 to ARMv8.2 list --- core/combo/TARGET_linux-arm.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 719651e99cb38d47da79063419e3dd5a313e9f09 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Tue, 13 Sep 2016 22:05:56 -0400 Subject: [PATCH 03/33] use -fwrapv when signed overflow checking is off --- core/config_sanitizers.mk | 6 ++++++ 1 file changed, 6 insertions(+) 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 From 2e5a105f36e30205e5a6f22ab160f99a5c191909 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Tue, 7 Mar 2023 18:40:27 +0200 Subject: [PATCH 04/33] don't compress APEXes Compressed APEXes are unpacked into /data/apex/decompressed before being mounted. When APEXes aren't updated out-of-band, this unnecessarily weakens verified boot and wastes storage space. On GrapheneOS, APEXes are not updated out-of-band. For more details, see https://source.android.com/docs/core/ota/apex#compressed-apex --- target/product/updatable_apex.mk | 2 ++ 1 file changed, 2 insertions(+) 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 From f048fa136e2457fdcc8e2bd1eae287b3541917ef Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Tue, 12 May 2020 21:02:49 -0400 Subject: [PATCH 05/33] always use UTC as the time zone for build dates --- core/main.mk | 2 +- core/version_util.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/main.mk b/core/main.mk index 825f1f455e..23a50d0837 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 diff --git a/core/version_util.mk b/core/version_util.mk index 8ab36b773b..285f108674 100644 --- a/core/version_util.mk +++ b/core/version_util.mk @@ -234,7 +234,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. From e41f3a802ed0a3093bc1ce30a44d816a573a45a2 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Tue, 29 Aug 2023 16:29:12 +0300 Subject: [PATCH 06/33] envsetup.sh: source product-specific script from lunch/choosecombo If there's exactly one "vendor/*/$PRODUCT/cmds-for-envsetup.sh" file, source it at the early stage of lunch/choosecombo command. This allows to define extra product-specific variables before the product makefile is parsed, which happens quite late. --- envsetup.sh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/envsetup.sh b/envsetup.sh index e34a365f6a..e1a6a6ac8a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -444,12 +444,50 @@ 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 + } + + echo "============================================" + echo "Commands from $EXTRA_CMDS:" + cat $EXTRA_CMDS + source $EXTRA_CMDS + echo "============================================" +} + 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 \ From f56100446b1144085a7d7e30c9f38a199834d4fa Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Tue, 29 Aug 2023 16:32:39 +0300 Subject: [PATCH 07/33] support setting per-product PLATFORM_SECURITY_PATCH variable PLATFORM_SECURITY_PATCH can already be overridden with a global variable, but using per-product variable is less error-prone. --- core/version_util.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/version_util.mk b/core/version_util.mk index 285f108674..47150516d0 100644 --- a/core/version_util.mk +++ b/core/version_util.mk @@ -55,6 +55,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 From 4eb913086efc0545a4455e8d9be09d6d9577640e Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Tue, 29 Aug 2023 16:35:35 +0300 Subject: [PATCH 08/33] support setting per-product BUILD_ID variable --- core/build_id.mk | 5 +++++ core/version_util.mk | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) 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/version_util.mk b/core/version_util.mk index 47150516d0..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 From b742625abe58e1d1abdb66f7963eda8475ea2a92 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Wed, 13 Sep 2023 10:53:50 +0300 Subject: [PATCH 09/33] add GrapheneOS build environment setup --- envsetup.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index e1a6a6ac8a..70b00492e9 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 @@ -473,11 +478,13 @@ function maybe_source_extra_commands() { return } - echo "============================================" - echo "Commands from $EXTRA_CMDS:" - cat $EXTRA_CMDS + [[ -n "${ANDROID_QUIET_BUILD:-}" ]] || { + echo "============================================" + echo "Commands from $EXTRA_CMDS:" + cat $EXTRA_CMDS + echo "============================================" + } source $EXTRA_CMDS - echo "============================================" } function _lunch_meat() @@ -1223,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' + From 131833e3598ca7b8f217ebed4edcec38391f6062 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Mon, 16 Mar 2020 18:01:18 -0400 Subject: [PATCH 10/33] disable BOARD_USES_SYSTEM_OTHER_ODEX for mainline The system_other image is gone after the first update and the OS ends up needing to compile the code for these apps as part of performing each OS update. GrapheneOS doesn't use JIT compilation and the AOT compilation isn't guided by JIT profiles so this ends up using the same amount of space and doing a bunch of unnecessary work on each device. It also reduces the scope of verified boot by having the compiled odex code for base system apps outside of the verified system partition. --- target/board/BoardConfigMainlineCommon.mk | 4 ---- 1 file changed, 4 deletions(-) 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 From 09691892fe711b13076fb23c1b421b8a9d597522 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 6 Sep 2019 07:28:11 -0400 Subject: [PATCH 11/33] always use dex preopt --- core/board_config.mk | 5 +---- core/dex_preopt_config.mk | 11 ++++------- target/product/runtime_libart.mk | 19 +------------------ 3 files changed, 6 insertions(+), 29 deletions(-) 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/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/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 71138ac560..78546445b0 100644 --- a/target/product/runtime_libart.mk +++ b/target/product/runtime_libart.mk @@ -126,24 +126,7 @@ PRODUCT_SYSTEM_PROPERTIES += \ pm.dexopt.cmdline?=verify \ 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 += \ From 6131d9b35099f7831822c398caf2b0bc78cd77af Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sun, 28 Aug 2016 14:14:10 -0400 Subject: [PATCH 12/33] disable ART JIT --- target/product/runtime_libart.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 78546445b0..41612686ad 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 From 0662832f961ceb042b24684adce8e6fd8feeffbb Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Wed, 7 Sep 2016 23:27:07 -0400 Subject: [PATCH 13/33] always use speed mode ahead-of-time compilation --- target/product/runtime_libart.mk | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 41612686ad..234cdddd90 100644 --- a/target/product/runtime_libart.mk +++ b/target/product/runtime_libart.mk @@ -110,20 +110,20 @@ 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 \ + 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 WITH_DEXPREOPT_ART_BOOT_IMG_ONLY := false From 01ac8f76ffd26d850a38a84e20283783e33167b7 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Fri, 13 Oct 2023 21:37:35 +0300 Subject: [PATCH 14/33] use "speed-profile" compiler filter for boot-after-ota dexopt otapreopt is currently broken, which massively slows down post-OTA boot when there's a large amount of optimizable code in user apps. Compilation with the "speed" compiler filter is now performed asynchronously, after boot. Most of the system packages are not affected by this change, since they use dexpreopted code from the system image. --- target/product/runtime_libart.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 234cdddd90..59d1a4d289 100644 --- a/target/product/runtime_libart.mk +++ b/target/product/runtime_libart.mk @@ -112,7 +112,7 @@ PRODUCT_SYSTEM_PROPERTIES += \ PRODUCT_SYSTEM_PROPERTIES += \ pm.dexopt.post-boot?=speed \ pm.dexopt.first-boot=speed \ - pm.dexopt.boot-after-ota=speed \ + pm.dexopt.boot-after-ota=speed-profile \ pm.dexopt.boot-after-mainline-update?=speed \ pm.dexopt.install?=speed \ pm.dexopt.install-fast?=speed \ From 793e974ebe6b75d1f955149394d57b75eeb3f1e3 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Wed, 25 Oct 2023 17:07:56 +0300 Subject: [PATCH 15/33] add TARGET_HAS_ARM_MTE to soong variables --- core/soong_config.mk | 2 ++ 1 file changed, 2 insertions(+) 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)) From 2a3f7f2a963276a89430b2e9754e7a6056298da2 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sun, 24 Oct 2021 23:02:07 -0400 Subject: [PATCH 16/33] product: Enable gestural navigation overlay to match default nav mode This fixes an occasional issue where the navbar is in a broken state (gesture nav works, but the bar is rendered as if it's 2/3-button nav) after wiping data or provisioning new users. From Danny Lin in ProtonAOSP. --- target/product/aosp_product.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/product/aosp_product.mk b/target/product/aosp_product.mk index 00b4e6a932..827d39d638 100644 --- a/target/product/aosp_product.mk +++ b/target/product/aosp_product.mk @@ -26,6 +26,7 @@ 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 += \ From 8560682770e49df3a6ab0f547056bbf871bd756c Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Tue, 12 Dec 2023 20:52:37 +0200 Subject: [PATCH 17/33] disable memory tagging for surfaceflinger --- target/product/memtag-common.mk | 3 +++ 1 file changed, 3 insertions(+) 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 From e9c65869efab8c9acd6b36bc6304776512d6dc4f Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Thu, 17 Oct 2024 19:12:50 +0300 Subject: [PATCH 18/33] don't exclude Gallery from Private Space preinstalls --- .../preinstalled-packages-platform-handheld-product.xml | 1 - 1 file changed, 1 deletion(-) 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 @@ - From 35988916c49eb0f33129ee2239702ade69967352 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Thu, 16 Jan 2025 20:20:31 -0500 Subject: [PATCH 19/33] rename messaging to Messaging --- target/product/aosp_base_telephony.mk | 2 +- target/product/aosp_product.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 827d39d638..c54d58ddf6 100644 --- a/target/product/aosp_product.mk +++ b/target/product/aosp_product.mk @@ -31,7 +31,7 @@ PRODUCT_PRODUCT_PROPERTIES += \ # More AOSP packages PRODUCT_PACKAGES += \ initial-package-stopped-states-aosp.xml \ - messaging \ + Messaging \ PhotoTable \ preinstalled-packages-platform-aosp-product.xml \ ThemePicker \ From 3cf0cb4e28faf3f59abd2e7ad2c7e6204fcf1dd1 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Fri, 22 Nov 2024 12:47:08 +0200 Subject: [PATCH 20/33] add NetworkLocation --- target/product/handheld_system.mk | 1 + 1 file changed, 1 insertion(+) 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 \ From 1d8f3a4d6b4bdeb826bf761ce68b70238b2b4290 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Tue, 31 Oct 2023 21:07:35 -0400 Subject: [PATCH 21/33] use sdk_phone64_x86_64 as the default target The previous default target sdk_phone_x86_64 has been removed upstream. --- core/envsetup.mk | 2 +- envsetup.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index 7a264859dd..f2dc03d9d2 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 diff --git a/envsetup.sh b/envsetup.sh index 70b00492e9..c6e0fcbc57 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -626,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 From c219b7f47bd79be3e6794bc9d5f44b70a1a4f1c6 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Sun, 13 Jul 2025 14:18:40 +0300 Subject: [PATCH 22/33] add target for adevtool state collection build --- core/Makefile | 24 ++++++++++++++++++++++++ core/sysprop.mk | 3 +++ 2 files changed, 27 insertions(+) diff --git a/core/Makefile b/core/Makefile index 47ecbd9763..a42ddb9891 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5289,6 +5289,30 @@ INTERNAL_ALLIMAGES_FILES := \ $(INTERNAL_SYSTEM_DLKMIMAGE_FILES) \ $(INTERNAL_PVMFWIMAGE_FILES) \ +define write-allimages-file-list + $(file >$(PRODUCT_OUT)/allimages-file-list.txt,$(sort $(INTERNAL_ALLIMAGES_FILES))) +endef + +.PHONY: allimages-file-list +allimages-file-list: $(call write-allimages-file-list) + +adevtool-state-collection-inputs: \ + allimages-file-list \ + build-props \ + module-info \ + selinux_policy \ + \ + framework_compatibility_matrix.xml \ + system_compatibility_matrix.xml \ + product_compatibility_matrix.xml \ + vendor_compatibility_matrix.xml \ + \ + system_manifest.xml \ + system_ext_manifest.xml \ + vendor_manifest.xml \ + +.PHONY: adevtool-state-collection-inputs + # ----------------------------------------------------------------- # Run apex_sepolicy_tests for all installed APEXes 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) From 23ff0c9b85ab51c9ab5e0dc4a800d93bf9563204 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Mon, 20 Oct 2025 22:44:44 +0300 Subject: [PATCH 23/33] remove references to unavailable Pixel overlays --- core/layoutlib_data.mk | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) 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 From 4669896aa637b3f90bc79fb08119d7c363a3f5ad Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Mon, 20 Oct 2025 22:44:44 +0300 Subject: [PATCH 24/33] add dev-build-only variant of gmscompat_lib key --- target/product/security/gmscompat_lib.pk8 | Bin 0 -> 2373 bytes .../product/security/gmscompat_lib.x509.pem | 35 ++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 target/product/security/gmscompat_lib.pk8 create mode 100644 target/product/security/gmscompat_lib.x509.pem diff --git a/target/product/security/gmscompat_lib.pk8 b/target/product/security/gmscompat_lib.pk8 new file mode 100644 index 0000000000000000000000000000000000000000..f7eb94a8c3f78330cc861aae5d7bb1712476980d GIT binary patch literal 2373 zcmV-L3A*+$f(bza0RS)!1_>&LNQUwD=>lyCjtQg0)heo0O5<39$tL* zjI1>meRaUT?^sid8|{D=dE<(!=}cFnJpOW4*TV@RJi9sjupU}eVD&kJ{HrOl%f$ZV zvRw}Jyt^bgOX@VzJ9>o8wN-ehuYp(Po@=k}Oy4jxyL7>kvwU0|mh(A1?7#62 z-xMECmK&}~tYXvx{M`?UZ|}tq`doMk$3@T^G6c(5eb9Et?rbf?>OaCb$#$pQlb009Dm0sj}8qzfsS zRSJ0}>Y5g=3ZlW#{Buvox97>T8H%vy`welvMVMq;n(2z!JM%p`_S&w`OLj1xH#i2x z(C&bl4#9V&RP0aSl!|kjhSWNtvgi<_Wm3yN3v68-!<^#stC(?-$Q)3ENw@|2^6DV& zQ7*?(w+L3i*J1df%O$Al(I^76VTJwrSyfPf;-qMgFdG3)Q2+#Q3Q7R28$hQ?Axk1B^~ya8XzVB+C^PbvLhC=q zXCPYN`3R=;iM_V1bGFlgNdGX1peavio75|MKiK|~QjOK|gGY3B8Cc89NFSi`0-QX= zn5riY;uCIK45oMg7w^bZW|G4$ZpmQu;_WEkeOs-EM3b`Utr%$; zK}sUcrvyDdcuh6u4QmF69%4%!0aRPz?0RZsRtQpI>NkV~- z>(JE^6gNM*2+W^ac zfQp#Z#J{E6;=V8ujJ^etZr^Dj$F{dRi(7cmYCvu7B#&On9&rcwz$*J+vLXSbmge_j zXkn3a0mfS%(0x?;Vvu<0TW)?W3aA#6wvAYd9U3`Q69P@4kd+a(;oqq9o=@Rs@GenI z&Zdoav!sVUJOK8knl|p}B6GI1S|z~Pv9;Aobg{iy*TvEG1@)4lLW58YOaow3)2GHR zsNz3yMLJ?DnqEdS{%+{fjCDEZ77FhcAv$#lE3`oSVuzTr5IF*Z0RaH-!ER{F{-T)Q z=4vOFl1jL#1s@V^&sLPOlVsXzYzSzG6==mMK_NFKw23IJ05;g2)#Et8=0t8-P%piyf@m0mq~EYTD6V&$7*v@&eu$sPdwQL+B4KR*5J=)) z+6UGL`Te;6n@fpH=Wks|0Oqr7hVthYT}}s3*NiD^g(-m$RDf_wc`9t0tJw0%z~7!Y zR^E-~(tf;fYhkt8#Qsc?LIs>XK3d^cB%rxQm4Vs}ZkAkF2SLg2C1I>9JhThvuht>M z5m8b>ONHq&R%&%3uqoGy$UJ)?_Ty5bPDofF+u80w>vv4e85Lmyf&l>loo}3L&VbMk zsQ@YW0|no4F!TQUUZ^6^*_a%2?ELO_-gs>^Eo;Z1(9*$~}rzdgl!7C6C-S>ML9ckGVx0%VI;f^v>>#(0tC#aR# zT^qOZ)MsghW>-moSZ_Y79X+E9+MhJrBy7wvAk~dO-VpL~Ut)rd literal 0 HcmV?d00001 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----- From cfbefb538ccc4b83661827ee264bb908167cbd57 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Thu, 23 Oct 2025 13:38:57 +0300 Subject: [PATCH 25/33] add gmscompat_lib key to sign_target_files_apks key mapping --- tools/releasetools/sign_target_files_apks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index 6e3b21c13f..7720a85a1f 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -1430,6 +1430,7 @@ def BuildKeyMap(misc_info, key_mapping_options): 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 From f1b50e21e614a4ea3b852ea72ab3c97f550bd3ee Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Wed, 12 Nov 2025 22:24:00 +0200 Subject: [PATCH 26/33] extend adevtool-state-collection-inputs target --- core/Makefile | 57 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/core/Makefile b/core/Makefile index a42ddb9891..d7c29c74b2 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5289,27 +5289,64 @@ 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 $(INTERNAL_ALLIMAGES_FILES))) + $(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 \ - \ - framework_compatibility_matrix.xml \ - system_compatibility_matrix.xml \ - product_compatibility_matrix.xml \ - vendor_compatibility_matrix.xml \ - \ - system_manifest.xml \ - system_ext_manifest.xml \ - vendor_manifest.xml \ + sepolicy.recovery \ + sysconfigs \ + vintfs \ .PHONY: adevtool-state-collection-inputs From eead2711dc94a016545569c81bc0bbe836ba5e12 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Wed, 12 Nov 2025 22:24:00 +0200 Subject: [PATCH 27/33] don't build Windows variants of host tools by default --- core/envsetup.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index f2dc03d9d2..dd0ff385a9 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -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) From 1330048e8e01d192dd81ebb9c7acb50ee2320d8b Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Thu, 13 Nov 2025 00:21:29 +0200 Subject: [PATCH 28/33] Revert "Update the otatools-package enabled scope" This reverts commit e1e7648c416486d83393d3002e7fcf91d2a8d1e5. --- core/android_soong_config_vars.mk | 6 ------ tools/otatools_package/Android.bp | 17 ----------------- 2 files changed, 23 deletions(-) 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/tools/otatools_package/Android.bp b/tools/otatools_package/Android.bp index 1028da1f04..6125e60c09 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", @@ -210,7 +194,6 @@ cc_genrule { java_genrule_host { name: "otatools-package", - defaults: ["otatools_package_defaults"], tools: ["merge_zips"], compile_multilib: "first", cmd: "$(location merge_zips) $(out) $(in)", From 2f21d5e708fd213f18c0f6ffe14791a46d326e50 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Thu, 13 Nov 2025 00:21:31 +0200 Subject: [PATCH 29/33] Revert "Move otatools-package from make to soong" This reverts commit 322b51b245bc70bcbbd5538d40dd47c45565b67f. --- core/Makefile | 58 +++++++++++++++++++++++++++++++ core/main.mk | 4 +++ tools/otatools_package/Android.bp | 8 ++--- 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/core/Makefile b/core/Makefile index d7c29c74b2..f705de7630 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5947,6 +5947,64 @@ 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 + +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/main.mk b/core/main.mk index 23a50d0837..f44732ab17 100644 --- a/core/main.mk +++ b/core/main.mk @@ -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/tools/otatools_package/Android.bp b/tools/otatools_package/Android.bp index 6125e60c09..dfd6e9c4bf 100644 --- a/tools/otatools_package/Android.bp +++ b/tools/otatools_package/Android.bp @@ -193,7 +193,7 @@ cc_genrule { } java_genrule_host { - name: "otatools-package", + name: "otatools_package", tools: ["merge_zips"], compile_multilib: "first", cmd: "$(location merge_zips) $(out) $(in)", @@ -204,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", ], }, } From 300f0ace74b5d9e819f584a4c0c91e5e146a57be Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Wed, 16 Sep 2020 18:05:27 -0400 Subject: [PATCH 30/33] add factory images scripts to otatools.zip --- core/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/Makefile b/core/Makefile index f705de7630..56df498605 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5977,6 +5977,11 @@ INTERNAL_OTATOOLS_PACKAGE_FILES += \ -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 + INTERNAL_OTATOOLS_RELEASETOOLS := \ $(shell find build/make/tools/releasetools -name "*.pyc" -prune -o \ \( -type f -o -type l \) -print | sort) From 665e42d6747ac0cb261c8d0b478d83fbc5455870 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 15 Oct 2021 00:58:53 -0400 Subject: [PATCH 31/33] add GrapheneOS scripts to otatools.zip --- core/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/Makefile b/core/Makefile index 56df498605..15c83aedf7 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5982,6 +5982,15 @@ 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) From b24bd3812cc4fe4b09c2251068406251d53c4f8c Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Thu, 8 Aug 2024 11:37:21 +0300 Subject: [PATCH 32/33] add fastboot to otatools It's needed for factory image optimization. --- core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/core/Makefile b/core/Makefile index 15c83aedf7..4a1118cb8a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -5873,6 +5873,7 @@ INTERNAL_OTATOOLS_MODULES := \ delta_generator \ e2fsck \ e2fsdroid \ + fastboot \ fc_sort \ fec \ fsck.erofs \ From ae913ed24b6567139fb8f22dd2aeff3ad7087614 Mon Sep 17 00:00:00 2001 From: soupslurpr <92235850+soupslurpr@users.noreply.github.com> Date: Fri, 2 Jan 2026 17:45:23 -0800 Subject: [PATCH 33/33] add GrapheneOS Speech Services app --- target/product/handheld_product.mk | 1 + 1 file changed, 1 insertion(+) 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 \