From 54a59798a7a3e96a7b34e7179782050b2dad848a Mon Sep 17 00:00:00 2001 From: chennian1121 Date: Sat, 6 Sep 2025 16:11:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ai=E5=91=8A=E8=AD=A6=E5=92=8C?= =?UTF-8?q?=E8=BF=AA=E7=B1=B3=E7=89=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chennian1121 Change-Id: I364b10e64dbbe87b21f60604d5356e4914d33fff --- .../common/include/hisysevent_adapter.h | 14 ++--- frameworks/ets/ani/common/src/ani_error.cpp | 14 ++--- frameworks/ets/ani/common/src/ani_utils.cpp | 25 +++++---- .../ets/ani/privacy/src/privacy_manager.cpp | 5 +- .../accesstoken/include/hap_token_info.h | 13 ----- .../include/permission/hap_token_info_inner.h | 13 +++++ .../include/permission/permission_manager.h | 2 +- .../cpp/src/permission/permission_manager.cpp | 6 +- .../src/permission/short_grant_manager.cpp | 3 +- .../src/permission/token_modify_notifier.cpp | 5 +- .../service/accesstoken_manager_service.cpp | 55 ++++++++++--------- .../database_dlopen_coverage_test.cpp | 1 - .../test/unittest/token_sync_service_test.cpp | 12 +++- 13 files changed, 86 insertions(+), 82 deletions(-) diff --git a/frameworks/common/include/hisysevent_adapter.h b/frameworks/common/include/hisysevent_adapter.h index 10eb7e648..8a7fab772 100644 --- a/frameworks/common/include/hisysevent_adapter.h +++ b/frameworks/common/include/hisysevent_adapter.h @@ -23,20 +23,16 @@ namespace OHOS { namespace Security { namespace AccessToken { -// base info -struct BaseDfxInfo { +// add, update or delete +struct HapDfxInfo { AccessTokenID tokenId = 0; + AccessTokenIDEx tokenIdEx; + AccessTokenID oriTokenId; int32_t userID = 0; - std::string bundleName; int32_t instIndex; + std::string bundleName; int64_t duration = 0; int32_t ipcCode = -1; -}; - -// add or update or delete -struct HapDfxInfo : public BaseDfxInfo { - AccessTokenID oriTokenId; - AccessTokenIDEx tokenIdEx; std::string permInfo; std::string aclInfo; std::string preauthInfo; diff --git a/frameworks/ets/ani/common/src/ani_error.cpp b/frameworks/ets/ani/common/src/ani_error.cpp index 056e72653..2e3f18298 100644 --- a/frameworks/ets/ani/common/src/ani_error.cpp +++ b/frameworks/ets/ani/common/src/ani_error.cpp @@ -70,39 +70,39 @@ ani_object BusinessErrorAni::CreateError(ani_env* env, ani_int code, const std:: ani_status status = env->FindClass(BUSINESS_ERROR_CLASS, &cls); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to FindClass: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to FindClass: %{public}d.", static_cast(status)); return nullptr; } status = env->Class_FindMethod(cls, "", ":V", &method); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindMethod: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindMethod: %{public}d.", static_cast(status)); return nullptr; } status = env->Object_New(cls, method, &obj); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_New: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_New: %{public}d.", static_cast(status)); return nullptr; } status = env->Class_FindField(cls, "code", &field); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindField: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindField: %{public}d.", static_cast(status)); return nullptr; } status = env->Object_SetField_Double(obj, field, code); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_SetField_Double: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_SetField_Double: %{public}d.", static_cast(status)); return nullptr; } status = env->Class_FindField(cls, "data", &field); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindField: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Class_FindField: %{public}d.", static_cast(status)); return nullptr; } ani_string string = nullptr; env->String_NewUTF8(msg.c_str(), msg.size(), &string); status = env->Object_SetField_Ref(obj, field, static_cast(string)); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_SetField_Ref: %{public}d.", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_SetField_Ref: %{public}d.", static_cast(status)); return nullptr; } return obj; diff --git a/frameworks/ets/ani/common/src/ani_utils.cpp b/frameworks/ets/ani/common/src/ani_utils.cpp index d2664afda..a9705225e 100644 --- a/frameworks/ets/ani/common/src/ani_utils.cpp +++ b/frameworks/ets/ani/common/src/ani_utils.cpp @@ -88,7 +88,7 @@ bool AniParseUint32(ani_env* env, const ani_ref& aniInt, uint32_t& out) ani_status status; if ((status = env->Object_CallMethodByName_Int( static_cast(aniInt), "unboxed", nullptr, &tmp)) != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Object_CallMethodByName_Int failed! %{public}d", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Object_CallMethodByName_Int failed! %{public}d", static_cast(status)); return false; } @@ -460,13 +460,14 @@ ani_object CreateArrayObject(ani_env* env, uint32_t length) ani_method aniMethod; ani_status status = env->Class_FindMethod(aniClass, "", "I:V", &aniMethod); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to FindMethod, status: %{public}d!", status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to FindMethod, status: %{public}d!", static_cast(status)); return nullptr; } ani_object out; status = env->Object_New(aniClass, aniMethod, &out, length); if (status != ANI_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_New(size: %{public}d), status %{public}d!", length, status); + LOGE(ATM_DOMAIN, ATM_TAG, "Failed to Object_New(size: %{public}d), status %{public}d!", + length, static_cast(status)); return nullptr; } return out; @@ -483,7 +484,7 @@ bool GetBoolProperty(ani_env* env, const ani_object& object, const std::string& ani_status status = env->Object_GetPropertyByName_Ref(object, property.c_str(), &ref); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Failed to get property(%{public}s), status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } if (AniIsRefUndefined(env, ref)) { @@ -540,7 +541,7 @@ bool GetLongProperty(ani_env* env, const ani_object& object, const std::string& ani_status status = env->Object_GetPropertyByName_Ref(object, property.c_str(), &ref); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Failed to get property(%{public}s), status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } if (AniIsRefUndefined(env, ref)) { @@ -567,7 +568,7 @@ bool GetStringProperty(ani_env* env, const ani_object& object, const std::string ani_status status = env->Object_GetPropertyByName_Ref(object, property.c_str(), &ref); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Failed to get property(%{public}s), status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } if (AniIsRefUndefined(env, ref)) { @@ -588,7 +589,7 @@ bool GetEnumProperty(ani_env* env, const ani_object& object, const std::string& ani_status status = env->Object_GetPropertyByName_Ref(object, property.c_str(), &ref); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Failed to get property(%{public}s), status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } if (AniIsRefUndefined(env, ref)) { @@ -616,7 +617,7 @@ bool GetStringVecProperty( ani_status status = env->Object_GetPropertyByName_Ref(object, property.c_str(), &ref); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Failed to get property(%{public}s), status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } if (AniIsRefUndefined(env, ref)) { @@ -636,7 +637,7 @@ bool SetBoolProperty(ani_env* env, ani_object& object, const std::string& proper ani_status status = env->Object_SetPropertyByName_Boolean(object, property.c_str(), static_cast(in)); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Set property(%{public}s) failed, status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } return true; @@ -651,7 +652,7 @@ bool SetIntProperty(ani_env* env, ani_object& object, const std::string& propert ani_status status = env->Object_SetPropertyByName_Int(object, property.c_str(), static_cast(in)); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Set property(%{public}s) failed, status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } return true; @@ -666,7 +667,7 @@ bool SetLongProperty(ani_env* env, ani_object& aniObject, const std::string& pro ani_status status = env->Object_SetPropertyByName_Long(aniObject, property.c_str(), static_cast(in)); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Set property(%{public}s) failed, status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } return true; @@ -681,7 +682,7 @@ bool SetRefProperty(ani_env* env, ani_object& aniObject, const std::string& prop ani_status status = env->Object_SetPropertyByName_Ref(aniObject, property.c_str(), in); if (status != ANI_OK) { LOGE(ATM_DOMAIN, ATM_TAG, "Set property(%{public}s) failed, status: %{public}d!", - property.c_str(), status); + property.c_str(), static_cast(status)); return false; } return true; diff --git a/frameworks/ets/ani/privacy/src/privacy_manager.cpp b/frameworks/ets/ani/privacy/src/privacy_manager.cpp index 29424fa9a..40d03974c 100644 --- a/frameworks/ets/ani/privacy/src/privacy_manager.cpp +++ b/frameworks/ets/ani/privacy/src/privacy_manager.cpp @@ -565,7 +565,7 @@ static ani_object ConvertUsedRecordDetails(ani_env* env, const std::vectorObject_CallMethodByName_Void( arrayObj, "$_set", "ILstd/core/Object;:V", index, aniRecord); if (status != ANI_OK) { - LOGE(PRI_DOMAIN, PRI_TAG, "status : %{public}d.", status); + LOGE(PRI_DOMAIN, PRI_TAG, "status : %{public}d.", static_cast(status)); break; } ++index; @@ -909,7 +909,8 @@ void InitPrivacyFunction(ani_env *env) }; ani_status status = env->Namespace_BindNativeFunctions(ns, nsMethods.data(), nsMethods.size()); if (status != ANI_OK) { - LOGE(PRI_DOMAIN, PRI_TAG, "Failed to Namespace_BindNativeFunctions status : %{public}d.", status); + LOGE(PRI_DOMAIN, PRI_TAG, "Failed to Namespace_BindNativeFunctions status : %{public}d.", + static_cast(status)); } if (env->ResetError() != ANI_OK) { LOGE(PRI_DOMAIN, PRI_TAG, "Failed to ResetError."); diff --git a/interfaces/innerkits/accesstoken/include/hap_token_info.h b/interfaces/innerkits/accesstoken/include/hap_token_info.h index 67a4e27f0..6dc09bb15 100644 --- a/interfaces/innerkits/accesstoken/include/hap_token_info.h +++ b/interfaces/innerkits/accesstoken/include/hap_token_info.h @@ -213,19 +213,6 @@ public: std::map aclExtendedMap; }; -/** - * @brief Declares hap Init info class - */ -class HapInitInfo final { -public: - HapInfoParams installInfo; - UpdateHapInfoParams updateInfo; - HapPolicy policy; - std::string bundleName = ""; - AccessTokenID tokenID = 0; - bool isUpdate = false; -}; - /** * @brief Declares permission with value */ diff --git a/services/accesstokenmanager/main/cpp/include/permission/hap_token_info_inner.h b/services/accesstokenmanager/main/cpp/include/permission/hap_token_info_inner.h index b02e9925c..8f69edb9a 100644 --- a/services/accesstokenmanager/main/cpp/include/permission/hap_token_info_inner.h +++ b/services/accesstokenmanager/main/cpp/include/permission/hap_token_info_inner.h @@ -31,6 +31,19 @@ namespace OHOS { namespace Security { namespace AccessToken { +/** + * @brief Declares hap Init info class + */ +class HapInitInfo final { +public: + HapInfoParams installInfo; + UpdateHapInfoParams updateInfo; + HapPolicy policy; + std::string bundleName = ""; + AccessTokenID tokenID = 0; + bool isUpdate = false; +}; + class HapTokenInfoInner final { public: HapTokenInfoInner(); diff --git a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h index c7e79d545..7dbf07dd2 100644 --- a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h +++ b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h @@ -107,7 +107,7 @@ public: void SetPermToKernel(AccessTokenID tokenID, const std::string& permissionName, bool isGranted); bool InitPermissionList(const HapInitInfo& initInfo, std::vector& initializedList, HapInfoCheckResult& result, std::vector& undefValues); - bool InitDlpPermissionList(const std::string& bundleName, int32_t userId, + bool InitDlpPermissionList(const HapInfoParams& initInfo, std::vector& initializedList, std::vector& undefValues); void NotifyUpdatedPermList(const std::vector& grantedPermListBefore, const std::vector& grantedPermListAfter, AccessTokenID tokenID); diff --git a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp index ce2c30cc2..1f3afa3e8 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp @@ -1176,11 +1176,11 @@ void PermissionManager::GetMasterAppUndValues(AccessTokenID tokenId, std::vector } } -bool PermissionManager::InitDlpPermissionList(const std::string& bundleName, int32_t userId, +bool PermissionManager::InitDlpPermissionList(const HapInfoParams& info, std::vector& initializedList, std::vector& undefValues) { - // get dlp original app - AccessTokenIDEx tokenId = AccessTokenInfoManager::GetInstance().GetHapTokenID(userId, bundleName, 0); + // get dlp original app, index is 0 + AccessTokenIDEx tokenId = AccessTokenInfoManager::GetInstance().GetHapTokenID(info.userID, info.bundleName, 0); std::shared_ptr infoPtr = AccessTokenInfoManager::GetInstance().GetHapTokenInfoInner(tokenId.tokenIdExStruct.tokenID); if (infoPtr == nullptr) { diff --git a/services/accesstokenmanager/main/cpp/src/permission/short_grant_manager.cpp b/services/accesstokenmanager/main/cpp/src/permission/short_grant_manager.cpp index a3b23b5ef..5317211e4 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/short_grant_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/short_grant_manager.cpp @@ -142,7 +142,6 @@ int ShortGrantManager::RefreshPermission(AccessTokenID tokenID, const std::strin shortGrantData_.begin(), shortGrantData_.end(), [tokenID, permission](const PermTimerData& data) { return data.tokenID == tokenID && data.permissionName == permission; }); - if (iter == shortGrantData_.end()) { auto iterator = std::find(g_shortGrantPermission.begin(), g_shortGrantPermission.end(), permission); if (iterator == g_shortGrantPermission.end()) { @@ -251,7 +250,7 @@ void ShortGrantManager::ScheduleRevokeTask(AccessTokenID tokenID, const std::str LOGI(ATM_DOMAIN, ATM_TAG, "Token: %{public}d, permission: %{public}s, delay revoke permission end.", tokenID, permission.c_str()); }); - LOGI(ATM_DOMAIN, ATM_TAG, "cancelTimes %{public}d", cancelTimes); + LOGI(ATM_DOMAIN, ATM_TAG, "CancelTimes %{public}d.", cancelTimes); eventHandler->ProxyPostTask(delayed, taskName, cancelTimes * 1000); // 1000 means to ms return; #else diff --git a/services/accesstokenmanager/main/cpp/src/permission/token_modify_notifier.cpp b/services/accesstokenmanager/main/cpp/src/permission/token_modify_notifier.cpp index e4b74f2e7..ac7206df2 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/token_modify_notifier.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/token_modify_notifier.cpp @@ -175,11 +175,8 @@ int32_t TokenModifyNotifier::GetRemoteHapTokenInfo(const std::string& deviceID, int32_t TokenModifyNotifier::RegisterTokenSyncCallback(const sptr& callback) { Utils::UniqueWriteGuard infoGuard(this->notifyLock_); - tokenSyncCallbackObject_ = new (std::nothrow) TokenSyncCallbackProxy(callback); + tokenSyncCallbackObject_ = new TokenSyncCallbackProxy(callback); tokenSyncCallbackDeathRecipient_ = sptr::MakeSptr(); - if (tokenSyncCallbackDeathRecipient_ == nullptr) { - return RET_FAILED; - } callback->AddDeathRecipient(tokenSyncCallbackDeathRecipient_); LOGI(ATM_DOMAIN, ATM_TAG, "Register token sync callback successful."); return ERR_OK; diff --git a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp index 856d28a13..90e480bb8 100644 --- a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp +++ b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp @@ -670,22 +670,24 @@ int32_t AccessTokenManagerService::AllocHapToken(const HapInfoParcel& info, cons return ERR_OK; } -static void TransferHapPolicy(const HapPolicy& policyIn, HapPolicy& policyOut) -{ - policyOut.apl = policyIn.apl; - policyOut.domain = policyIn.domain; - policyOut.permList.assign(policyIn.permList.begin(), policyIn.permList.end()); - policyOut.aclRequestedList.assign(policyIn.aclRequestedList.begin(), policyIn.aclRequestedList.end()); - policyOut.preAuthorizationInfo.assign(policyIn.preAuthorizationInfo.begin(), policyIn.preAuthorizationInfo.end()); - for (const auto& perm : policyIn.permStateList) { +static void TransferHapPolicy(const HapPolicyParcel& policyIn, HapPolicy& policyOut) +{ + policyOut.apl = policyIn.hapPolicy.apl; + policyOut.domain = policyIn.hapPolicy.domain; + policyOut.permList.assign(policyIn.hapPolicy.permList.begin(), policyIn.hapPolicy.permList.end()); + policyOut.aclRequestedList.assign( + policyIn.hapPolicy.aclRequestedList.begin(), policyIn.hapPolicy.aclRequestedList.end()); + policyOut.preAuthorizationInfo.assign( + policyIn.hapPolicy.preAuthorizationInfo.begin(), policyIn.hapPolicy.preAuthorizationInfo.end()); + for (const auto& perm : policyIn.hapPolicy.permStateList) { PermissionStatus tmp; tmp.permissionName = perm.permissionName; tmp.grantStatus = perm.grantStatus; tmp.grantFlag = perm.grantFlag; policyOut.permStateList.emplace_back(tmp); } - policyOut.checkIgnore = policyIn.checkIgnore; - policyOut.aclExtendedMap = policyIn.aclExtendedMap; + policyOut.checkIgnore = policyIn.hapPolicy.checkIgnore; + policyOut.aclExtendedMap = policyIn.hapPolicy.aclExtendedMap; } static void DumpEventInfo(const HapPolicy& policy, HapDfxInfo& dfxInfo) @@ -746,7 +748,7 @@ void AccessTokenManagerService::ReportUpdateHap(AccessTokenIDEx fullTokenId, con dfxInfo.userID = info.userID; dfxInfo.bundleName = info.bundleName; dfxInfo.instIndex = info.instIndex; - dfxInfo.duration = TimeUtil::GetCurrentTimestamp() - dfxInfo.duration; + dfxInfo.duration = TimeUtil::GetCurrentTimestamp() - beginTime; DumpEventInfo(policy, dfxInfo); ReportSysEventUpdateHap(errorCode, dfxInfo); @@ -755,7 +757,8 @@ void AccessTokenManagerService::ReportUpdateHap(AccessTokenIDEx fullTokenId, con int32_t AccessTokenManagerService::InitHapToken(const HapInfoParcel& info, const HapPolicyParcel& policy, uint64_t& fullTokenId, HapInfoCheckResultIdl& resultInfoIdl) { - LOGI(ATM_DOMAIN, ATM_TAG, "Init hap %{public}s.", info.hapInfoParameter.bundleName.c_str()); + HapInfoParams hapInfoParm = info.hapInfoParameter; + LOGI(ATM_DOMAIN, ATM_TAG, "Init hap %{public}s.", hapInfoParm.bundleName.c_str()); AccessTokenID tokenID = IPCSkeleton::GetCallingTokenID(); if (!IsPrivilegedCalling() && (VerifyAccessToken(tokenID, MANAGE_HAP_TOKENID_PERMISSION) == PERMISSION_DENIED)) { @@ -763,32 +766,30 @@ int32_t AccessTokenManagerService::InitHapToken(const HapInfoParcel& info, const return AccessTokenError::ERR_PERMISSION_DENIED; } - int64_t beiginTime = TimeUtil::GetCurrentTimestamp(); + int64_t beginTime = TimeUtil::GetCurrentTimestamp(); HapPolicy policyCopy; - TransferHapPolicy(policy.hapPolicy, policyCopy); + TransferHapPolicy(policy, policyCopy); resultInfoIdl.realResult = ERR_OK; std::vector initializedList; std::vector undefValues; - if (info.hapInfoParameter.dlpType == DLP_COMMON) { + if (hapInfoParm.dlpType == DLP_COMMON) { HapInfoCheckResult permCheckResult; HapInitInfo initInfo; - initInfo.installInfo = info.hapInfoParameter; + initInfo.installInfo = hapInfoParm; initInfo.policy = policyCopy; - initInfo.bundleName = info.hapInfoParameter.bundleName; + initInfo.bundleName = hapInfoParm.bundleName; if (!PermissionManager::GetInstance().InitPermissionList(initInfo, initializedList, permCheckResult, undefValues)) { resultInfoIdl.realResult = ERROR; resultInfoIdl.permissionName = permCheckResult.permCheckResult.permissionName; - int32_t rule = permCheckResult.permCheckResult.rule; - resultInfoIdl.rule = static_cast(rule); - ReportAddHap({0}, info.hapInfoParameter, policyCopy, beiginTime, ERR_PERM_REQUEST_CFG_FAILED); + resultInfoIdl.rule = static_cast(permCheckResult.permCheckResult.rule); + ReportAddHap({0}, hapInfoParm, policyCopy, beginTime, ERR_PERM_REQUEST_CFG_FAILED); return ERR_OK; } } else { - if (!PermissionManager::GetInstance().InitDlpPermissionList( - info.hapInfoParameter.bundleName, info.hapInfoParameter.userID, initializedList, undefValues)) { - ReportAddHap({0}, info.hapInfoParameter, policyCopy, beiginTime, ERR_PERM_REQUEST_CFG_FAILED); + if (!PermissionManager::GetInstance().InitDlpPermissionList(hapInfoParm, initializedList, undefValues)) { + ReportAddHap({0}, hapInfoParm, policyCopy, beginTime, ERR_PERM_REQUEST_CFG_FAILED); return ERR_PERM_REQUEST_CFG_FAILED; } } @@ -796,9 +797,9 @@ int32_t AccessTokenManagerService::InitHapToken(const HapInfoParcel& info, const AccessTokenIDEx tokenIdEx; int32_t ret = AccessTokenInfoManager::GetInstance().CreateHapTokenInfo( - info.hapInfoParameter, policyCopy, tokenIdEx, undefValues); + hapInfoParm, policyCopy, tokenIdEx, undefValues); fullTokenId = tokenIdEx.tokenIDEx; - ReportAddHap(tokenIdEx, info.hapInfoParameter, policyCopy, beiginTime, ret); + ReportAddHap(tokenIdEx, hapInfoParm, policyCopy, beginTime, ret); return ret; } @@ -816,7 +817,7 @@ int AccessTokenManagerService::DeleteToken(AccessTokenID tokenID) return AccessTokenError::ERR_PARAM_INVALID; } - HapDfxInfo dfxInfo; + HapDfxInfo dfxInfo = {}; dfxInfo.tokenId = tokenID; dfxInfo.ipcCode = static_cast(IAccessTokenManagerIpcCode::COMMAND_DELETE_TOKEN); int64_t beginTime = TimeUtil::GetCurrentTimestamp(); @@ -898,7 +899,7 @@ int32_t AccessTokenManagerService::UpdateHapToken(uint64_t& fullTokenId, const U return AccessTokenError::ERR_PERMISSION_DENIED; } int64_t beginTime = TimeUtil::GetCurrentTimestamp(); - HapTokenInfo hapInfo; + HapTokenInfo hapInfo = { 0 }; int32_t error = AccessTokenInfoManager::GetInstance().GetHapTokenInfo(tokenIdEx.tokenIdExStruct.tokenID, hapInfo); if (error != ERR_OK) { LOGC(ATM_DOMAIN, ATM_TAG, "GetHapTokenInfo failed, err=%{public}d.", error); diff --git a/services/accesstokenmanager/test/database_dlopen/database_dlopen_coverage_test.cpp b/services/accesstokenmanager/test/database_dlopen/database_dlopen_coverage_test.cpp index ea42a0154..9838e8484 100644 --- a/services/accesstokenmanager/test/database_dlopen/database_dlopen_coverage_test.cpp +++ b/services/accesstokenmanager/test/database_dlopen/database_dlopen_coverage_test.cpp @@ -28,7 +28,6 @@ namespace Security { namespace AccessToken { namespace { constexpr const int32_t WAIT_EVENTHANDLE_TIME = 2; -constexpr const int32_t WAIT_DELAY_DLCLOSE_TIME = 7; } class AccessTokenDatabaseDlopenTest : public testing::Test { public: diff --git a/services/tokensyncmanager/test/unittest/token_sync_service_test.cpp b/services/tokensyncmanager/test/unittest/token_sync_service_test.cpp index ec1a4674a..8750b1663 100644 --- a/services/tokensyncmanager/test/unittest/token_sync_service_test.cpp +++ b/services/tokensyncmanager/test/unittest/token_sync_service_test.cpp @@ -1025,11 +1025,14 @@ HWTEST_F(TokenSyncServiceTest, RemoveRemoteDeviceInfo001, TestSize.Level0) HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.Level0) { std::string nodeId; + ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueId(nodeId)); ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); // nodeId invalid nodeId = "123"; // FindDeviceInfo false - ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); + ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueId(nodeId)); + // GetUuidByNetworkId success + ASSERT_EQ("123:uuid-001", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); std::string networkId = "123"; std::string universallyUniqueId = "123"; @@ -1062,10 +1065,15 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize. HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level0) { std::string nodeId; + bool isFound; + ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceId(nodeId, isFound)); + ASSERT_EQ(false, isFound); ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); // nodeId invalid nodeId = "123"; // FindDeviceInfo false + ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceId(nodeId, isFound)); + ASSERT_EQ(false, isFound); ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); std::string networkId = "123"; @@ -1078,6 +1086,8 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level nodeId = "123"; // FindDeviceInfo true + universallyUniqueId is not empty + DeviceInfoManager::GetInstance().ConvertToUniqueDeviceId(nodeId, isFound); + ASSERT_EQ(true, isFound); SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId); nodeId = uniqueDeviceId; -- Gitee