From 889b1f7c0ce3ba567ee7696f01e1b36512c10f39 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 13 Mar 2019 12:27:07 -0700 Subject: [PATCH] Allow disabling building super partition for DAP devices Previously: if (DAP && !BUILD_SUPER) error; Now: if (BUILD_SUPER && !DAP) error; This allows DAP devices to disable building super partition when the OEM doesn't want to. The ability to build super partition shouldn't be a requirement of enabling DAP; rather, building super partition requires DAP to be enabled. To do this on a device, PRODUCT_BUILD_SUPER_PARTITION should be set to false explicitly. If it is unset, it will use the value of PRODUCT_USE_DYNAMIC_PARTITIONS. Bug: 127687287 Test: set PRODUCT_BUILD_SUPER_PARTITION to false and build dist Change-Id: I25f1866e61d73affb445c1aec042cf53aac93583 --- core/config.mk | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/core/config.mk b/core/config.mk index 0bc460eb31..cca62003de 100644 --- a/core/config.mk +++ b/core/config.mk @@ -836,17 +836,18 @@ ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) $(error BOARD_BUILD_SYSTEM_ROOT_IMAGE cannot be true for devices with dynamic partitions) endif - - requirements := \ - PRODUCT_USE_DYNAMIC_PARTITION_SIZE \ - PRODUCT_BUILD_SUPER_PARTITION \ - - $(foreach req,$(requirements),$(if $(filter false,$($(req))),\ - $(error PRODUCT_USE_DYNAMIC_PARTITIONS requires $(req) to be true))) - - requirements := + ifneq ($(PRODUCT_USE_DYNAMIC_PARTITION_SIZE),true) + $(error PRODUCT_USE_DYNAMIC_PARTITION_SIZE must be true for devices with dynamic partitions) + endif endif +ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) + ifneq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) + $(error Can only build super partition for devices with dynamic partitions) + endif +endif + + ifeq ($(PRODUCT_USE_DYNAMIC_PARTITION_SIZE),true) ifneq ($(BOARD_SYSTEMIMAGE_PARTITION_SIZE),) @@ -886,7 +887,7 @@ endif endif # PRODUCT_USE_DYNAMIC_PARTITION_SIZE -ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) +ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) # BOARD_SUPER_PARTITION_GROUPS defines a list of "updatable groups". Each updatable group is a # group of partitions that share the same pool of free spaces. @@ -897,12 +898,16 @@ ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) # - BOARD_{GROUP}_PARTITION_PARTITION_LIST: the list of partitions that belongs to this group. # If empty, no partitions belong to this group, and the sum of sizes is effectively 0. $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ - $(eval BOARD_$(group)_SIZE := $(strip $(BOARD_$(group)_SIZE))) \ - $(if $(BOARD_$(group)_SIZE),,$(error BOARD_$(group)_SIZE must not be empty)) \ - $(eval .KATI_READONLY := BOARD_$(group)_SIZE) \ $(eval BOARD_$(group)_PARTITION_LIST ?=) \ $(eval .KATI_READONLY := BOARD_$(group)_PARTITION_LIST) \ ) +ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) +$(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \ + $(eval BOARD_$(group)_SIZE := $(strip $(BOARD_$(group)_SIZE))) \ + $(if $(BOARD_$(group)_SIZE),,$(error BOARD_$(group)_SIZE must not be empty)) \ + $(eval .KATI_READONLY := BOARD_$(group)_SIZE) \ +) +endif # PRODUCT_BUILD_SUPER_PARTITION # BOARD_*_PARTITION_LIST: a list of the following tokens valid_super_partition_list := system vendor product product_services odm @@ -924,6 +929,10 @@ BOARD_SUPER_PARTITION_PARTITION_LIST := \ $(BOARD_$(group)_PARTITION_LIST)) .KATI_READONLY := BOARD_SUPER_PARTITION_PARTITION_LIST +endif # PRODUCT_USE_DYNAMIC_PARTITIONS + +ifeq ($(PRODUCT_BUILD_SUPER_PARTITION),true) + ifneq ($(BOARD_SUPER_PARTITION_SIZE),) ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS),true)