VINTF: manifest.xml

manifests

1. 系统分四个manifest.xml文件

  • System Manifest (system/libhidl/vintfdata/Android.mk)
  • Product Manifest (system/libhidl/vintfdata/Android.mk)
  • Device Manifest (build/make/target/board/Android.mk)
  • ODM Manifest (build/make/target/board/Android.mk)

其中System Manifest是必然生成的,而对于Product Manifest等非必选的manifest,都需要定义相应的源文件(input file)才能用assemble_vintf生成manifest, 比如:

$ make product_manifest.xml

如果出现

FAILED: ninja: unknown target 'product_manifest.xml'

说明没有定义PRODUCT_MANIFEST_FILES, 那么此文件不需要生成。
如果定义了PRODUCT_MANIFEST_FILES, 那么文件生成方式如下:

pm:
assemble_vintf \
-i $(PRODUCT_MANIFEST_FILES) \
-o product_etc_vintf_manifest.xml

2. 图表总结

Manifest类型 Makefile Target 生成文件 .. input files (源文件)
System Manifest make system_manifest.xml /system/etc/vintf/manifest.xml DEVICE_FRAMEWORK_MANIFEST_FILE + system/libhidl/vintfdata/manifest.xml
Product Manifest make product_manifest.xml /product/etc/vintf/manifest.xml PRODUCT_MANIFEST_FILES
Device Manifest make device_manifest.xml /vendor/etc/vintf/manifest.xml DEVICE_MANIFEST_FILE
ODM Manifest make odm_manifest.xml /odm/etc/vintf/manifest.xml ODM_MANIFEST_FILES