Support forcefully generating non-AB packages.
Force generate a non-A/B update package when requested.
Bug: 154344887
Test: ota_from_target_files.py --force_non_ab ...
Test: apply it as well
Change-Id: I5e81eb161722e07ef50081b6a16685cbc9963ae2
(cherry picked from commit 7169f754cc
)
Merged-In: I5e81eb161722e07ef50081b6a16685cbc9963ae2
This commit is contained in:
@@ -3365,10 +3365,10 @@ endif
|
||||
# When building a standalone recovery image for non-A/B devices, recovery image must be self-signed
|
||||
# to be verified independently, and cannot be chained into vbmeta.img. See the link below for
|
||||
# details.
|
||||
ifneq ($(AB_OTA_UPDATER),true)
|
||||
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
||||
$(if $(BOARD_AVB_RECOVERY_KEY_PATH),,\
|
||||
$(error BOARD_AVB_RECOVERY_KEY_PATH must be defined for non-A/B devices. \
|
||||
$(error BOARD_AVB_RECOVERY_KEY_PATH must be defined for if non-A/B is supported. \
|
||||
See https://android.googlesource.com/platform/external/avb/+/master/README.md#booting-into-recovery))
|
||||
endif
|
||||
endif
|
||||
@@ -3459,7 +3459,7 @@ $(eval $(_signing_args) := \
|
||||
|
||||
# The recovery partition in non-A/B devices should be verified separately. Skip adding the chain
|
||||
# partition descriptor for recovery partition into vbmeta.img.
|
||||
$(if $(or $(filter true,$(AB_OTA_UPDATER)),$(filter-out recovery,$(part))),\
|
||||
$(if $(or $(filter-out true,$(TARGET_OTA_ALLOW_NON_AB)),$(filter-out recovery,$(part))),\
|
||||
$(eval INTERNAL_AVB_MAKE_VBMETA_IMAGE_ARGS += \
|
||||
--chain_partition $(part):$($(_rollback_index_location)):$(AVB_CHAIN_KEY_DIR)/$(part).avbpubkey))
|
||||
|
||||
@@ -4254,6 +4254,9 @@ ifeq ($(AB_OTA_UPDATER),true)
|
||||
$(hide) echo "build_type=$(TARGET_BUILD_VARIANT)" >> $@
|
||||
$(hide) echo "ab_update=true" >> $@
|
||||
endif
|
||||
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
$(hide) echo "allow_non_ab=true" >> $@
|
||||
endif
|
||||
ifdef BOARD_PREBUILT_DTBOIMAGE
|
||||
$(hide) echo "has_dtbo=true" >> $@
|
||||
ifeq ($(BOARD_AVB_ENABLE),true)
|
||||
@@ -4331,10 +4334,13 @@ $(BUILT_TARGET_FILES_PACKAGE): PRIVATE_TOOL_EXTENSION := $(tool_extension)
|
||||
|
||||
ifeq ($(AB_OTA_UPDATER),true)
|
||||
updater_dep := system/update_engine/update_engine.conf
|
||||
else
|
||||
# Build OTA tools if not using the AB Updater.
|
||||
endif
|
||||
|
||||
# Build OTA tools if non-A/B is allowed
|
||||
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
updater_dep := $(built_ota_tools)
|
||||
endif
|
||||
|
||||
$(BUILT_TARGET_FILES_PACKAGE): $(updater_dep)
|
||||
|
||||
# If we are using recovery as boot, output recovery files to BOOT/.
|
||||
@@ -4610,7 +4616,7 @@ endif
|
||||
@# Extra contents of the OTA package
|
||||
$(hide) mkdir -p $(zip_root)/OTA
|
||||
$(hide) cp $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(zip_root)/OTA/
|
||||
ifneq ($(AB_OTA_UPDATER),true)
|
||||
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
ifneq ($(built_ota_tools),)
|
||||
$(hide) mkdir -p $(zip_root)/OTA/bin
|
||||
$(hide) cp $(PRIVATE_OTA_TOOLS) $(zip_root)/OTA/bin/
|
||||
@@ -4647,7 +4653,7 @@ ifneq ($(PRODUCT_ODM_BASE_FS_PATH),)
|
||||
$(hide) cp $(PRODUCT_ODM_BASE_FS_PATH) \
|
||||
$(zip_root)/META/$(notdir $(PRODUCT_ODM_BASE_FS_PATH))
|
||||
endif
|
||||
ifneq ($(AB_OTA_UPDATER),true)
|
||||
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
||||
$(hide) PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH MKBOOTIMG=$(MKBOOTIMG) \
|
||||
$(MAKE_RECOVERY_PATCH) $(zip_root) $(zip_root)
|
||||
|
@@ -550,13 +550,31 @@ endif
|
||||
.KATI_READONLY := BUILDING_ODM_IMAGE
|
||||
|
||||
###########################################
|
||||
# Ensure that only TARGET_RECOVERY_UPDATER_LIBS *or* AB_OTA_UPDATER is set.
|
||||
# Ensure consistency among TARGET_RECOVERY_UPDATER_LIBS, AB_OTA_UPDATER, and PRODUCT_OTA_FORCE_NON_AB_PACKAGE.
|
||||
TARGET_RECOVERY_UPDATER_LIBS ?=
|
||||
AB_OTA_UPDATER ?=
|
||||
.KATI_READONLY := TARGET_RECOVERY_UPDATER_LIBS AB_OTA_UPDATER
|
||||
ifeq ($(AB_OTA_UPDATER),true)
|
||||
|
||||
# Ensure that if PRODUCT_OTA_FORCE_NON_AB_PACKAGE == true, then AB_OTA_UPDATER must be true
|
||||
ifeq ($(PRODUCT_OTA_FORCE_NON_AB_PACKAGE),true)
|
||||
ifneq ($(AB_OTA_UPDATER),true)
|
||||
$(error AB_OTA_UPDATER must be set to true when PRODUCT_OTA_FORCE_NON_AB_PACKAGE is true)
|
||||
endif
|
||||
endif
|
||||
|
||||
# In some configurations, A/B and non-A/B may coexist. Check TARGET_OTA_ALLOW_NON_AB
|
||||
# to see if non-A/B is supported.
|
||||
TARGET_OTA_ALLOW_NON_AB := false
|
||||
ifneq ($(AB_OTA_UPDATER),true)
|
||||
TARGET_OTA_ALLOW_NON_AB := true
|
||||
else ifeq ($(PRODUCT_OTA_FORCE_NON_AB_PACKAGE),true)
|
||||
TARGET_OTA_ALLOW_NON_AB := true
|
||||
endif
|
||||
.KATI_READONLY := TARGET_OTA_ALLOW_NON_AB
|
||||
|
||||
ifneq ($(TARGET_OTA_ALLOW_NON_AB),true)
|
||||
ifneq ($(strip $(TARGET_RECOVERY_UPDATER_LIBS)),)
|
||||
$(error Do not use TARGET_RECOVERY_UPDATER_LIBS when using AB_OTA_UPDATER)
|
||||
$(error Do not use TARGET_RECOVERY_UPDATER_LIBS when using TARGET_OTA_ALLOW_NON_AB)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@@ -393,6 +393,13 @@ _product_single_value_vars += PRODUCT_VIRTUAL_AB_OTA
|
||||
# If set, device retrofits virtual A/B.
|
||||
_product_single_value_vars += PRODUCT_VIRTUAL_AB_OTA_RETROFIT
|
||||
|
||||
# If set, forcefully generate a non-A/B update package.
|
||||
# Note: A device configuration should inherit from virtual_ab_ota_plus_non_ab.mk
|
||||
# instead of setting this variable directly.
|
||||
# Note: Use TARGET_OTA_ALLOW_NON_AB in the build system because
|
||||
# TARGET_OTA_ALLOW_NON_AB takes the value of AB_OTA_UPDATER into account.
|
||||
_product_single_value_vars += PRODUCT_OTA_FORCE_NON_AB_PACKAGE
|
||||
|
||||
# If set, Java module in product partition cannot use hidden APIs.
|
||||
_product_single_value_vars += PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE
|
||||
|
||||
|
Reference in New Issue
Block a user