From 66e555c8c7397991838cdd0d5d711d47288cf977 Mon Sep 17 00:00:00 2001 From: yangbill Date: Mon, 29 Jul 2024 03:37:12 +0000 Subject: [PATCH] Support BUILD_FRAMEWORK_COMPATIBILITY_MATRIX for soong For building framework_compatibility_matrix.device.xml it will use matrix file path from DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE, and for product_compatibility_matrix.xml it will use matrix file path from DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE. This CL import those value from make to soong and will be used in hardware/interfaces/compatibility_matrices/. Also add vintf.vintfCompatibilityMatrixRule to the white list for using custom make rule. Bug: 352234038 Bug: 344445679 Test: m product_compatibility_matrix.xml Change-Id: Ib7042ee2d771bd47a12f0565014b4006da678ddb --- android/androidmk.go | 1 + android/config.go | 16 ++++++++++++++++ android/variable.go | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/android/androidmk.go b/android/androidmk.go index 9699ce5b8..14f8bbfd4 100644 --- a/android/androidmk.go +++ b/android/androidmk.go @@ -907,6 +907,7 @@ func translateAndroidModule(ctx SingletonContext, w io.Writer, moduleInfoJSONs * case "*phony.PhonyRule": // writes phony deps and acts like `.PHONY` case "*selinux.selinuxContextsModule": // license properties written case "*sysprop.syspropLibrary": // license properties written + case "*vintf.vintfCompatibilityMatrixRule": // use case like phony default: if !ctx.Config().IsEnvFalse("ANDROID_REQUIRE_LICENSES") { return fmt.Errorf("custom make rules not allowed for %q (%q) module %q", ctx.ModuleType(mod), reflect.TypeOf(mod), ctx.ModuleName(mod)) diff --git a/android/config.go b/android/config.go index 40a73d6e7..15595dd85 100644 --- a/android/config.go +++ b/android/config.go @@ -2089,3 +2089,19 @@ func (c *config) SystemPropFiles(ctx PathContext) Paths { func (c *config) EnableUffdGc() string { return String(c.productVariables.EnableUffdGc) } + +func (c *config) DeviceFrameworkCompatibilityMatrixFile() []string { + return c.productVariables.DeviceFrameworkCompatibilityMatrixFile +} + +func (c *config) DeviceProductCompatibilityMatrixFile() []string { + return c.productVariables.DeviceProductCompatibilityMatrixFile +} + +func (c *config) BoardAvbEnable() bool { + return Bool(c.productVariables.BoardAvbEnable) +} + +func (c *config) BoardAvbSystemAddHashtreeFooterArgs() []string { + return c.productVariables.BoardAvbSystemAddHashtreeFooterArgs +} diff --git a/android/variable.go b/android/variable.go index a715e0eb0..97aa80945 100644 --- a/android/variable.go +++ b/android/variable.go @@ -511,6 +511,11 @@ type ProductVariables struct { SystemPropFiles []string `json:",omitempty"` EnableUffdGc *string `json:",omitempty"` + + BoardAvbEnable *bool `json:",omitempty"` + BoardAvbSystemAddHashtreeFooterArgs []string `json:",omitempty"` + DeviceFrameworkCompatibilityMatrixFile []string `json:",omitempty"` + DeviceProductCompatibilityMatrixFile []string `json:",omitempty"` } type PartitionQualifiedVariablesType struct {