checkUnusedHals: use hidl metadata
Use libhidlmetadata to infer relationships between interfaces. For
example, if GNSS@2.0 is listed as "optional", but a manifest lists
GNSS@1.1 and 2.0 (because 2.0 inherits from 1.1), do not complain
about an unused 1.1 HAL.
Bug: 131717099
Test: drop GNSS 1.1 from matrix and `m check-vintf-all`
Change-Id: I1c0ef715bf64cacf99de590ed6627afa2b60f4b1
Merged-In: I1c0ef715bf64cacf99de590ed6627afa2b60f4b1
diff --git a/check_vintf.cpp b/check_vintf.cpp
index f2a239a..c2a20a1 100644
--- a/check_vintf.cpp
+++ b/check_vintf.cpp
@@ -26,6 +26,7 @@
#include <android-base/parseint.h>
#include <android-base/result.h>
#include <android-base/strings.h>
+#include <hidl/metadata.h>
#include <utils/Errors.h>
#include <vintf/KernelConfigParser.h>
#include <vintf/VintfObject.h>
@@ -380,7 +381,8 @@
}
auto targetFcm = deviceManifest->level();
if (*hasFcmExt || (targetFcm != Level::UNSPECIFIED && targetFcm >= Level::R)) {
- return vintfObject->checkUnusedHals();
+ auto hidlMetadata = HidlInterfaceMetadata::all();
+ return vintfObject->checkUnusedHals(hidlMetadata);
}
LOG(INFO) << "Skip checking unused HALs.";
return {};