forked from PeterGSI/patches
61 lines
2 KiB
Diff
61 lines
2 KiB
Diff
From ccd46a8a09baedf0fcad9648d75ac29468055a8f Mon Sep 17 00:00:00 2001
|
|
From: Peter Cai <peter@typeblog.net>
|
|
Date: Sun, 6 Oct 2024 09:06:48 -0400
|
|
Subject: [PATCH 1/3] 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 9c4d1ac..5a95096 100644
|
|
--- a/services/sensorservice/SensorDevice.cpp
|
|
+++ b/services/sensorservice/SensorDevice.cpp
|
|
@@ -17,6 +17,7 @@
|
|
#include "SensorDevice.h"
|
|
|
|
#include <android-base/logging.h>
|
|
+#include <android-base/properties.h>
|
|
#include <android/util/ProtoOutputStream.h>
|
|
#include <com_android_frameworks_sensorservice_flags.h>
|
|
#include <cutils/atomic.h>
|
|
@@ -32,6 +33,8 @@
|
|
#include <condition_variable>
|
|
#include <cstddef>
|
|
#include <mutex>
|
|
+#include <sstream>
|
|
+#include <string>
|
|
#include <thread>
|
|
|
|
#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.44.0
|
|
|