/* * Copyright (c) 2023-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "device_manager_service_impl_lite.h" #include #include "dm_anonymous.h" #include "dm_constants.h" #include "dm_log.h" #include "app_manager.h" namespace OHOS { namespace DistributedHardware { DeviceManagerServiceImpl::DeviceManagerServiceImpl() { LOGI("DeviceManagerServiceImpl constructor"); } DeviceManagerServiceImpl::~DeviceManagerServiceImpl() { LOGI("DeviceManagerServiceImpl destructor"); } int32_t DeviceManagerServiceImpl::Initialize(const std::shared_ptr &listener) { LOGI("DeviceManagerServiceImpl Initialize"); if (softbusConnector_ == nullptr) { softbusConnector_ = std::make_shared(); } if (hiChainConnector_ == nullptr) { hiChainConnector_ = std::make_shared(); } if (mineHiChainConnector_ == nullptr) { mineHiChainConnector_ = std::make_shared(); } if (hiChainAuthConnector_ == nullptr) { hiChainAuthConnector_ = std::make_shared(); } if (deviceStateMgr_ == nullptr) { deviceStateMgr_ = std::make_shared(softbusConnector_, listener, hiChainConnector_, hiChainAuthConnector_); } if (credentialMgr_ == nullptr) { credentialMgr_ = std::make_shared(hiChainConnector_, listener); } LOGI("Init success, singleton initialized"); return DM_OK; } void DeviceManagerServiceImpl::Release() { LOGI("DeviceManagerServiceImpl Release"); deviceStateMgr_ = nullptr; softbusConnector_ = nullptr; hiChainConnector_ = nullptr; mineHiChainConnector_ = nullptr; } int32_t DeviceManagerServiceImpl::StartDeviceDiscovery(const std::string &pkgName, const DmSubscribeInfo &subscribeInfo, const std::string &extra) { (void)pkgName; (void)subscribeInfo; (void)extra; return DM_OK; } int32_t DeviceManagerServiceImpl::StartDeviceDiscovery(const std::string &pkgName, const uint16_t subscribeId, const std::string &filterOptions) { (void)pkgName; (void)subscribeId; (void)filterOptions; return DM_OK; } int32_t DeviceManagerServiceImpl::StopDeviceDiscovery(const std::string &pkgName, uint16_t subscribeId) { (void)pkgName; (void)subscribeId; return DM_OK; } int32_t DeviceManagerServiceImpl::PublishDeviceDiscovery(const std::string &pkgName, const DmPublishInfo &publishInfo) { (void)pkgName; (void)publishInfo; return DM_OK; } int32_t DeviceManagerServiceImpl::UnPublishDeviceDiscovery(const std::string &pkgName, int32_t publishId) { (void)pkgName; (void)publishId; return DM_OK; } int32_t DeviceManagerServiceImpl::AuthenticateDevice(const std::string &pkgName, int32_t authType, const std::string &deviceId, const std::string &extra) { (void)pkgName; (void)authType; (void)deviceId; (void)extra; return DM_OK; } int32_t DeviceManagerServiceImpl::UnAuthenticateDevice(const std::string &pkgName, const std::string &networkId) { (void)pkgName; (void)networkId; return DM_OK; } int32_t DeviceManagerServiceImpl::BindDevice(const std::string &pkgName, int32_t authType, const std::string &udidHash, const std::string &bindParam) { (void)pkgName; (void)authType; (void)udidHash; (void)bindParam; return DM_OK; } int32_t DeviceManagerServiceImpl::UnBindDevice(const std::string &pkgName, const std::string &udidHash) { (void)pkgName; (void)udidHash; return DM_OK; } int32_t DeviceManagerServiceImpl::SetUserOperation(std::string &pkgName, int32_t action, const std::string ¶ms) { (void)pkgName; (void)action; (void)params; return DM_OK; } void DeviceManagerServiceImpl::HandleDeviceStatusChange(DmDeviceState devState, DmDeviceInfo &devInfo) { if (deviceStateMgr_ == nullptr) { LOGE("deviceStateMgr_ is nullpter!"); return; } std::string deviceId = GetUdidHashByNetworkId(devInfo.networkId); if (memcpy_s(devInfo.deviceId, DM_MAX_DEVICE_ID_LEN, deviceId.c_str(), deviceId.length()) != 0) { LOGE("get deviceId: %{public}s failed", GetAnonyString(deviceId).c_str()); } deviceStateMgr_->HandleDeviceStatusChange(devState, devInfo); } std::string DeviceManagerServiceImpl::GetUdidHashByNetworkId(const std::string &networkId) { if (softbusConnector_ == nullptr) { LOGE("softbusConnector_ is nullpter!"); return ""; } std::string udid = ""; int32_t ret = softbusConnector_->GetUdidByNetworkId(networkId.c_str(), udid); if (ret != DM_OK) { LOGE("GetUdidByNetworkId failed ret: %{public}d", ret); return ""; } return softbusConnector_->GetDeviceUdidHashByUdid(udid); } int DeviceManagerServiceImpl::OnSessionOpened(int sessionId, int result) { (void)sessionId; (void)result; return DM_OK; } void DeviceManagerServiceImpl::OnSessionClosed(int sessionId) { (void)sessionId; } void DeviceManagerServiceImpl::OnBytesReceived(int sessionId, const void *data, unsigned int dataLen) { (void)sessionId; (void)data; (void)dataLen; } int DeviceManagerServiceImpl::OnPinHolderSessionOpened(int sessionId, int result) { (void)sessionId; (void)result; return DM_OK; } void DeviceManagerServiceImpl::OnPinHolderSessionClosed(int sessionId) { (void)sessionId; } void DeviceManagerServiceImpl::OnPinHolderBytesReceived(int sessionId, const void *data, unsigned int dataLen) { (void)sessionId; (void)data; (void)dataLen; } int32_t DeviceManagerServiceImpl::RequestCredential(const std::string &reqJsonStr, std::string &returnJsonStr) { if (reqJsonStr.empty()) { LOGE("reqJsonStr is empty"); return ERR_DM_INPUT_PARA_INVALID; } if (credentialMgr_== nullptr) { LOGE("credentialMgr_ is nullptr"); return ERR_DM_POINT_NULL; } return credentialMgr_->RequestCredential(reqJsonStr, returnJsonStr); } int32_t DeviceManagerServiceImpl::ImportCredential(const std::string &pkgName, const std::string &credentialInfo) { if (pkgName.empty() || credentialInfo.empty()) { LOGE("DeviceManagerServiceImpl::ImportCredential failed, pkgName is %{public}s, credentialInfo is %{public}s", pkgName.c_str(), GetAnonyString(credentialInfo).c_str()); return ERR_DM_INPUT_PARA_INVALID; } if (credentialMgr_== nullptr) { LOGE("credentialMgr_ is nullptr"); return ERR_DM_POINT_NULL; } return credentialMgr_->ImportCredential(pkgName, credentialInfo); } int32_t DeviceManagerServiceImpl::DeleteCredential(const std::string &pkgName, const std::string &deleteInfo) { if (pkgName.empty() || deleteInfo.empty()) { LOGE("DeviceManagerServiceImpl::DeleteCredential failed, pkgName is %{public}s, deleteInfo is %{public}s", pkgName.c_str(), GetAnonyString(deleteInfo).c_str()); return ERR_DM_INPUT_PARA_INVALID; } if (credentialMgr_== nullptr) { LOGE("credentialMgr_ is nullptr"); return ERR_DM_POINT_NULL; } return credentialMgr_->DeleteCredential(pkgName, deleteInfo); } int32_t DeviceManagerServiceImpl::MineRequestCredential(const std::string &pkgName, std::string &returnJsonStr) { (void)pkgName; if (mineHiChainConnector_->RequestCredential(returnJsonStr) != DM_OK) { LOGE("failed to get device credential from hichain"); return ERR_DM_HICHAIN_CREDENTIAL_REQUEST_FAILED; } return DM_OK; } int32_t DeviceManagerServiceImpl::CheckCredential(const std::string &pkgName, const std::string &reqJsonStr, std::string &returnJsonStr) { (void)pkgName; if (reqJsonStr.empty()) { LOGE("reqJsonStr is empty"); return ERR_DM_INPUT_PARA_INVALID; } if (mineHiChainConnector_->CheckCredential(reqJsonStr, returnJsonStr) != DM_OK) { LOGE("failed to check devices credential status"); return ERR_DM_HICHAIN_CREDENTIAL_CHECK_FAILED; } return DM_OK; } int32_t DeviceManagerServiceImpl::ImportCredential(const std::string &pkgName, const std::string &reqJsonStr, std::string &returnJsonStr) { (void)pkgName; if (reqJsonStr.empty()) { LOGE("reqJsonStr is empty"); return ERR_DM_INPUT_PARA_INVALID; } if (mineHiChainConnector_->ImportCredential(reqJsonStr, returnJsonStr) != DM_OK) { LOGE("failed to import devices credential"); return ERR_DM_HICHAIN_CREDENTIAL_IMPORT_FAILED; } return DM_OK; } int32_t DeviceManagerServiceImpl::DeleteCredential(const std::string &pkgName, const std::string &reqJsonStr, std::string &returnJsonStr) { (void)pkgName; if (reqJsonStr.empty()) { LOGE("reqJsonStr is empty"); return ERR_DM_INPUT_PARA_INVALID; } if (mineHiChainConnector_->DeleteCredential(reqJsonStr, returnJsonStr) != DM_OK) { LOGE("failed to delete devices credential"); return ERR_DM_HICHAIN_CREDENTIAL_DELETE_FAILED; } return DM_OK; } int32_t DeviceManagerServiceImpl::RegisterCredentialCallback(const std::string &pkgName) { (void)pkgName; return DM_OK; } int32_t DeviceManagerServiceImpl::UnRegisterCredentialCallback(const std::string &pkgName) { (void)pkgName; return DM_OK; } int32_t DeviceManagerServiceImpl::RegisterUiStateCallback(const std::string &pkgName) { (void)pkgName; return DM_OK; } int32_t DeviceManagerServiceImpl::UnRegisterUiStateCallback(const std::string &pkgName) { (void)pkgName; return DM_OK; } int32_t DeviceManagerServiceImpl::NotifyEvent(const std::string &pkgName, const int32_t eventId, const std::string &event) { (void)pkgName; (void)eventId; (void)event; return DM_OK; } int32_t DeviceManagerServiceImpl::GetGroupType(std::vector &deviceList) { (void)deviceList; return DM_OK; } int32_t DeviceManagerServiceImpl::GetUdidHashByNetWorkId(const char *networkId, std::string &deviceId) { (void)networkId; (void)deviceId; return DM_OK; } int32_t DeviceManagerServiceImpl::ImportAuthCode(const std::string &pkgName, const std::string &authCode) { (void)pkgName; (void)authCode; return DM_OK; } int32_t DeviceManagerServiceImpl::ExportAuthCode(std::string &authCode) { (void)authCode; return DM_OK; } int32_t DeviceManagerServiceImpl::RegisterPinHolderCallback(const std::string &pkgName) { (void)pkgName; return DM_OK; } int32_t DeviceManagerServiceImpl::CreatePinHolder(const std::string &pkgName, const PeerTargetId &targetId, DmPinType pinType, const std::string &payload) { (void)pkgName; (void)targetId; (void)pinType; (void)payload; return DM_OK; } int32_t DeviceManagerServiceImpl::DestroyPinHolder(const std::string &pkgName, const PeerTargetId &targetId, DmPinType pinType, const std::string &payload) { (void)pkgName; (void)targetId; (void)pinType; (void)payload; return DM_OK; } int32_t DeviceManagerServiceImpl::BindTarget(const std::string &pkgName, const PeerTargetId &targetId, const std::map &bindParam) { (void)pkgName; (void)targetId; (void)bindParam; return DM_OK; } std::unordered_map DeviceManagerServiceImpl::GetAppTrustDeviceIdList( std::string pkgname) { (void)pkgname; std::unordered_map tmp; return tmp; } void DeviceManagerServiceImpl::OnUnbindSessionOpened(int32_t sessionId, PeerSocketInfo info) { (void)sessionId; (void)info; } void DeviceManagerServiceImpl::OnUnbindSessionCloseed(int32_t sessionId) { (void)sessionId; } void DeviceManagerServiceImpl::OnUnbindBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen) { (void)sessionId; (void)data; (void)dataLen; } void DeviceManagerServiceImpl::LoadHardwareFwkService() { } int32_t DeviceManagerServiceImpl::DpAclAdd(const std::string &udid) { (void)udid; return DM_OK; } int32_t DeviceManagerServiceImpl::IsSameAccount(const std::string &udid) { (void)udid; return DM_OK; } void DeviceManagerServiceImpl::AccountCommonEventCallback(int32_t userId, std::string commonEventType) { (void)userId; (void)commonEventType; } void DeviceManagerServiceImpl::ScreenCommonEventCallback(std::string commonEventType) { (void)commonEventType; } int32_t DeviceManagerServiceImpl::CheckIsSameAccount(const DmAccessCaller &caller, const std::string &srcUdid, const DmAccessCallee &callee, const std::string &sinkUdid) { (void)caller; (void)srcUdid; (void)callee; (void)sinkUdid; return DM_OK; } int32_t DeviceManagerServiceImpl::CheckAccessControl(const DmAccessCaller &caller, const std::string &srcUdid, const DmAccessCallee &callee, const std::string &sinkUdid) { (void)caller; (void)srcUdid; (void)callee; (void)sinkUdid; return DM_OK; } void DeviceManagerServiceImpl::HandleDeviceNotTrust(const std::string &udid) { (void)udid; return; } void DeviceManagerServiceImpl::HandleIdentAccountLogout(const std::string &udid, int32_t userId, const std::string &accountId) { (void)udid; (void)userId; (void)accountId; } void DeviceManagerServiceImpl::HandleUserRemoved(int32_t preUserId) { (void)preUserId; } std::map DeviceManagerServiceImpl::GetDeviceIdAndBindType(int32_t userId, const std::string &accountId) { (void)userId; (void)accountId; return std::map {}; } int32_t DeviceManagerServiceImpl::StopAuthenticateDevice(const std::string &pkgName) { (void)pkgName; return 0; } void DeviceManagerServiceImpl::HandleDeviceScreenStatusChange(DmDeviceInfo &devInfo) { (void)devInfo; return; } void DeviceManagerServiceImpl::HandleCredentialAuthStatus(const std::string &proofInfo, uint16_t deviceTypeId, int32_t errcode) { (void)proofInfo; (void)deviceTypeId; (void)errcode; return; } extern "C" IDeviceManagerServiceImpl *CreateDMServiceObject(void) { return new DeviceManagerServiceImpl; } } // namespace DistributedHardware } // namespace OHOS