diff --git a/services/privacymanager/BUILD.gn b/services/privacymanager/BUILD.gn index 7b6242978f6c6bc58e385a39a10f611557447742..fa3f66446b6446285e2f1dd2a577dd89125c472f 100644 --- a/services/privacymanager/BUILD.gn +++ b/services/privacymanager/BUILD.gn @@ -250,5 +250,11 @@ if (is_standard_system && ability_base_enable == true) { include_dirs += [ "${access_token_path}/services/common/ability_manager/include" ] } + + if (hiviewdfx_hitrace_native_enable == true) { + cflags_cc += [ "-DHITRACE_NATIVE_ENABLE" ] + + external_deps += [ "hitrace:hitrace_meter" ] + } } } diff --git a/services/privacymanager/src/record/permission_record_manager.cpp b/services/privacymanager/src/record/permission_record_manager.cpp index cf616549f2b08e995cd16e9f5fc8eb565493bea4..0e0fcb2c14932284ce11866a9e42432969f7fa7d 100644 --- a/services/privacymanager/src/record/permission_record_manager.cpp +++ b/services/privacymanager/src/record/permission_record_manager.cpp @@ -1466,7 +1466,7 @@ bool PermissionRecordManager::IsAllowedUsingCamera(AccessTokenID tokenId, int32_ // allow foregound application or background application with CAMERA_BACKGROUND permission use camera int32_t status = GetAppStatus(tokenId, pid); - LOGI(PRI_DOMAIN, PRI_TAG, "Id %{public}d, appStatus %{public}d(1-foreground 2-background).", tokenId, status); + LOGI(PRI_DOMAIN, PRI_TAG, "Id %{public}d, pid %{public}d, status %{public}d(1-fore 2-back).", tokenId, pid, status); if (status == ActiveChangeType::PERM_ACTIVE_IN_FOREGROUND) { return true; } @@ -1477,7 +1477,7 @@ bool PermissionRecordManager::IsAllowedUsingCamera(AccessTokenID tokenId, int32_ bool PermissionRecordManager::IsAllowedUsingMicrophone(AccessTokenID tokenId, int32_t pid) { int32_t status = GetAppStatus(tokenId, pid); - LOGI(PRI_DOMAIN, PRI_TAG, "Id %{public}d, status is %{public}d(1-foreground 2-background).", tokenId, status); + LOGI(PRI_DOMAIN, PRI_TAG, "Id %{public}d, pid %{public}d, status %{public}d(1-fore 2-back).", tokenId, pid, status); if (status == ActiveChangeType::PERM_ACTIVE_IN_FOREGROUND) { return true; } diff --git a/services/privacymanager/src/service/privacy_manager_service.cpp b/services/privacymanager/src/service/privacy_manager_service.cpp index 23da941bae0fd2aa67d894023ecb11317aa674b1..898eca7c0dfb41ada739c2da3c912d5a7b865e34 100644 --- a/services/privacymanager/src/service/privacy_manager_service.cpp +++ b/services/privacymanager/src/service/privacy_manager_service.cpp @@ -37,6 +37,11 @@ #include "string_ex.h" #include "tokenid_kit.h" +#ifdef HITRACE_NATIVE_ENABLE +#include "hitrace_meter.h" +#define PRIVACY_SYNC_TRACE HITRACE_METER_NAME(HITRACE_TAG_ACCESS_CONTROL, __PRETTY_FUNCTION__) +#endif + namespace OHOS { namespace Security { namespace AccessToken { @@ -90,6 +95,11 @@ void PrivacyManagerService::OnStop() int32_t PrivacyManagerService::AddPermissionUsedRecord(const AddPermParamInfoParcel& infoParcel) { +#ifdef HITRACE_NATIVE_ENABLE + PRIVACY_SYNC_TRACE; +#endif + LOGI(PRI_DOMAIN, PRI_TAG, "Entry!"); + uint32_t callingTokenID = IPCSkeleton::GetCallingTokenID(); if ((AccessTokenKit::GetTokenTypeFlag(callingTokenID) == TOKEN_HAP) && (!IsSystemAppCalling())) { return PrivacyError::ERR_NOT_SYSTEM_APP; @@ -98,11 +108,10 @@ int32_t PrivacyManagerService::AddPermissionUsedRecord(const AddPermParamInfoPar return PrivacyError::ERR_PERMISSION_DENIED; } - LOGD(PRI_DOMAIN, PRI_TAG, "id: %{public}d, perm: %{public}s, succCnt: %{public}d," - " failCnt: %{public}d, type: %{public}d", infoParcel.info.tokenId, infoParcel.info.permissionName.c_str(), - infoParcel.info.successCount, infoParcel.info.failCount, infoParcel.info.type); AddPermParamInfo info = infoParcel.info; - return PermissionRecordManager::GetInstance().AddPermissionUsedRecord(info); + int32_t res = PermissionRecordManager::GetInstance().AddPermissionUsedRecord(info); + LOGI(PRI_DOMAIN, PRI_TAG, "Exit!"); + return res; } int32_t PrivacyManagerService::AddPermissionUsedRecordAsync(const AddPermParamInfoParcel& infoParcel) @@ -201,6 +210,10 @@ int32_t PrivacyManagerService::StartUsingPermission( int32_t PrivacyManagerService::StartUsingPermissionCallback(const PermissionUsedTypeInfoParcel &infoParcel, const sptr& callback, const sptr& anonyStub) { +#ifdef HITRACE_NATIVE_ENABLE + PRIVACY_SYNC_TRACE; +#endif + LOGI(PRI_DOMAIN, PRI_TAG, "Entry!"); uint32_t callingTokenID = IPCSkeleton::GetCallingTokenID(); if ((AccessTokenKit::GetTokenTypeFlag(callingTokenID) == TOKEN_HAP) && (!IsSystemAppCalling())) { return PrivacyError::ERR_NOT_SYSTEM_APP; @@ -210,9 +223,10 @@ int32_t PrivacyManagerService::StartUsingPermissionCallback(const PermissionUsed } int32_t callerPid = IPCSkeleton::GetCallingPid(); - LOGI(PRI_DOMAIN, PRI_TAG, "Caller pid = %{public}d.", callerPid); ProcessProxyDeathStub(anonyStub, callerPid); - return PermissionRecordManager::GetInstance().StartUsingPermission(infoParcel.info, callback, callerPid); + int32_t res = PermissionRecordManager::GetInstance().StartUsingPermission(infoParcel.info, callback, callerPid); + LOGI(PRI_DOMAIN, PRI_TAG, "Exit!"); + return res; } int32_t PrivacyManagerService::StopUsingPermission( @@ -408,6 +422,10 @@ int32_t PrivacyManagerService::UnRegisterPermActiveStatusCallback(const sptr