Do not enable Moisture Detection if vendor prop is set

setprop vendor.usb.contaminantdisable true
disable contaminant detection.

Bug: 154985161
Test: setprop vendor.usb.contaminantdisable true
Change-Id: I2cfd5baab45074f2ca68216cb5d8b9790d711b75
(cherry picked from commit 21e7d5aec7e3e5b9b032b71a3153310376a46ae2)
[separated the commit into rc part and HAL part]
Signed-off-by: Kyle Tso <kyletso@google.com>
diff --git a/usb/Usb.cpp b/usb/Usb.cpp
index a608130..9244f16 100644
--- a/usb/Usb.cpp
+++ b/usb/Usb.cpp
@@ -49,6 +49,8 @@
 
 constexpr char kEnabledPath[] = "/sys/class/power_supply/usb/moisture_detection_enabled";
 constexpr char kDetectedPath[] = "/sys/class/power_supply/usb/moisture_detected";
+constexpr char kConsole[] = "init.svc.console";
+constexpr char kDisableContatminantDetection[] = "vendor.usb.contaminantdisable";
 
 void queryVersionHelper(android::hardware::usb::V1_2::implementation::Usb *usb,
                         hidl_vec<PortStatus> *currentPortStatus_1_2);
@@ -132,8 +134,11 @@
 
 Return<void> Usb::enableContaminantPresenceDetection(const hidl_string & /*portName*/,
                                                      bool enable) {
-    std::string status = GetProperty("init.svc.console", "");
-    if (status != "running")
+
+    std::string status = GetProperty(kConsole, "");
+    std::string disable = GetProperty(kDisableContatminantDetection, "");
+
+    if (status != "running" && disable != "true")
         writeFile(kEnabledPath, enable ? "1" : "0");
 
     hidl_vec<PortStatus> currentPortStatus_1_2;