diff --git a/services/src/sensor_service.cpp b/services/src/sensor_service.cpp index 9f90ffd88dd3eabb6d147a068c9c46538342121f..5112ba645ba245335cb837be34387e2cefb77dca 100644 --- a/services/src/sensor_service.cpp +++ b/services/src/sensor_service.cpp @@ -21,6 +21,7 @@ #include #include "hisysevent.h" +#include "ipc_skeleton.h" #include "iservice_registry.h" #include "permission_util.h" #include "securec.h" @@ -191,7 +192,7 @@ void SensorService::ReportOnChangeData(int32_t sensorId) SEN_HILOGE("There is no data to be reported"); return; } - sptr channel = clientInfo_.GetSensorChannelByPid(GetCallingPid()); + sptr channel = clientInfo_.GetSensorChannelByPid(IPCSkeleton::GetCallingRealPid()); CHKPV(channel); auto sendRet = channel->SendData(&sensorData, sizeof(sensorData)); if (sendRet != ERR_OK) { @@ -202,17 +203,18 @@ void SensorService::ReportOnChangeData(int32_t sensorId) ErrCode SensorService::SaveSubscriber(int32_t sensorId, int64_t samplingPeriodNs, int64_t maxReportDelayNs) { - if (!sensorManager_.SaveSubscriber(sensorId, GetCallingPid(), samplingPeriodNs, maxReportDelayNs)) { + if (!sensorManager_.SaveSubscriber(sensorId, + IPCSkeleton::GetCallingRealPid(), samplingPeriodNs, maxReportDelayNs)) { SEN_HILOGE("SaveSubscriber failed"); return UPDATE_SENSOR_INFO_ERR; } #ifdef HDF_DRIVERS_INTERFACE_SENSOR sensorManager_.StartDataReportThread(); - SensorBasicInfo sensorInfo = clientInfo_.GetCurPidSensorInfo(sensorId, GetCallingPid()); + SensorBasicInfo sensorInfo = clientInfo_.GetCurPidSensorInfo(sensorId, IPCSkeleton::GetCallingRealPid()); if (!sensorManager_.SetBestSensorParams(sensorId, sensorInfo.GetSamplingPeriodNs(), sensorInfo.GetMaxReportDelayNs())) { SEN_HILOGE("SetBestSensorParams failed"); - clientInfo_.RemoveSubscriber(sensorId, GetCallingPid()); + clientInfo_.RemoveSubscriber(sensorId, IPCSkeleton::GetCallingRealPid()); return SET_SENSOR_CONFIG_ERR; } #endif // HDF_DRIVERS_INTERFACE_SENSOR @@ -238,7 +240,7 @@ ErrCode SensorService::EnableSensor(int32_t sensorId, int64_t samplingPeriodNs, SEN_HILOGE("sensorId is invalid or maxReportDelayNs exceeded the maximum value"); return ERR_NO_INIT; } - int32_t pid = GetCallingPid(); + int32_t pid = IPCSkeleton::GetCallingRealPid(); std::lock_guard serviceLock(serviceLock_); if (clientInfo_.GetSensorState(sensorId)) { SEN_HILOGW("Sensor has been enabled already"); @@ -260,14 +262,14 @@ ErrCode SensorService::EnableSensor(int32_t sensorId, int64_t samplingPeriodNs, auto ret = SaveSubscriber(sensorId, samplingPeriodNs, maxReportDelayNs); if (ret != ERR_OK) { SEN_HILOGE("SaveSubscriber failed"); - clientInfo_.RemoveSubscriber(sensorId, GetCallingPid()); + clientInfo_.RemoveSubscriber(sensorId, IPCSkeleton::GetCallingRealPid()); return ret; } #ifdef HDF_DRIVERS_INTERFACE_SENSOR ret = sensorHdiConnection_.EnableSensor(sensorId); if (ret != ERR_OK) { SEN_HILOGE("EnableSensor failed"); - clientInfo_.RemoveSubscriber(sensorId, GetCallingPid()); + clientInfo_.RemoveSubscriber(sensorId, IPCSkeleton::GetCallingRealPid()); return ENABLE_SENSOR_ERR; } #endif // HDF_DRIVERS_INTERFACE_SENSOR @@ -313,7 +315,7 @@ ErrCode SensorService::DisableSensor(int32_t sensorId, int32_t pid) ErrCode SensorService::DisableSensor(int32_t sensorId) { CALL_LOG_ENTER; - return DisableSensor(sensorId, GetCallingPid()); + return DisableSensor(sensorId, IPCSkeleton::GetCallingRealPid()); } std::vector SensorService::GetSensorList() @@ -337,7 +339,7 @@ ErrCode SensorService::TransferDataChannel(const sptr &s const sptr &sensorClient) { CHKPR(sensorBasicDataChannel, ERR_NO_INIT); - auto pid = GetCallingPid(); + auto pid = IPCSkeleton::GetCallingRealPid(); auto uid = GetCallingUid(); auto callerToken = GetCallingTokenID(); if (!clientInfo_.UpdateAppThreadInfo(pid, uid, callerToken)) { @@ -356,7 +358,7 @@ ErrCode SensorService::TransferDataChannel(const sptr &s ErrCode SensorService::DestroySensorChannel(sptr sensorClient) { CALL_LOG_ENTER; - const int32_t clientPid = GetCallingPid(); + const int32_t clientPid = IPCSkeleton::GetCallingRealPid(); if (clientPid < 0) { SEN_HILOGE("clientPid is invalid, clientPid:%{public}d", clientPid); return CLIENT_PID_INVALID_ERR; @@ -487,14 +489,14 @@ ErrCode SensorService::CreateSocketChannel(sptr sensorClient, int CALL_LOG_ENTER; CHKPR(sensorClient, INVALID_POINTER); int32_t serverFd = -1; - int32_t ret = AddSocketPairInfo(GetCallingUid(), GetCallingPid(), + int32_t ret = AddSocketPairInfo(GetCallingUid(), IPCSkeleton::GetCallingRealPid(), AccessTokenKit::GetTokenTypeFlag(GetCallingTokenID()), serverFd, std::ref(clientFd)); if (ret != ERR_OK) { SEN_HILOGE("Add socket pair info failed, ret:%{public}d", ret); return ret; } - RegisterClientDeathRecipient(sensorClient, GetCallingPid()); + RegisterClientDeathRecipient(sensorClient, IPCSkeleton::GetCallingRealPid()); return ERR_OK; } @@ -502,7 +504,7 @@ ErrCode SensorService::DestroySocketChannel(sptr sensorClient) { CALL_LOG_ENTER; CHKPR(sensorClient, INVALID_POINTER); - DelSession(GetCallingPid()); + DelSession(IPCSkeleton::GetCallingRealPid()); UnregisterClientDeathRecipient(sensorClient); return ERR_OK; } @@ -511,14 +513,14 @@ ErrCode SensorService::EnableActiveInfoCB() { CALL_LOG_ENTER; isReportActiveInfo_ = true; - return clientInfo_.AddActiveInfoCBPid(GetCallingPid()); + return clientInfo_.AddActiveInfoCBPid(IPCSkeleton::GetCallingRealPid()); } ErrCode SensorService::DisableActiveInfoCB() { CALL_LOG_ENTER; isReportActiveInfo_ = false; - return clientInfo_.DelActiveInfoCBPid(GetCallingPid()); + return clientInfo_.DelActiveInfoCBPid(IPCSkeleton::GetCallingRealPid()); } ErrCode SensorService::ResetSensors()