Temporarily enable use pvmfw prebuilts as fallback
This change add a temporary method of delivering pvmfw for x86_64. If
pvmfw building is not available (effectively on target other then
aarch64) check for prebuilt and if available use it instead. The
prebuilt is provided using three new `PRODUCT_PVMFW_IMAGE_PREBUILT`,
`PRODUCT_PVMFW_BIN_PREBUILT` and `PRODUCT_PVMFW_EMBEDDED_AVBKEY_PREBUILT`,
make variables. One for providing the module with signed pvmfw image,
one for raw pvmfw binary and one for specifing the embedded avb key
present in the prebuilt image.
If `PRODUCT_PVMFW_EMBEDDED_AVBKEY_PREBUILT` is absent it's assumed that
prebuilt image has default AOSP key embedded in it.
Bug: 391159299
Test: m
Change-Id: If4dfb9099d000ac44cda2fd9ccd0892767b4f066
diff --git a/core/Makefile b/core/Makefile
index 5d82c21..cfe7a56 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -4464,6 +4464,25 @@
INTERNAL_PVMFW_EMBEDDED_AVBKEY := $(call module-target-built-files,pvmfw_embedded_key_pub_bin)
INTERNAL_PVMFW_SYMBOL := $(TARGET_OUT_EXECUTABLES_UNSTRIPPED)/pvmfw
+# If pvmfw target is not available and there is a prebuilt available use prebuilt
+# NOTE: This is only a temporary feature for x86_64 and is not meant to be supported for long.
+# TODO(b/391333413): Don't allow use of pvmfw prebuilts as soon as it is possible
+ifeq ($(INTERNAL_PVMFWIMAGE_FILES),)
+ifneq ($(PRODUCT_PVMFW_IMAGE_PREBUILT),)
+INTERNAL_PVMFWIMAGE_FILES := $(call module-target-built-files,$(PRODUCT_PVMFW_IMAGE_PREBUILT))
+INTERNAL_PVMFW_SYMBOL :=
+
+ifneq ($(PRODUCT_PVMFW_BIN_PREBUILT),)
+INSTALLED_PVMFW_BINARY_TARGET := $(call module-target-built-files,$(PRODUCT_PVMFW_BIN_PREBUILT))
+endif # PRODUCT_PVMFW_BIN_PREBUILT
+
+ifneq ($(PRODUCT_PVMFW_EMBEDDED_AVBKEY_PREBUILT),)
+INTERNAL_PVMFW_EMBEDDED_AVBKEY := $(call module-target-built-files,$(PRODUCT_PVMFW_EMBEDDED_AVBKEY_PREBUILT))
+endif # PRODUCT_PVMFW_EMBEDDED_AVBKEY_PREBUILT
+
+endif # PRODUCT_PVMFW_IMAGE_PREBUILT
+endif # INTERNAL_PVMFWIMAGE_FILES
+
$(call declare-1p-container,$(INSTALLED_PVMFWIMAGE_TARGET),)
$(call declare-container-license-deps,$(INSTALLED_PVMFWIMAGE_TARGET),$(INTERNAL_PVMFWIMAGE_FILES),$(PRODUCT_OUT)/:/)