mirror of
https://github.com/openharmony/security_access_token.git
synced 2026-08-24 14:42:49 -04:00
@@ -858,7 +858,8 @@ void NapiRequestPermission::GetPermissionsStatusExecute(napi_env env, void* data
|
||||
LOGD(ATM_DOMAIN, ATM_TAG, "PermList size: %{public}zu, asyncContext->permissionList size: %{public}zu.",
|
||||
permList.size(), asyncContext->permissionList.size());
|
||||
|
||||
asyncContext->result.errorCode = AccessTokenKit::GetPermissionsStatus(asyncContext->tokenId, permList);
|
||||
asyncContext->SetErrorCode(AccessTokenKit::GetPermissionsStatus(asyncContext->tokenId, permList));
|
||||
|
||||
for (const auto& permState : permList) {
|
||||
LOGD(ATM_DOMAIN, ATM_TAG, "Permission: %{public}s", permState.permissionName.c_str());
|
||||
asyncContext->permissionQueryResults.emplace_back(permState.state);
|
||||
|
||||
@@ -56,6 +56,10 @@ struct RequestAsyncContext : public AtManagerAsyncWorkData {
|
||||
#ifdef EVENTHANDLER_ENABLE
|
||||
std::shared_ptr<AppExecFwk::EventHandler> handler_ = nullptr;
|
||||
#endif
|
||||
void SetErrorCode(int32_t errcode)
|
||||
{
|
||||
result.errorCode = errcode;
|
||||
}
|
||||
};
|
||||
|
||||
struct RequestAsyncContextHandle {
|
||||
|
||||
@@ -7543,6 +7543,28 @@
|
||||
"provisionEnable": true,
|
||||
"distributedSceneEnable": false,
|
||||
"deviceTypes": ["2in1"]
|
||||
},
|
||||
{
|
||||
"name": "ohos.permission.CAPTURE_SCREEN_ALL",
|
||||
"grantMode": "system_grant",
|
||||
"availableLevel": "system_core",
|
||||
"availableType": "SYSTEM",
|
||||
"since": 21,
|
||||
"deprecated": "",
|
||||
"provisionEnable": true,
|
||||
"distributedSceneEnable": false,
|
||||
"deviceTypes": ["general"]
|
||||
},
|
||||
{
|
||||
"name": "ohos.permission.CUSTOM_SCREEN_RECORDING",
|
||||
"grantMode": "manual_settings",
|
||||
"availableLevel": "system_basic",
|
||||
"availableType": "NORMAL",
|
||||
"since": 22,
|
||||
"deprecated": "",
|
||||
"provisionEnable": true,
|
||||
"distributedSceneEnable": false,
|
||||
"deviceTypes": ["2in1"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -495,15 +495,16 @@ static bool IsPermissionReqValid(int32_t tokenApl, const std::string& permission
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& native)
|
||||
static void AddNativeTokenInfo(CJsonUnique& j, const NativeTokenInfoBase& native)
|
||||
{
|
||||
CJsonUnique j = CreateJson();
|
||||
(void)AddUnsignedIntToJson(j, "tokenID", native.tokenID);
|
||||
(void)AddStringToJson(j, "processName", native.processName);
|
||||
(void)AddIntToJson(j, "apl", native.apl);
|
||||
}
|
||||
|
||||
CJsonUnique permStateListJson = CreateJsonArray();
|
||||
CJsonUnique invalidPermStringJson = CreateJsonArray();
|
||||
static void AddPermStateListInNativeTokenInfo(const NativeTokenInfoBase& native,
|
||||
CJsonUnique& permStateListJson, CJsonUnique& invalidPermStringJson)
|
||||
{
|
||||
for (auto iter = native.permStateList.begin(); iter != native.permStateList.end(); ++iter) {
|
||||
if (!IsPermissionReqValid(native.apl, iter->permissionName, native.nativeAcls)) {
|
||||
CJsonUnique tmpJson = CreateJsonString(iter->permissionName);
|
||||
@@ -516,6 +517,16 @@ std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& na
|
||||
(void)AddUnsignedIntToJson(permStateJson, "grantFlag", iter->grantFlag);
|
||||
(void)AddObjToArray(permStateListJson, permStateJson);
|
||||
}
|
||||
}
|
||||
|
||||
std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& native)
|
||||
{
|
||||
CJsonUnique j = CreateJson();
|
||||
AddNativeTokenInfo(j, native);
|
||||
|
||||
CJsonUnique permStateListJson = CreateJsonArray();
|
||||
CJsonUnique invalidPermStringJson = CreateJsonArray();
|
||||
AddPermStateListInNativeTokenInfo(native, permStateListJson, invalidPermStringJson);
|
||||
|
||||
(void)AddObjToJson(j, "permStateList", permStateListJson);
|
||||
(void)AddObjToJson(j, "invalidPermList", invalidPermStringJson);
|
||||
|
||||
@@ -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" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ public:
|
||||
SHORT_TERM_WRITE_IMAGEVIDEO = 42,
|
||||
CAMERA_BACKGROUND = 43,
|
||||
OP_CUSTOM_SCREEN_CAPTURE = 44,
|
||||
OP_CUSTOM_SCREEN_RECORDING = 45,
|
||||
OP_HOOK_KEY_EVENT = 46,
|
||||
// 以下声明仅用于下载 桌面 文档文件夹权限的访问记录使用,需要和普通权限做区分
|
||||
OP_READ_WRITE_DOWNLOAD_DIRECTORY_MEDIA_READ = 100,
|
||||
|
||||
@@ -104,6 +104,8 @@ const std::map<std::string, int32_t> Constant::PERMISSION_OPCODE_MAP = {
|
||||
Constant::OP_READ_WRITE_DESKTOP_DIRECTORY_OTHER_READ),
|
||||
std::map<std::string, int32_t>::value_type("ohos.permission.READ_WRITE_DESKTOP_DIRECTORY_OTHER_WRITE",
|
||||
Constant::OP_READ_WRITE_DESKTOP_DIRECTORY_OTHER_WRITE),
|
||||
std::map<std::string, int32_t>::value_type("ohos.permission.CUSTOM_SCREEN_RECORDING",
|
||||
Constant::OP_CUSTOM_SCREEN_RECORDING),
|
||||
};
|
||||
|
||||
bool Constant::TransferPermissionToOpcode(const std::string& permissionName, int32_t& opCode)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<IRemoteObject>& callback, const sptr<IRemoteObject>& 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<IRe
|
||||
int32_t PrivacyManagerService::IsAllowedUsingPermission(AccessTokenID tokenId, const std::string& permissionName,
|
||||
int32_t pid, bool& isAllowed)
|
||||
{
|
||||
#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())) {
|
||||
LOGE(PRI_DOMAIN, PRI_TAG, "Permission denied(tokenID=%{public}d)", callingTokenID);
|
||||
@@ -417,9 +435,8 @@ int32_t PrivacyManagerService::IsAllowedUsingPermission(AccessTokenID tokenId, c
|
||||
return PrivacyError::ERR_PERMISSION_DENIED;
|
||||
}
|
||||
|
||||
LOGI(PRI_DOMAIN, PRI_TAG, "Id: %{public}d, perm: %{public}s, pid: %{public}d.",
|
||||
tokenId, permissionName.c_str(), pid);
|
||||
isAllowed = PermissionRecordManager::GetInstance().IsAllowedUsingPermission(tokenId, permissionName, pid);
|
||||
LOGI(PRI_DOMAIN, PRI_TAG, "Exit!");
|
||||
return ERR_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,17 +79,17 @@ public:
|
||||
* Convert nodeId to deviceId(UUID) if possible.
|
||||
*
|
||||
* @param nodeId which is considered as indefinite id, maybe deviceId(UUID) or networkId.
|
||||
* @return The deviceId if local or device online, otherwise return empty string.
|
||||
* @return The deviceId if device online, otherwise return empty string.
|
||||
*/
|
||||
std::string ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId) const;
|
||||
std::string ConvertToUniversallyUniqueId(const std::string &nodeId) const;
|
||||
|
||||
/**
|
||||
* Convert nodeId to deviceId(UDID) if possible.
|
||||
*
|
||||
* @param nodeId which is considered as indefinite id, maybe deviceId(UDID) or networkId.
|
||||
* @return The deviceId if local or device online, otherwise return empty string.
|
||||
* @return The deviceId if device online, otherwise return empty string.
|
||||
*/
|
||||
std::string ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId) const;
|
||||
std::string ConvertToUniqueDeviceId(const std::string &nodeId, bool& isFoundDevice) const;
|
||||
|
||||
/**
|
||||
* Check nodeId is uuid or not.
|
||||
|
||||
@@ -100,6 +100,22 @@ public:
|
||||
*/
|
||||
std::string GetUniqueDeviceIdByNodeId(const std::string &networkId);
|
||||
|
||||
/**
|
||||
* Convert nodeId to deviceId(UUID) if possible.
|
||||
*
|
||||
* @param nodeId which is considered as indefinite id, maybe deviceId(UUID) or networkId.
|
||||
* @return The deviceId if local or device online, otherwise return empty string.
|
||||
*/
|
||||
std::string ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId);
|
||||
|
||||
/**
|
||||
* Convert nodeId to deviceId(UDID) if possible.
|
||||
*
|
||||
* @param nodeId which is considered as indefinite id, maybe deviceId(UDID) or networkId.
|
||||
* @return The deviceId if local or device online, otherwise return empty string.
|
||||
*/
|
||||
std::string ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId);
|
||||
|
||||
bool GetNetworkIdBySocket(const int32_t socket, std::string& networkId);
|
||||
|
||||
int32_t GetRepeatTimes();
|
||||
|
||||
@@ -86,11 +86,11 @@ void DeviceInfoManager::RemoveRemoteDeviceInfo(const std::string &nodeId, Device
|
||||
}
|
||||
}
|
||||
|
||||
std::string DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId) const
|
||||
std::string DeviceInfoManager::ConvertToUniversallyUniqueId(const std::string &nodeId) const
|
||||
{
|
||||
std::string result;
|
||||
if (!DataValidator::IsDeviceIdValid(nodeId)) {
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniversallyUniqueIdOrFetch: nodeId is invalid.");
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniversallyUniqueId: nodeId is invalid.");
|
||||
return result;
|
||||
}
|
||||
DeviceInfo deviceInfo;
|
||||
@@ -100,31 +100,19 @@ std::string DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch(const std::st
|
||||
return deviceInfo.deviceId.universallyUniqueId;
|
||||
}
|
||||
|
||||
std::string DeviceInfoManager::ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId) const
|
||||
std::string DeviceInfoManager::ConvertToUniqueDeviceId(const std::string &nodeId, bool& isFoundDevice) const
|
||||
{
|
||||
isFoundDevice = false;
|
||||
std::string result;
|
||||
if (!DataValidator::IsDeviceIdValid(nodeId)) {
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniqueDeviceIdOrFetch: nodeId is invalid.");
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniqueDeviceId: nodeId is invalid.");
|
||||
return result;
|
||||
}
|
||||
DeviceInfo deviceInfo;
|
||||
if (DeviceInfoRepository::GetInstance().FindDeviceInfo(nodeId, DeviceIdType::UNKNOWN, deviceInfo)) {
|
||||
std::string uniqueDeviceId = deviceInfo.deviceId.uniqueDeviceId;
|
||||
if (uniqueDeviceId.empty()) {
|
||||
std::string udid = SoftBusManager::GetInstance().GetUniqueDeviceIdByNodeId(nodeId);
|
||||
if (!udid.empty()) {
|
||||
result = udid;
|
||||
} else {
|
||||
LOGD(ATM_DOMAIN, ATM_TAG,
|
||||
"FindDeviceInfo succeed, udid and local udid is empty, nodeId(%{public}s)",
|
||||
ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
}
|
||||
} else {
|
||||
LOGD(ATM_DOMAIN, ATM_TAG,
|
||||
"FindDeviceInfo succeed, udid is empty, nodeId(%{public}s) ",
|
||||
ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
result = uniqueDeviceId;
|
||||
}
|
||||
LOGD(ATM_DOMAIN, ATM_TAG, "FindDeviceInfo succeed, nodeId(%{public}s)", nodeId.c_str());
|
||||
isFoundDevice = true;
|
||||
return deviceInfo.deviceId.uniqueDeviceId;
|
||||
} else {
|
||||
LOGD(ATM_DOMAIN, ATM_TAG, "FindDeviceInfo failed, nodeId(%{public}s)",
|
||||
ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#endif
|
||||
#include "device_info_manager.h"
|
||||
#include "remote_command_factory.h"
|
||||
#include "soft_bus_manager.h"
|
||||
#include "token_sync_manager_service.h"
|
||||
#include "accesstoken_kit.h"
|
||||
#include "constant_common.h"
|
||||
@@ -265,7 +266,7 @@ std::shared_ptr<RemoteCommandExecutor> RemoteCommandManager::GetOrCreateRemoteCo
|
||||
std::shared_ptr<RpcChannel> RemoteCommandManager::GetExecutorChannel(const std::string &nodeId)
|
||||
{
|
||||
LOGD(ATM_DOMAIN, ATM_TAG, "Convert udid start, nodeId:%{public}s", ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
|
||||
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
|
||||
if (!DataValidator::IsDeviceIdValid(udid)) {
|
||||
LOGW(ATM_DOMAIN, ATM_TAG, "Converted udid is invalid, nodeId:%{public}s",
|
||||
ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "device_info_manager.h"
|
||||
#include "device_manager.h"
|
||||
#include "iservice_registry.h"
|
||||
#include "soft_bus_manager.h"
|
||||
#include "soft_bus_socket_listener.h"
|
||||
#include "system_ability_definition.h"
|
||||
#include "constant_common.h"
|
||||
@@ -85,11 +86,8 @@ void SoftBusDeviceConnectionListener::UnloadTokensyncService()
|
||||
void SoftBusDeviceConnectionListener::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
|
||||
{
|
||||
std::string networkId = std::string(info.networkId);
|
||||
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
if (uuid.empty()) {
|
||||
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
|
||||
}
|
||||
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
if ((uuid == "") || (udid == "")) {
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "Uuid or udid is empty, offline failed.");
|
||||
return;
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "libraryloader.h"
|
||||
#include "remote_command_manager.h"
|
||||
#include "soft_bus_device_connection_listener.h"
|
||||
#include "soft_bus_manager.h"
|
||||
#include "soft_bus_socket_listener.h"
|
||||
#include "token_setproc.h"
|
||||
|
||||
@@ -543,6 +544,34 @@ int SoftBusManager::FulfillLocalDeviceInfo()
|
||||
fulfillMutex_.unlock();
|
||||
return Constant::SUCCESS;
|
||||
}
|
||||
|
||||
std::string SoftBusManager::ConvertToUniversallyUniqueIdOrFetch(const std::string& nodeId)
|
||||
{
|
||||
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueId(nodeId);
|
||||
if (uuid.empty()) {
|
||||
uuid = GetUniversallyUniqueIdByNodeId(nodeId);
|
||||
}
|
||||
return uuid;
|
||||
}
|
||||
|
||||
std::string SoftBusManager::ConvertToUniqueDeviceIdOrFetch(const std::string& nodeId)
|
||||
{
|
||||
bool isFoundDevice = false;
|
||||
std::string uniqueDeviceId = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceId(nodeId, isFoundDevice);
|
||||
LOGE(ATM_DOMAIN, ATM_TAG, "nodeId %{public}d", isFoundDevice);
|
||||
if (uniqueDeviceId.empty() && isFoundDevice) {
|
||||
std::string udid = GetUniqueDeviceIdByNodeId(nodeId);
|
||||
if (!udid.empty()) {
|
||||
uniqueDeviceId = udid;
|
||||
LOGD(ATM_DOMAIN, ATM_TAG,
|
||||
"udid is empty, use local udid, nodeId(%{public}s)", ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
} else {
|
||||
LOGD(ATM_DOMAIN, ATM_TAG,
|
||||
"Udid and local udid is empty, nodeId(%{public}s)", ConstantCommon::EncryptDevId(nodeId).c_str());
|
||||
}
|
||||
}
|
||||
return uniqueDeviceId;
|
||||
}
|
||||
} // namespace AccessToken
|
||||
} // namespace Security
|
||||
} // namespace OHOS
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "remote_command_manager.h"
|
||||
#include "socket.h"
|
||||
#include "soft_bus_device_connection_listener.h"
|
||||
#include "soft_bus_manager.h"
|
||||
#include "soft_bus_socket_listener.h"
|
||||
#include "test_common.h"
|
||||
#include "token_setproc.h"
|
||||
@@ -134,11 +135,8 @@ void TokenSyncServiceTest::TearDown()
|
||||
void TokenSyncServiceTest::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
|
||||
{
|
||||
std::string networkId = info.networkId;
|
||||
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
if (uuid.empty()) {
|
||||
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
|
||||
}
|
||||
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
|
||||
LOGI(ATM_DOMAIN, ATM_TAG,
|
||||
"networkId: %{public}s, uuid: %{public}s, udid: %{public}s",
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#undef private
|
||||
#include "socket.h"
|
||||
#include "soft_bus_device_connection_listener.h"
|
||||
#include "soft_bus_manager.h"
|
||||
#include "soft_bus_socket_listener.h"
|
||||
#include "test_common.h"
|
||||
#include "token_setproc.h"
|
||||
@@ -143,11 +144,8 @@ void TokenSyncServiceTest::TearDown()
|
||||
void TokenSyncServiceTest::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
|
||||
{
|
||||
std::string networkId = info.networkId;
|
||||
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
if (uuid.empty()) {
|
||||
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
|
||||
}
|
||||
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
|
||||
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
|
||||
|
||||
LOGI(ATM_DOMAIN, ATM_TAG,
|
||||
"networkId: %{public}s, uuid: %{public}s, udid: %{public}s",
|
||||
@@ -1020,18 +1018,18 @@ HWTEST_F(TokenSyncServiceTest, RemoveRemoteDeviceInfo001, TestSize.Level0)
|
||||
|
||||
/**
|
||||
* @tc.name: ConvertToUniversallyUniqueIdOrFetch001
|
||||
* @tc.desc: DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch function test
|
||||
* @tc.desc: SoftBusManager::ConvertToUniversallyUniqueIdOrFetch function test
|
||||
* @tc.type: FUNC
|
||||
* @tc.require:
|
||||
*/
|
||||
HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.Level0)
|
||||
{
|
||||
std::string nodeId;
|
||||
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); // nodeId invalid
|
||||
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); // nodeId invalid
|
||||
|
||||
nodeId = "123";
|
||||
// FindDeviceInfo false
|
||||
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId));
|
||||
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId));
|
||||
|
||||
std::string networkId = "123";
|
||||
std::string universallyUniqueId = "123";
|
||||
@@ -1043,7 +1041,7 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.
|
||||
|
||||
nodeId = "123";
|
||||
// FindDeviceInfo true + universallyUniqueId is not empty
|
||||
DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId);
|
||||
SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId);
|
||||
|
||||
nodeId = uniqueDeviceId;
|
||||
// FindDeviceInfo true + uniqueDeviceId != localDevice false
|
||||
@@ -1057,18 +1055,18 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.
|
||||
|
||||
/**
|
||||
* @tc.name: ConvertToUniqueDeviceIdOrFetch001
|
||||
* @tc.desc: DeviceInfoManager::ConvertToUniqueDeviceIdOrFetch function test
|
||||
* @tc.desc: SoftBusManager::ConvertToUniqueDeviceIdOrFetch function test
|
||||
* @tc.type: FUNC
|
||||
* @tc.require:
|
||||
*/
|
||||
HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level0)
|
||||
{
|
||||
std::string nodeId;
|
||||
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); // nodeId invalid
|
||||
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); // nodeId invalid
|
||||
|
||||
nodeId = "123";
|
||||
// FindDeviceInfo false
|
||||
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId));
|
||||
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId));
|
||||
|
||||
std::string networkId = "123";
|
||||
std::string universallyUniqueId = "123";
|
||||
@@ -1080,7 +1078,7 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level
|
||||
|
||||
nodeId = "123";
|
||||
// FindDeviceInfo true + universallyUniqueId is not empty
|
||||
DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
|
||||
SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
|
||||
|
||||
nodeId = uniqueDeviceId;
|
||||
// FindDeviceInfo true + uniqueDeviceId != localDevice false
|
||||
|
||||
Reference in New Issue
Block a user