Loading services/sensorservice/SensorService.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ bool SensorService::sHmacGlobalKeyIsValid = false; std::map<String16, int> SensorService::sPackageTargetVersion; Mutex SensorService::sPackageTargetVersionLock; String16 SensorService::sSensorInterfaceDescriptorPrefix = String16("android.frameworks.sensorservice@"); String16("android.frameworks.sensorservice"); AppOpsManager SensorService::sAppOpsManager; std::atomic_uint64_t SensorService::curProxCallbackSeq(0); std::atomic_uint64_t SensorService::completedCallbackSeq(0); Loading Loading @@ -2295,10 +2295,12 @@ bool SensorService::hasPermissionForSensor(const Sensor& sensor) { } int SensorService::getTargetSdkVersion(const String16& opPackageName) { // Don't query the SDK version for the ISensorManager descriptor as it doesn't have one. This // descriptor tends to be used for VNDK clients, but can technically be set by anyone so don't // give it elevated privileges. if (opPackageName.startsWith(sSensorInterfaceDescriptorPrefix)) { // Don't query the SDK version for the ISensorManager descriptor as it // doesn't have one. This descriptor tends to be used for VNDK clients, but // can technically be set by anyone so don't give it elevated privileges. bool isVNDK = opPackageName.startsWith(sSensorInterfaceDescriptorPrefix) && opPackageName.contains(String16("@")); if (isVNDK) { return -1; } Loading services/sensorservice/aidl/SensorManager.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -188,8 +188,16 @@ ndk::ScopedAStatus SensorManagerAidl::getSensorList(std::vector<SensorInfo>* _ai } ::android::SensorManager& SensorManagerAidl::getInternalManager() { return ::android::SensorManager::getInstanceForPackage( String16(ISensorManager::descriptor)); int32_t version; ndk::ScopedAStatus status = getInterfaceVersion(&version); if (!status.isOk()) { LOG(ERROR) << "Failed to get interface version with error: " << status.getDescription(); version = -1; } String16 packageName = String16(ISensorManager::descriptor); packageName += String16("@") + String16(std::to_string(version).c_str()); return ::android::SensorManager::getInstanceForPackage(packageName); } /* One global looper for all event queues created from this SensorManager. */ Loading Loading
services/sensorservice/SensorService.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ bool SensorService::sHmacGlobalKeyIsValid = false; std::map<String16, int> SensorService::sPackageTargetVersion; Mutex SensorService::sPackageTargetVersionLock; String16 SensorService::sSensorInterfaceDescriptorPrefix = String16("android.frameworks.sensorservice@"); String16("android.frameworks.sensorservice"); AppOpsManager SensorService::sAppOpsManager; std::atomic_uint64_t SensorService::curProxCallbackSeq(0); std::atomic_uint64_t SensorService::completedCallbackSeq(0); Loading Loading @@ -2295,10 +2295,12 @@ bool SensorService::hasPermissionForSensor(const Sensor& sensor) { } int SensorService::getTargetSdkVersion(const String16& opPackageName) { // Don't query the SDK version for the ISensorManager descriptor as it doesn't have one. This // descriptor tends to be used for VNDK clients, but can technically be set by anyone so don't // give it elevated privileges. if (opPackageName.startsWith(sSensorInterfaceDescriptorPrefix)) { // Don't query the SDK version for the ISensorManager descriptor as it // doesn't have one. This descriptor tends to be used for VNDK clients, but // can technically be set by anyone so don't give it elevated privileges. bool isVNDK = opPackageName.startsWith(sSensorInterfaceDescriptorPrefix) && opPackageName.contains(String16("@")); if (isVNDK) { return -1; } Loading
services/sensorservice/aidl/SensorManager.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -188,8 +188,16 @@ ndk::ScopedAStatus SensorManagerAidl::getSensorList(std::vector<SensorInfo>* _ai } ::android::SensorManager& SensorManagerAidl::getInternalManager() { return ::android::SensorManager::getInstanceForPackage( String16(ISensorManager::descriptor)); int32_t version; ndk::ScopedAStatus status = getInterfaceVersion(&version); if (!status.isOk()) { LOG(ERROR) << "Failed to get interface version with error: " << status.getDescription(); version = -1; } String16 packageName = String16(ISensorManager::descriptor); packageName += String16("@") + String16(std::to_string(version).c_str()); return ::android::SensorManager::getInstanceForPackage(packageName); } /* One global looper for all event queues created from this SensorManager. */ Loading