diff options
author | Gina Ko <yichunko@google.com> | 2024-03-26 22:46:48 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-03-26 22:46:48 +0000 |
commit | 813b17dd5cf5e81c1bd36e7ffbab2d39844dcb36 (patch) | |
tree | 0fe63a881494d6abcea0bcb8397f9ac5dcccb058 | |
parent | c3ce9e344c6bc592571283909b11ad392b999a17 (diff) | |
parent | 54101665ee88cca5307679023df2635f26f3f9cb (diff) | |
download | build-813b17dd5cf5e81c1bd36e7ffbab2d39844dcb36.tar.gz |
Merge "Revert "Migrate buildinfo.sh script into Soong"" into main
-rw-r--r-- | core/soong_config.mk | 14 | ||||
-rw-r--r-- | core/sysprop.mk | 88 | ||||
-rwxr-xr-x | tools/buildinfo.sh | 59 |
3 files changed, 145 insertions, 16 deletions
diff --git a/core/soong_config.mk b/core/soong_config.mk index 1e419f3b96..d4c56e5707 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -31,11 +31,7 @@ $(call add_json_str, Make_suffix, -$(TARGET_PRODUCT)) $(call add_json_str, BuildId, $(BUILD_ID)) $(call add_json_str, BuildNumberFile, build_number.txt) -$(call add_json_str, BuildHostnameFile, build_hostname.txt) -$(call add_json_str, BuildThumbprintFile, build_thumbprint.txt) -$(call add_json_bool, DisplayBuildNumber, $(filter true,$(DISPLAY_BUILD_NUMBER))) -$(call add_json_str, Platform_display_version_name, $(PLATFORM_DISPLAY_VERSION)) $(call add_json_str, Platform_version_name, $(PLATFORM_VERSION)) $(call add_json_val, Platform_sdk_version, $(PLATFORM_SDK_VERSION)) $(call add_json_str, Platform_sdk_codename, $(PLATFORM_VERSION_CODENAME)) @@ -62,7 +58,6 @@ $(call add_json_bool, Always_use_prebuilt_sdks, $(TARGET_BUILD_USE_PREB $(call add_json_bool, Debuggable, $(filter userdebug eng,$(TARGET_BUILD_VARIANT))) $(call add_json_bool, Eng, $(filter eng,$(TARGET_BUILD_VARIANT))) -$(call add_json_str, BuildType, $(TARGET_BUILD_TYPE)) $(call add_json_str, DeviceName, $(TARGET_DEVICE)) $(call add_json_str, DeviceProduct, $(TARGET_PRODUCT)) @@ -328,6 +323,7 @@ $(call add_json_list, AfdoProfiles, $(ALL_AFDO_PROFILES)) $(call add_json_str, ProductManufacturer, $(PRODUCT_MANUFACTURER)) $(call add_json_str, ProductBrand, $(PRODUCT_BRAND)) +$(call add_json_list, BuildVersionTags, $(BUILD_VERSION_TAGS)) $(call add_json_str, ReleaseVersion, $(_RELEASE_VERSION)) $(call add_json_list, ReleaseAconfigValueSets, $(RELEASE_ACONFIG_VALUE_SETS)) @@ -410,14 +406,6 @@ $(call add_json_bool, ExportRuntimeApis, $(filter true,$(PRODUCT_EXPORT_RUNTIME_ $(call add_json_str, AconfigContainerValidation, $(ACONFIG_CONTAINER_VALIDATION)) -$(call add_json_list, ProductLocales, $(subst _,-,$(PRODUCT_LOCALES))) - -$(call add_json_list, ProductDefaultWifiChannels, $(PRODUCT_DEFAULT_WIFI_CHANNELS)) - -$(call add_json_bool, BoardUseVbmetaDigestInFingerprint, $(filter true,$(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT))) - -$(call add_json_list, OemProperties, $(PRODUCT_OEM_PROPERTIES)) - $(call json_end) $(file >$(SOONG_VARIABLES).tmp,$(json_contents)) diff --git a/core/sysprop.mk b/core/sysprop.mk index 47d8a41a38..652ca9757e 100644 --- a/core/sysprop.mk +++ b/core/sysprop.mk @@ -23,6 +23,7 @@ ifeq ($(BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED), true) property_overrides_split_enabled := true endif +BUILDINFO_SH := build/make/tools/buildinfo.sh POST_PROCESS_PROPS := $(HOST_OUT_EXECUTABLES)/post_process_props$(HOST_EXECUTABLE_SUFFIX) # Emits a set of sysprops common to all partitions to a file. @@ -211,10 +212,44 @@ endif ifneq (,$(shell mkdir -p $(PRODUCT_OUT) && echo $(BUILD_THUMBPRINT) >$(BUILD_THUMBPRINT_FILE) && grep " " $(BUILD_THUMBPRINT_FILE))) $(error BUILD_THUMBPRINT cannot contain spaces: "$(file <$(BUILD_THUMBPRINT_FILE))") endif +BUILD_THUMBPRINT_FROM_FILE := $$(cat $(BUILD_THUMBPRINT_FILE)) # unset it for safety. -BUILD_THUMBPRINT_FILE := BUILD_THUMBPRINT := +# ----------------------------------------------------------------- +# Define human readable strings that describe this build +# + +# BUILD_ID: detail info; has the same info as the build fingerprint +BUILD_DESC := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER_FROM_FILE) $(BUILD_VERSION_TAGS) + +# BUILD_DISPLAY_ID is shown under Settings -> About Phone +ifeq ($(TARGET_BUILD_VARIANT),user) + # User builds should show: + # release build number or branch.buld_number non-release builds + + # Dev. branches should have DISPLAY_BUILD_NUMBER set + ifeq (true,$(DISPLAY_BUILD_NUMBER)) + BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER_FROM_FILE) $(BUILD_KEYS) + else + BUILD_DISPLAY_ID := $(BUILD_ID) $(BUILD_KEYS) + endif +else + # Non-user builds should show detailed build information + BUILD_DISPLAY_ID := $(BUILD_DESC) +endif + +# TARGET_BUILD_FLAVOR and ro.build.flavor are used only by the test +# harness to distinguish builds. Only add _asan for a sanitized build +# if it isn't already a part of the flavor (via a dedicated lunch +# config for example). +TARGET_BUILD_FLAVOR := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) +ifneq (, $(filter address, $(SANITIZE_TARGET))) +ifeq (,$(findstring _asan,$(TARGET_BUILD_FLAVOR))) +TARGET_BUILD_FLAVOR := $(TARGET_BUILD_FLAVOR)_asan +endif +endif + KNOWN_OEM_THUMBPRINT_PROPERTIES := \ ro.product.brand \ ro.product.name \ @@ -229,7 +264,54 @@ KNOWN_OEM_THUMBPRINT_PROPERTIES:= # Note: parts of this file that can't be generated by the build-properties # macro are manually created as separate files and then fed into the macro -buildinfo_prop := $(call intermediates-dir-for,ETC,buildinfo.prop)/buildinfo.prop +# Accepts a whitespace separated list of product locales such as +# (en_US en_AU en_GB...) and returns the first locale in the list with +# underscores replaced with hyphens. In the example above, this will +# return "en-US". +define get-default-product-locale +$(strip $(subst _,-, $(firstword $(1)))) +endef + +gen_from_buildinfo_sh := $(call intermediates-dir-for,PACKAGING,system_build_prop)/buildinfo.prop + +ifeq ($(strip $(HAS_BUILD_NUMBER)),true) +$(gen_from_buildinfo_sh): $(BUILD_NUMBER_FILE) +endif +$(gen_from_buildinfo_sh): $(INTERNAL_BUILD_ID_MAKEFILE) $(API_FINGERPRINT) $(BUILD_HOSTNAME_FILE) | $(BUILD_DATETIME_FILE) + $(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \ + TARGET_BUILD_FLAVOR="$(TARGET_BUILD_FLAVOR)" \ + TARGET_DEVICE="$(TARGET_DEVICE)" \ + PRODUCT_DEFAULT_LOCALE="$(call get-default-product-locale,$(PRODUCT_LOCALES))" \ + PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \ + PRIVATE_BUILD_DESC="$(BUILD_DESC)" \ + BUILD_ID="$(BUILD_ID)" \ + BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \ + DATE="$(DATE_FROM_FILE)" \ + BUILD_USERNAME="$(BUILD_USERNAME)" \ + BUILD_HOSTNAME="$(BUILD_HOSTNAME_FROM_FILE)" \ + BUILD_NUMBER="$(BUILD_NUMBER_FROM_FILE)" \ + BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT="$(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT)" \ + PLATFORM_VERSION="$(PLATFORM_VERSION)" \ + PLATFORM_DISPLAY_VERSION="$(PLATFORM_DISPLAY_VERSION)" \ + PLATFORM_VERSION_LAST_STABLE="$(PLATFORM_VERSION_LAST_STABLE)" \ + PLATFORM_SECURITY_PATCH="$(PLATFORM_SECURITY_PATCH)" \ + PLATFORM_BASE_OS="$(PLATFORM_BASE_OS)" \ + PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \ + PLATFORM_PREVIEW_SDK_VERSION="$(PLATFORM_PREVIEW_SDK_VERSION)" \ + PLATFORM_PREVIEW_SDK_FINGERPRINT="$$(cat $(API_FINGERPRINT))" \ + PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \ + PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \ + PLATFORM_VERSION_KNOWN_CODENAMES="$(PLATFORM_VERSION_KNOWN_CODENAMES)" \ + PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION="$(PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION)" \ + BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \ + $(if $(OEM_THUMBPRINT_PROPERTIES),BUILD_THUMBPRINT="$(BUILD_THUMBPRINT_FROM_FILE)") \ + TARGET_CPU_ABI_LIST="$(TARGET_CPU_ABI_LIST)" \ + TARGET_CPU_ABI_LIST_32_BIT="$(TARGET_CPU_ABI_LIST_32_BIT)" \ + TARGET_CPU_ABI_LIST_64_BIT="$(TARGET_CPU_ABI_LIST_64_BIT)" \ + TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ + TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ + ZYGOTE_FORCE_64_BIT="$(ZYGOTE_FORCE_64_BIT)" \ + bash $(BUILDINFO_SH) > $@ ifdef TARGET_SYSTEM_PROP system_prop_file := $(TARGET_SYSTEM_PROP) @@ -238,7 +320,7 @@ system_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop) endif _prop_files_ := \ - $(buildinfo_prop) \ + $(gen_from_buildinfo_sh) \ $(system_prop_file) # Order matters here. When there are duplicates, the last one wins. diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh new file mode 100755 index 0000000000..0ed9453e8d --- /dev/null +++ b/tools/buildinfo.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +echo "# begin build properties" +echo "# autogenerated by buildinfo.sh" + +# The ro.build.id will be set dynamically by init, by appending the unique vbmeta digest. +if [ "$BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT" = "true" ] ; then + echo "ro.build.legacy.id=$BUILD_ID" +else + echo "ro.build.id?=$BUILD_ID" +fi +echo "ro.build.display.id?=$BUILD_DISPLAY_ID" +echo "ro.build.version.incremental=$BUILD_NUMBER" +echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION" +echo "ro.build.version.preview_sdk=$PLATFORM_PREVIEW_SDK_VERSION" +echo "ro.build.version.preview_sdk_fingerprint=$PLATFORM_PREVIEW_SDK_FINGERPRINT" +echo "ro.build.version.codename=$PLATFORM_VERSION_CODENAME" +echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES" +echo "ro.build.version.known_codenames=$PLATFORM_VERSION_KNOWN_CODENAMES" +echo "ro.build.version.release=$PLATFORM_VERSION_LAST_STABLE" +echo "ro.build.version.release_or_codename=$PLATFORM_VERSION" +echo "ro.build.version.release_or_preview_display=$PLATFORM_DISPLAY_VERSION" +echo "ro.build.version.security_patch=$PLATFORM_SECURITY_PATCH" +echo "ro.build.version.base_os=$PLATFORM_BASE_OS" +echo "ro.build.version.min_supported_target_sdk=$PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION" +echo "ro.build.date=`$DATE`" +echo "ro.build.date.utc=`$DATE +%s`" +echo "ro.build.type=$TARGET_BUILD_TYPE" +echo "ro.build.user=$BUILD_USERNAME" +echo "ro.build.host=$BUILD_HOSTNAME" +# TODO: Remove any tag-related optional property declarations once the goals +# from go/arc-android-sigprop-changes have been achieved. +echo "ro.build.tags?=$BUILD_VERSION_TAGS" +echo "ro.build.flavor=$TARGET_BUILD_FLAVOR" + +# These values are deprecated, use "ro.product.cpu.abilist" +# instead (see below). +echo "# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete," +echo "# use ro.product.cpu.abilist instead." +echo "ro.product.cpu.abi=$TARGET_CPU_ABI" +if [ -n "$TARGET_CPU_ABI2" ] ; then + echo "ro.product.cpu.abi2=$TARGET_CPU_ABI2" +fi + +if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then + echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE" +fi +echo "ro.wifi.channels=$PRODUCT_DEFAULT_WIFI_CHANNELS" + +echo "# ro.build.product is obsolete; use ro.product.device" +echo "ro.build.product=$TARGET_DEVICE" + +echo "# Do not try to parse description or thumbprint" +echo "ro.build.description?=$PRIVATE_BUILD_DESC" +if [ -n "$BUILD_THUMBPRINT" ] ; then + echo "ro.build.thumbprint=$BUILD_THUMBPRINT" +fi + +echo "# end build properties" |