sensor: Skip additional permission request checks

* Some legacy Samsung HALs supporting BODY_SENSOR types are
  incompatible with the new permission checks added in M.
  Extend the NO_SENSOR_PERMISSION_CHECK flags to cover more
  of the actual checks.

Change-Id: Id2b9b57d8151b0998d9233e0a6541e8c88e06af7
This commit is contained in:
Matt Filetto 2015-12-20 20:22:04 -08:00 committed by Ethan Chen
parent cbd3e07921
commit b17c928090
1 changed files with 4 additions and 0 deletions

View File

@ -118,9 +118,11 @@ Sensor::Sensor(struct sensor_t const* hwSensor, int halVersion)
break; break;
case SENSOR_TYPE_HEART_RATE: { case SENSOR_TYPE_HEART_RATE: {
mStringType = SENSOR_STRING_TYPE_HEART_RATE; mStringType = SENSOR_STRING_TYPE_HEART_RATE;
#ifndef NO_SENSOR_PERMISSION_CHECK
mRequiredPermission = SENSOR_PERMISSION_BODY_SENSORS; mRequiredPermission = SENSOR_PERMISSION_BODY_SENSORS;
AppOpsManager appOps; AppOpsManager appOps;
mRequiredAppOp = appOps.permissionToOpCode(String16(SENSOR_PERMISSION_BODY_SENSORS)); mRequiredAppOp = appOps.permissionToOpCode(String16(SENSOR_PERMISSION_BODY_SENSORS));
#endif
mFlags |= SENSOR_FLAG_ON_CHANGE_MODE; mFlags |= SENSOR_FLAG_ON_CHANGE_MODE;
} break; } break;
case SENSOR_TYPE_LIGHT: case SENSOR_TYPE_LIGHT:
@ -221,6 +223,7 @@ Sensor::Sensor(struct sensor_t const* hwSensor, int halVersion)
if (halVersion > SENSORS_DEVICE_API_VERSION_1_0 && hwSensor->stringType) { if (halVersion > SENSORS_DEVICE_API_VERSION_1_0 && hwSensor->stringType) {
mStringType = hwSensor->stringType; mStringType = hwSensor->stringType;
} }
#ifndef NO_SENSOR_PERMISSION_CHECK
if (halVersion > SENSORS_DEVICE_API_VERSION_1_0 && hwSensor->requiredPermission) { if (halVersion > SENSORS_DEVICE_API_VERSION_1_0 && hwSensor->requiredPermission) {
mRequiredPermission = hwSensor->requiredPermission; mRequiredPermission = hwSensor->requiredPermission;
if (!strcmp(mRequiredPermission, SENSOR_PERMISSION_BODY_SENSORS)) { if (!strcmp(mRequiredPermission, SENSOR_PERMISSION_BODY_SENSORS)) {
@ -228,6 +231,7 @@ Sensor::Sensor(struct sensor_t const* hwSensor, int halVersion)
mRequiredAppOp = appOps.permissionToOpCode(String16(SENSOR_PERMISSION_BODY_SENSORS)); mRequiredAppOp = appOps.permissionToOpCode(String16(SENSOR_PERMISSION_BODY_SENSORS));
} }
} }
#endif
if (halVersion >= SENSORS_DEVICE_API_VERSION_1_3) { if (halVersion >= SENSORS_DEVICE_API_VERSION_1_3) {
mFlags = static_cast<uint32_t>(hwSensor->flags); mFlags = static_cast<uint32_t>(hwSensor->flags);