ManifestHal: fix operator==

operator== doesn't compare some fields.
Test: libvintf_test
Test: vintf_object_test
Bug: 73556059

Change-Id: Ic0da5ac3d7ed5068fc6af9cada1a9baa58fd41a2
diff --git a/ManifestHal.cpp b/ManifestHal.cpp
index aa9d358..7d687fc 100644
--- a/ManifestHal.cpp
+++ b/ManifestHal.cpp
@@ -40,7 +40,9 @@
         return false;
     if (versions != other.versions)
         return false;
-    // do not compare impl
+    if (!(transportArch == other.transportArch)) return false;
+    if (interfaces != other.interfaces) return false;
+    if (isOverride() != other.isOverride()) return false;
     return true;
 }
 
diff --git a/include/vintf/TransportArch.h b/include/vintf/TransportArch.h
index f09b6f0..1bd6604 100644
--- a/include/vintf/TransportArch.h
+++ b/include/vintf/TransportArch.h
@@ -28,7 +28,11 @@
     Transport transport = Transport::EMPTY;
     Arch arch = Arch::ARCH_EMPTY;
 
-private:
+    inline bool operator==(const TransportArch& other) const {
+        return transport == other.transport && arch == other.arch;
+    }
+
+   private:
     friend struct TransportArchConverter;
     friend struct ManifestHalConverter;
     friend struct ManifestHal;