Improve Sensor Service's dumpsys when restricted
Update the sensor service dumpsys to include restricted as a possible
operating mode for individual Sensor Event Connections. Do not print
sensors as active if all Sensor Event Connections requesting the
sensor are restricted.
Bug: 129007172
Test: Verified sensors only requested by restricted connections are
not displayed as active in 'dumpsys sensorservice'
Test: Verified sensors that are part of a white listed sensor
connection are displayed in 'dumpsys sensorservice' when Sensor
Service is in restricted mode.
Test: Verified sensor event connections that are not white listed are
marked as RESTRICTED when sensor service is in restricted mode
and return to NORMAL when sensor service is returned to normal
mode.
Change-Id: I3b12d6f802dbaddf682fa76af7fda5f9c3e5e870
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 189ae36..a6ed75f 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -359,7 +359,7 @@
for (const auto & s : mSensorList) {
int32_t handle = s.handle;
const Info& info = mActivationCount.valueFor(handle);
- if (info.batchParams.isEmpty()) continue;
+ if (info.numActiveClients() == 0) continue;
result.appendFormat("0x%08x) active-count = %zu; ", handle, info.batchParams.size());
@@ -730,6 +730,15 @@
return mDisabledClients.indexOf(ident) >= 0;
}
+bool SensorDevice::isSensorActive(int handle) const {
+ Mutex::Autolock _l(mLock);
+ ssize_t activationIndex = mActivationCount.indexOfKey(handle);
+ if (activationIndex < 0) {
+ return false;
+ }
+ return mActivationCount.valueAt(activationIndex).numActiveClients() > 0;
+}
+
void SensorDevice::enableAllSensors() {
if (mSensors == nullptr) return;
Mutex::Autolock _l(mLock);