Add device/fwk compatibility matrix to VintfObject.

For framework compatibility matrix, <sepolicy> sections
is injected in build time.

Test: libvintf_test
Test: adb shell vintf; matrices exist, compatible = true
Bug: 37321309
Bug: 36814503
Change-Id: I997b93456a261f0cdb85997ae88f4ac5a5f36ff3
Merged-In: I997b93456a261f0cdb85997ae88f4ac5a5f36ff3
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 1502011..9f144f4 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -684,8 +684,10 @@
         }
 
         if (object->mType == SchemaType::FRAMEWORK) {
+            // <avb> and <sepolicy> can be missing because it can be determined at build time, not
+            // hard-coded in the XML file.
             if (!parseChildren(root, matrixKernelConverter, &object->framework.mKernels) ||
-                !parseChild(root, sepolicyConverter, &object->framework.mSepolicy) ||
+                !parseOptionalChild(root, sepolicyConverter, {}, &object->framework.mSepolicy) ||
                 !parseOptionalChild(root, avbConverter, {}, &object->framework.mAvbMetaVersion)) {
                 return false;
             }