From 53891ac2be47507d370868982c5de7ab9f51b6e0 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Mon, 13 Aug 2018 12:33:42 -0700 Subject: [PATCH] Allow OTA package to contain fake AVB version The system_matrix.xml in compatibility.zip can contain a fake AVB version as specified by BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE. This allows OTA to pass compatibility check when the AVB version is updated *during* the OTA. Bug: 112291283 Test: specify BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE and manual test Change-Id: I53c2de49ee68d6a3afc97201e759be344de6bdff --- compatibility_matrices/Android.mk | 3 ++- compatibility_matrices/clear_vars.mk | 1 + compatibility_matrices/compatibility_matrix.mk | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index bf2e447f88..ab262a07f1 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -128,13 +128,14 @@ LOCAL_MODULE := framework_compatibility_matrix.xml LOCAL_REQUIRED_MODULES := $(my_system_matrix_deps) include $(BUILD_PHONY_PACKAGE) -# Final Framework Compatibility Matrix +# Final Framework Compatibility Matrix for OTA include $(CLEAR_VARS) include $(LOCAL_PATH)/clear_vars.mk LOCAL_MODULE := verified_assembled_system_matrix.xml LOCAL_MODULE_PATH := $(PRODUCT_OUT) LOCAL_REQUIRED_MODULES := $(my_system_matrix_deps) LOCAL_GENERATED_SOURCES := $(call module-installed-files,$(LOCAL_REQUIRED_MODULES)) +LOCAL_ADD_VBMETA_VERSION_OVERRIDE := true ifdef BUILT_VENDOR_MANIFEST LOCAL_GEN_FILE_DEPENDENCIES += $(BUILT_VENDOR_MANIFEST) diff --git a/compatibility_matrices/clear_vars.mk b/compatibility_matrices/clear_vars.mk index 8fde301feb..0e53885af5 100644 --- a/compatibility_matrices/clear_vars.mk +++ b/compatibility_matrices/clear_vars.mk @@ -16,6 +16,7 @@ # Clear input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX LOCAL_ADD_VBMETA_VERSION := +LOCAL_ADD_VBMETA_VERSION_OVERRIDE := LOCAL_ASSEMBLE_VINTF_ENV_VARS := LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := diff --git a/compatibility_matrices/compatibility_matrix.mk b/compatibility_matrices/compatibility_matrix.mk index c5fe9770b8..2d1f7f4c91 100644 --- a/compatibility_matrices/compatibility_matrix.mk +++ b/compatibility_matrices/compatibility_matrix.mk @@ -77,6 +77,13 @@ endif # BOARD_AVB_ENABLE $(GEN): PRIVATE_ENV_VARS += FRAMEWORK_VBMETA_VERSION endif # LOCAL_ADD_VBMETA_VERSION +ifeq (true,$(strip $(LOCAL_ADD_VBMETA_VERSION_OVERRIDE))) +ifneq ($(BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE),) +$(GEN): FRAMEWORK_VBMETA_VERSION_OVERRIDE := $(BOARD_OTA_FRAMEWORK_VBMETA_VERSION_OVERRIDE) +$(GEN): PRIVATE_ENV_VARS += FRAMEWORK_VBMETA_VERSION_OVERRIDE +endif +endif + ifneq (,$(strip $(LOCAL_KERNEL_CONFIG_DATA_PATHS))) $(GEN): PRIVATE_KERNEL_CONFIG_DATA_PATHS := $(LOCAL_KERNEL_CONFIG_DATA_PATHS) $(GEN): $(foreach pair,$(PRIVATE_KERNEL_CONFIG_DATA_PATHS),\