Use assemble_vintf to verify framework manifests.
Test: builds, and verify that system/manifest.xml is there.
Bug: 36681384 Runtime-Collectible information must be statically
collectible
Bug: 36983271 VINTF checked at build time
Change-Id: Ic3bb50211311fa423a2ad56bd2891cb57d7dc1a5
diff --git a/core/Makefile b/core/Makefile
index f9c1882..ba5be92 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -2288,12 +2288,12 @@
$(hide) $(call fs_config,$(zip_root)/SYSTEM_OTHER,system/) > $(zip_root)/META/system_other_filesystem_config.txt
endif
@# Metadata for compatibility verification.
- $(hide) cp $(INSTALLED_SYSTEM_MANIFEST) $(zip_root)/META/system_manifest.xml
-ifdef INSTALLED_VENDOR_MANIFEST
- $(hide) cp $(INSTALLED_VENDOR_MANIFEST) $(zip_root)/META/vendor_manifest.xml
+ $(hide) cp $(BUILT_SYSTEM_MANIFEST) $(zip_root)/META/system_manifest.xml
+ifdef BUILT_VENDOR_MANIFEST
+ $(hide) cp $(BUILT_VENDOR_MANIFEST) $(zip_root)/META/vendor_manifest.xml
endif
-ifdef INSTALLED_VENDOR_MATRIX
- $(hide) cp $(INSTALLED_VENDOR_MATRIX) $(zip_root)/META/vendor_matrix.xml
+ifdef BUILT_VENDOR_MATRIX
+ $(hide) cp $(BUILT_VENDOR_MATRIX) $(zip_root)/META/vendor_matrix.xml
endif
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \
diff --git a/core/config.mk b/core/config.mk
index 3bceffb..6d5feb3 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -686,7 +686,7 @@
DEFAULT_SYSTEM_DEV_CERTIFICATE := build/target/product/security/testkey
endif
-INSTALLED_SYSTEM_MANIFEST := $(PRODUCT_OUT)/system/manifest.xml
+FRAMEWORK_MANIFEST_FILE := system/libhidl/manifest.xml
# ###############################################################
# Set up final options.
diff --git a/target/board/Android.mk b/target/board/Android.mk
index efc3bf3..a24abbe 100644
--- a/target/board/Android.mk
+++ b/target/board/Android.mk
@@ -41,8 +41,8 @@
BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@
LOCAL_PREBUILT_MODULE_FILE := $(GEN)
-INSTALLED_VENDOR_MANIFEST := $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)
include $(BUILD_PREBUILT)
+BUILT_VENDOR_MANIFEST := $(LOCAL_BUILT_MODULE)
endif
ifdef DEVICE_MATRIX_FILE
@@ -51,6 +51,20 @@
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)
+BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE)
endif
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := system_manifest.xml
+LOCAL_MODULE_STEM := manifest.xml
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)
+
+GEN := $(local-generated-sources-dir)/manifest.xml
+$(GEN): $(FRAMEWORK_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf
+ BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@
+
+LOCAL_PREBUILT_MODULE_FILE := $(GEN)
+include $(BUILD_PREBUILT)
+BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE)
diff --git a/target/product/embedded.mk b/target/product/embedded.mk
index 2b7156b..b88a143 100644
--- a/target/product/embedded.mk
+++ b/target/product/embedded.mk
@@ -88,6 +88,7 @@
vndservicemanager \
matrix.xml \
manifest.xml \
+ system_manifest.xml \
# SELinux packages
PRODUCT_PACKAGES += \
@@ -122,6 +123,3 @@
system/core/rootdir/init.usb.configfs.rc:root/init.usb.configfs.rc \
system/core/rootdir/ueventd.rc:root/ueventd.rc \
system/core/rootdir/etc/hosts:system/etc/hosts
-
-# Framework Manifest
-PRODUCT_COPY_FILES += system/libhidl/manifest.xml:system/manifest.xml