Fix device/google/trout for compiling against musl am: 0e33c98e48

Original change: https://android-review.googlesource.com/c/device/google/trout/+/1826117

Change-Id: Ibaf8312f006bf30b2604648ee9220c1bacfbfe5a
diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/dumpstate_grpc_server.service b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/dumpstate_grpc_server.service
new file mode 100644
index 0000000..72289fb
--- /dev/null
+++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/dumpstate_grpc_server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Android Dumpstate GRPC Server
+
+Wants=coqos-virtio-vsock.service
+After=coqos-virtio-vsock.service
+
+[Service]
+ExecStart=/usr/bin/dumpstate_grpc_server -server_addr vsock:2:9310
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/dumpstate_grpc_server.service b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/dumpstate_grpc_server.service
new file mode 120000
index 0000000..e2a37ae
--- /dev/null
+++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/dumpstate_grpc_server.service
@@ -0,0 +1 @@
+/etc/systemd/system/dumpstate_grpc_server.service
\ No newline at end of file
diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/vehicle_hal_grpc_server.service b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/vehicle_hal_grpc_server.service
new file mode 120000
index 0000000..533ed97
--- /dev/null
+++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/multi-user.target.wants/vehicle_hal_grpc_server.service
@@ -0,0 +1 @@
+/etc/systemd/system/vehicle_hal_grpc_server.service
\ No newline at end of file
diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/vehicle_hal_grpc_server.service b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/vehicle_hal_grpc_server.service
new file mode 100644
index 0000000..64d950f
--- /dev/null
+++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/images/machine-image/sa81x5/google-overlay/etc/systemd/system/vehicle_hal_grpc_server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Android Vehicle HAL GRPC Server
+
+Wants=coqos-virtio-vsock.service
+After=coqos-virtio-vsock.service
+
+[Service]
+ExecStart=/usr/bin/vehicle_hal_grpc_server -server_cid 2 -server_port 9210 -power_state_file /tmp/power_state_marker -power_state_socket /tmp/power_state_socket
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hal/vehicle/2.0/Android.bp b/hal/vehicle/2.0/Android.bp
index e72a9ea..b4ba58b 100644
--- a/hal/vehicle/2.0/Android.bp
+++ b/hal/vehicle/2.0/Android.bp
@@ -148,7 +148,6 @@
     vendor: true,
     relative_install_path: "hw",
     srcs: [
-        "GrpcVehicleClient.cpp",
         "VirtualizedVehicleService.cpp",
         "WatchdogClient.cpp",
     ],
@@ -161,6 +160,7 @@
         "libgrpc++",
     ],
     static_libs: [
+        "android.hardware.automotive.vehicle@2.0-virtualization-client-lib",
         "android.hardware.automotive.utils.vsockinfo",
         "android.hardware.automotive.vehicle@2.0-manager-lib",
         "android.hardware.automotive.vehicle@2.0-default-impl-lib",
diff --git a/hal/vehicle/2.0/GarageModeServerSideHandler.cpp b/hal/vehicle/2.0/GarageModeServerSideHandler.cpp
index b19b1df..60c36bf 100644
--- a/hal/vehicle/2.0/GarageModeServerSideHandler.cpp
+++ b/hal/vehicle/2.0/GarageModeServerSideHandler.cpp
@@ -146,19 +146,20 @@
         return;
     }
 
-    int watchDescriptor = inotify_add_watch(inotifyFd, mPowerStateMarkerPath.c_str(), IN_MODIFY);
-    if (watchDescriptor < 0) {
-        LOG(ERROR) << __func__ << ": failed to watch file " << mPowerStateMarkerPath << " : "
-                   << strerror(errno);
-        return;
-    }
-
     alignas(alignof(struct inotify_event)) char inotifyEventBuffer[4096] = {0};
     [[maybe_unused]] struct inotify_event& inotifyEvent =
             *reinterpret_cast<struct inotify_event*>(inotifyEventBuffer);
 
     HandleNewPowerState();
     while (!mShuttingDownFlag.load()) {
+        int watchDescriptor =
+                inotify_add_watch(inotifyFd, mPowerStateMarkerPath.c_str(), IN_MODIFY);
+        if (watchDescriptor < 0) {
+            LOG(ERROR) << __func__ << ": failed to watch file " << mPowerStateMarkerPath << " : "
+                       << strerror(errno);
+            return;
+        }
+
         if (!WaitForReadWithTimeout(inotifyFd, kFileStatusCheckPeriod)) {
             continue;
         }