Rule to copy device manifest to device

The device manifest defines the collection of HAL interfaces exposed by
the vendor. Create a common rule so each target need not define their own.

Bug: 36810913
Test: Ran marlin build and inspected file was copied
Change-Id: I9f53796fdd85e706f91664d275aff6dbd785213f
diff --git a/target/board/Android.mk b/target/board/Android.mk
index f8ecc4e..6376156 100644
--- a/target/board/Android.mk
+++ b/target/board/Android.mk
@@ -2,6 +2,8 @@
 # Set up product-global definitions and include product-specific rules.
 #
 
+LOCAL_PATH := $(call my-dir)
+
 -include $(TARGET_DEVICE_DIR)/AndroidBoard.mk
 
 # Generate a file that contains various information about the
@@ -25,3 +27,25 @@
 else
 	$(hide) echo "board=$(TARGET_BOOTLOADER_BOARD_NAME)" > $@
 endif
+
+# Copy compatibility metadata to the device.
+
+ifdef DEVICE_MANIFEST_FILE
+include $(CLEAR_VARS)
+LOCAL_MODULE        := manifest.xml
+LOCAL_MODULE_CLASS  := ETC
+LOCAL_MODULE_PATH   := $(TARGET_OUT_VENDOR)
+LOCAL_PREBUILT_MODULE_FILE := $(DEVICE_MANIFEST_FILE)
+INSTALLED_VENDOR_MANIFEST := $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)
+include $(BUILD_PREBUILT)
+endif
+
+ifdef DEVICE_MATRIX_FILE
+include $(CLEAR_VARS)
+LOCAL_MODULE        := matrix.xml
+LOCAL_MODULE_CLASS  := ETC
+LOCAL_MODULE_PATH   := $(TARGET_OUT_VENDOR)
+LOCAL_PREBUILT_MODULE_FILE := $(DEVICE_MATRIX_FILE)
+INSTALLED_VENDOR_MATRIX := $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)
+include $(BUILD_PREBUILT)
+endif
diff --git a/target/product/embedded.mk b/target/product/embedded.mk
index 8115385..f5efe5d 100644
--- a/target/product/embedded.mk
+++ b/target/product/embedded.mk
@@ -85,6 +85,8 @@
     toybox \
     tzdatacheck \
     vndservicemanager \
+    matrix.xml \
+    manifest.xml \
 
 # SELinux packages
 PRODUCT_PACKAGES += \
@@ -119,5 +121,4 @@
     system/core/rootdir/etc/hosts:system/etc/hosts
 
 # Framework Manifest
-PRODUCT_COPY_FILES += \
-    system/libhidl/manifest.xml:system/manifest.xml
+PRODUCT_COPY_FILES += system/libhidl/manifest.xml:system/manifest.xml