From b20bb707e2c065698157ae23ac057993aadbd93e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 6 Oct 2024 09:06:48 -0400 Subject: [PATCH 1/6] sensorservice: Add support for ignoring broken sensors This allows those sensors to be replaced by SensorFusion when possible. Change-Id: I5509ee1f54fdf4838f6e3b109819a689f483cfc4 --- services/sensorservice/SensorDevice.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp index 9c4d1ace15..5a95096fdb 100644 --- a/services/sensorservice/SensorDevice.cpp +++ b/services/sensorservice/SensorDevice.cpp @@ -17,6 +17,7 @@ #include "SensorDevice.h" #include +#include #include #include #include @@ -32,6 +33,8 @@ #include #include #include +#include +#include #include #include "AidlSensorHalWrapper.h" @@ -86,10 +89,24 @@ void SensorDevice::initializeSensorList() { auto list = mHalWrapper->getSensorsList(); const size_t count = list.size(); + auto sensorFilter = base::GetProperty("persist.sys.phh.sensor_filter", ""); + mActivationCount.setCapacity(count); Info model; for (size_t i = 0; i < count; i++) { sensor_t sensor = list[i]; + std::string vendorNamePair = std::string(sensor.vendor) + ":" + std::string(sensor.name); + + std::istringstream iss(sensorFilter); + std::string item; + bool shouldIgnore = false; + while (std::getline(iss, item, ';')) { + if (item == vendorNamePair) { + shouldIgnore = true; + } + } + + if (shouldIgnore) continue; if (sensor.type < DEVICE_PRIVATE_BASE) { sensor.resolution = SensorDeviceUtils::resolutionForSensor(sensor); -- 2.48.1