From 786ca39c32ed822f564bc0d01605c1beee69388c Mon Sep 17 00:00:00 2001 From: chennian Date: Fri, 29 Aug 2025 10:53:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=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: chennian Change-Id: I35f595a9a84dd6664343f239c72019e3728a742d --- .../src/ani_request_permission.cpp | 4 -- .../test/tool/add_permission_used_record.cpp | 44 ++++++++++--------- .../service/accesstoken_manager_service.cpp | 3 ++ 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/frameworks/ets/ani/accesstoken/src/ani_request_permission.cpp b/frameworks/ets/ani/accesstoken/src/ani_request_permission.cpp index 6494c119d..1bec2eedc 100644 --- a/frameworks/ets/ani/accesstoken/src/ani_request_permission.cpp +++ b/frameworks/ets/ani/accesstoken/src/ani_request_permission.cpp @@ -236,10 +236,6 @@ bool RequestAsyncContext::IsDynamicRequest() permList.emplace_back(permState); } auto ret = AccessToken::AccessTokenKit::GetSelfPermissionsState(permList, this->info); - LOGI(ATM_DOMAIN, ATM_TAG, - "TokenID: %{public}d, bundle: %{public}s, uiExAbility: %{public}s, serExAbility: %{public}s.", - this->tokenId, this->info.grantBundleName.c_str(), this->info.grantAbilityName.c_str(), - this->info.grantServiceAbilityName.c_str()); if (ret == AccessToken::FORBIDDEN_OPER) { LOGE(ATM_DOMAIN, ATM_TAG, "FORBIDDEN_OPER"); for (auto& perm : permList) { diff --git a/interfaces/innerkits/privacy/test/tool/add_permission_used_record.cpp b/interfaces/innerkits/privacy/test/tool/add_permission_used_record.cpp index 4036b6579..c7a5c8858 100644 --- a/interfaces/innerkits/privacy/test/tool/add_permission_used_record.cpp +++ b/interfaces/innerkits/privacy/test/tool/add_permission_used_record.cpp @@ -16,36 +16,36 @@ #include #include #include +#include #include #include "accesstoken_kit.h" -#include "nativetoken_kit.h" #include "privacy_kit.h" #include "token_setproc.h" using namespace std; using namespace OHOS::Security::AccessToken; -static void NativeTokenGet() +AccessTokenID GetNativeTokenIdFromProcess(const std::string &process) { - uint64_t tokenID; - const char **perms = new (std::nothrow) const char *[1]; // size of array - perms[0] = "ohos.permission.PERMISSION_USED_STATS"; // 0: index - - NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 1, // size of permission list - .aclsNum = 0, - .dcaps = nullptr, - .perms = perms, - .acls = nullptr, - .aplStr = "system_core", - }; + std::string dumpInfo; + AtmToolsParamInfo info; + info.processName = process; + AccessTokenKit::DumpTokenInfo(info, dumpInfo); + size_t pos = dumpInfo.find("\"tokenID\": "); + if (pos == std::string::npos) { + return 0; + } + pos += std::string("\"tokenID\": ").length(); + std::string numStr; + while (pos < dumpInfo.length() && std::isdigit(dumpInfo[pos])) { + numStr += dumpInfo[pos]; + ++pos; + } - infoInstance.processName = "AddPermissionUsedRecord"; - tokenID = GetAccessTokenId(&infoInstance); - SetSelfTokenID(tokenID); - AccessTokenKit::ReloadNativeTokenInfo(); - delete[] perms; + std::istringstream iss(numStr); + AccessTokenID tokenID; + iss >> tokenID; + return tokenID; } int32_t main(int argc, char *argv[]) @@ -55,7 +55,9 @@ int32_t main(int argc, char *argv[]) return 0; } - NativeTokenGet(); + AccessTokenID mockTokenID = GetNativeTokenIdFromProcess("camera_service"); + SetSelfTokenID(mockTokenID); + std::cout << "#SelfTokenID: " << GetSelfTokenID() << std::endl; uint32_t tokenId = static_cast(atoi(argv[1])); // 1: index std::string permisisionName = argv[2]; // 2: index 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 e347aaf70..856d28a13 100644 --- a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp +++ b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp @@ -302,6 +302,9 @@ int32_t AccessTokenManagerService::GetSelfPermissionsState(std::vector