diff --git a/services/sensor/src/client_info.cpp b/services/sensor/src/client_info.cpp index 607ea6887c39001a050063f4fcd31e05dc2aac72..0c0b78b66cbc6d7acfc5203446d7262b94a9db27 100644 --- a/services/sensor/src/client_info.cpp +++ b/services/sensor/src/client_info.cpp @@ -20,6 +20,7 @@ #include "permission_util.h" #include "securec.h" #include "sensor_hdi_connection.h" +#include "sensor_manager.h" #include "sensors_errors.h" #include "sensors_log_domain.h" @@ -574,14 +575,17 @@ void ClientInfo::GetSensorChannelInfo(std::vector &channelInf std::lock_guard clientLock(clientMutex_); for (const auto &sensorIt : clientMap_) { for (const auto &pidIt : sensorIt.second) { - SensorChannelInfo channel; - int32_t uid = GetUidByPid(pidIt.first); + int32_t pid = pidIt.first; + int32_t uid = GetUidByPid(pid); if (uid == INVALID_UID) { + SEN_HILOGW("uid is invalid, uid:%{public}d", uid); continue; } + SensorChannelInfo channel; channel.SetUid(uid); - std::string packageName(""); channel.SetSensorId(sensorIt.first); + std::string packageName; + SensorManager::GetInstance().GetPackageName(GetTokenIdByPid(pid), packageName); channel.SetPackageName(packageName); int64_t samplingPeriodNs = pidIt.second.GetSamplingPeriodNs(); int64_t maxReportDelayNs = pidIt.second.GetMaxReportDelayNs(); diff --git a/services/sensor/src/sensor_dump.cpp b/services/sensor/src/sensor_dump.cpp index a06006c4ffa09b072f7a441050ebe3d762808f73..a332f46dd7561e0a54a8c0753c0ac20cfc9084c6 100644 --- a/services/sensor/src/sensor_dump.cpp +++ b/services/sensor/src/sensor_dump.cpp @@ -143,16 +143,11 @@ bool SensorDump::DumpSensorChannel(int32_t fd, ClientInfo &clientInfo, const std clientInfo.GetSensorChannelInfo(channelInfo); for (const auto &channel : channelInfo) { auto sensorId = channel.GetSensorId(); - std::string cmds(""); - auto cmdList = channel.GetCmdType(); - for (auto cmd : cmdList) { - cmds += (std::to_string(cmd) + " "); - } dprintf(fd, "uid:%d | packageName:%s | sensorId:%8u | sensorType:%s | samplingPeriodNs:%d " - "| fifoCount:%u | cmdType:%s\n", + "| fifoCount:%u\n", channel.GetUid(), channel.GetPackageName().c_str(), sensorId, sensorMap_[sensorId].c_str(), - int32_t { channel.GetSamplingPeriodNs() }, channel.GetFifoCount(), cmds.c_str()); + int32_t { channel.GetSamplingPeriodNs() }, channel.GetFifoCount()); } return true; } @@ -169,7 +164,8 @@ bool SensorDump::DumpOpeningSensor(int32_t fd, const std::vector &sensor for (const auto &sensor : sensors) { uint32_t sensorId = sensor.GetSensorId(); if (clientInfo.GetSensorState(sensorId)) { - dprintf(fd, "sensorId: %8u | sensorType: %s\n", sensorId, sensorMap_[sensorId].c_str()); + dprintf(fd, "sensorId: %8u | sensorType: %s | channelSize: %d\n", + sensorId, sensorMap_[sensorId].c_str(), clientInfo.GetSensorChannel(sensorId).size()); } } return true; diff --git a/services/sensor/src/sensor_manager.cpp b/services/sensor/src/sensor_manager.cpp index 3772457c44920b6e50772f04df5e2987255cde94..c8a0ba941f1b58cc91b38a655221f43095b7938a 100644 --- a/services/sensor/src/sensor_manager.cpp +++ b/services/sensor/src/sensor_manager.cpp @@ -181,12 +181,31 @@ ErrCode SensorManager::AfterDisableSensor(uint32_t sensorId) void SensorManager::GetPackageName(AccessTokenID tokenId, std::string &packageName) { CALL_LOG_ENTER; - HapTokenInfo hapInfo; - if (AccessTokenKit::GetHapTokenInfo(tokenId, hapInfo) != 0) { - SEN_HILOGE("get hap token info fail"); - return; + int32_t tokenType = AccessTokenKit::GetTokenTypeFlag(tokenId); + switch (tokenType) { + case ATokenTypeEnum::TOKEN_NATIVE: { + NativeTokenInfo tokenInfo; + if (AccessTokenKit::GetNativeTokenInfo(tokenId, tokenInfo) != 0) { + SEN_HILOGE("get native token info fail"); + return; + } + packageName = tokenInfo.processName; + break; + } + case ATokenTypeEnum::TOKEN_HAP: { + HapTokenInfo hapInfo; + if (AccessTokenKit::GetHapTokenInfo(tokenId, hapInfo) != 0) { + SEN_HILOGE("get hap token info fail"); + return; + } + packageName = hapInfo.bundleName; + break; + } + default: { + SEN_HILOGW("token type not match"); + break; + } } - packageName = hapInfo.bundleName; } } // namespace Sensors } // namespace OHOS diff --git a/services/sensor/src/sensor_service.cpp b/services/sensor/src/sensor_service.cpp index 93906a5220bf8d6189bc1551e3ff1af15f6f68f9..37e66cea1852cbbe63e97cd17c8d543bec5afbba 100644 --- a/services/sensor/src/sensor_service.cpp +++ b/services/sensor/src/sensor_service.cpp @@ -160,13 +160,11 @@ void SensorService::ReportSensorSysEvent(uint32_t sensorId, bool enable, int32_t int32_t uid = clientInfo_.GetUidByPid(pid); std::string message; if (enable) { - // define in LogPower.java, 500 stand for enable sensor message.append("uid : ").append(std::to_string(uid)).append(" pkgName : ").append(packageName) .append(" type : ").append(std::to_string(sensorId)); HiSysEvent::Write(HiSysEvent::Domain::SENSORS, "EnableSensor", HiSysEvent::EventType::STATISTIC, "LEVEL", logLevel, "TAG", "DUBAI_TAG_SENSOR_ENABLE", "MESSAGE", message); } else { - // define in LogPower.java, 501 stand for disable sensor message.append("uid : ").append(std::to_string(uid)).append(" pkgName : ").append(packageName) .append(" type : ").append(std::to_string(sensorId)); HiSysEvent::Write(HiSysEvent::Domain::SENSORS, "DisableSensor", HiSysEvent::EventType::STATISTIC,