From 29edf80f17830ec51e914bd544a189a69d1f7d21 Mon Sep 17 00:00:00 2001 From: Kyle Tso Date: Fri, 1 May 2020 21:54:30 +0800 Subject: [PATCH] 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 --- usb/Usb.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/usb/Usb.cpp b/usb/Usb.cpp index 19011a7..a727c89 100644 --- a/usb/Usb.cpp +++ b/usb/Usb.cpp @@ -49,6 +49,8 @@ volatile bool destroyThread; 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 *currentPortStatus_1_2); @@ -132,8 +134,11 @@ Status queryMoistureDetectionStatus(hidl_vec *currentPortStatus_1_2) Return 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 currentPortStatus_1_2;