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;