diff --git a/services/distributeddataservice/adapter/communicator/src/softbus_adapter_standard.cpp b/services/distributeddataservice/adapter/communicator/src/softbus_adapter_standard.cpp index e9450d6a1c7c5b030e5efcc5e6f13f047b70da85..e37d355a8a4eb50a832039d5c8b35bc9a188916f 100755 --- a/services/distributeddataservice/adapter/communicator/src/softbus_adapter_standard.cpp +++ b/services/distributeddataservice/adapter/communicator/src/softbus_adapter_standard.cpp @@ -149,7 +149,7 @@ void SoftBusAdapter::Init() int i = 0; constexpr int RETRY_TIMES = 300; while (i++ < RETRY_TIMES) { - int32_t errNo = RegNodeDeviceStateCb("com.huawei.hwddmp", &nodeStateCb_); + int32_t errNo = RegNodeDeviceStateCb("ohos.distributeddata", &nodeStateCb_); if (errNo != SOFTBUS_OK) { ZLOGE("RegNodeDeviceStateCb fail %{public}d, time:%{public}d", errNo, i); std::this_thread::sleep_for(std::chrono::seconds(1)); @@ -248,7 +248,7 @@ std::vector SoftBusAdapter::GetDeviceList() const int32_t infoNum = 0; dis.clear(); - int32_t ret = GetAllNodeDeviceInfo("com.huawei.hwddmp", &info, &infoNum); + int32_t ret = GetAllNodeDeviceInfo("ohos.distributeddata", &info, &infoNum); if (ret != SOFTBUS_OK) { ZLOGE("GetAllNodeDeviceInfo error"); return dis; @@ -273,7 +273,7 @@ DeviceInfo SoftBusAdapter::GetLocalDevice() } NodeBasicInfo info; - int32_t ret = GetLocalNodeDeviceInfo("com.huawei.hwddmp", &info); + int32_t ret = GetLocalNodeDeviceInfo("ohos.distributeddata", &info); if (ret != SOFTBUS_OK) { ZLOGE("GetLocalNodeDeviceInfo error"); return DeviceInfo(); @@ -288,7 +288,7 @@ DeviceInfo SoftBusAdapter::GetLocalDevice() std::string SoftBusAdapter::GetUuidByNodeId(const std::string &nodeId) const { char uuid[ID_BUF_LEN] = {0}; - int32_t ret = GetNodeKeyInfo("com.huawei.hwddmp", nodeId.c_str(), + int32_t ret = GetNodeKeyInfo("ohos.distributeddata", nodeId.c_str(), NodeDeivceInfoKey::NODE_KEY_UUID, reinterpret_cast(uuid), ID_BUF_LEN); if (ret != SOFTBUS_OK) { ZLOGW("GetNodeKeyInfo error, nodeId:%{public}s", ToBeAnonymous(nodeId).c_str()); @@ -300,7 +300,7 @@ std::string SoftBusAdapter::GetUuidByNodeId(const std::string &nodeId) const std::string SoftBusAdapter::GetUdidByNodeId(const std::string &nodeId) const { char udid[ID_BUF_LEN] = {0}; - int32_t ret = GetNodeKeyInfo("com.huawei.hwddmp", nodeId.c_str(), + int32_t ret = GetNodeKeyInfo("ohos.distributeddata", nodeId.c_str(), NodeDeivceInfoKey::NODE_KEY_UDID, reinterpret_cast(udid), ID_BUF_LEN); if (ret != SOFTBUS_OK) { ZLOGW("GetNodeKeyInfo error, nodeId:%{public}s", ToBeAnonymous(nodeId).c_str()); @@ -313,7 +313,7 @@ DeviceInfo SoftBusAdapter::GetLocalBasicInfo() const { ZLOGD("begin"); NodeBasicInfo info; - int32_t ret = GetLocalNodeDeviceInfo("com.huawei.hwddmp", &info); + int32_t ret = GetLocalNodeDeviceInfo("ohos.distributeddata", &info); if (ret != SOFTBUS_OK) { ZLOGE("GetLocalNodeDeviceInfo error"); return DeviceInfo(); @@ -333,7 +333,7 @@ std::vector SoftBusAdapter::GetRemoteNodesBasicInfo() const int32_t infoNum = 0; dis.clear(); - int32_t ret = GetAllNodeDeviceInfo("com.huawei.hwddmp", &info, &infoNum); + int32_t ret = GetAllNodeDeviceInfo("ohos.distributeddata", &info, &infoNum); if (ret != SOFTBUS_OK) { ZLOGE("GetAllNodeDeviceInfo error"); return dis; @@ -530,13 +530,13 @@ void SoftBusAdapter::SetMessageTransFlag(const PipeInfo &pipeInfo, bool flag) int SoftBusAdapter::CreateSessionServerAdapter(const std::string &sessionName) { ZLOGD("begin"); - return CreateSessionServer("com.huawei.hwddmp", sessionName.c_str(), &sessionListener_); + return CreateSessionServer("ohos.distributeddata", sessionName.c_str(), &sessionListener_); } int SoftBusAdapter::RemoveSessionServerAdapter(const std::string &sessionName) const { ZLOGD("begin"); - return RemoveSessionServer("com.huawei.hwddmp", sessionName.c_str()); + return RemoveSessionServer("ohos.distributeddata", sessionName.c_str()); } void SoftBusAdapter::InsertSession(const std::string &sessionName) diff --git a/services/distributeddataservice/app/BUILD.gn b/services/distributeddataservice/app/BUILD.gn index da93bd522066164f57d8e8baa45b2f4f6d0a8ddd..1003b306ca901351c7998dde84037a89d5cf54e5 100755 --- a/services/distributeddataservice/app/BUILD.gn +++ b/services/distributeddataservice/app/BUILD.gn @@ -54,6 +54,7 @@ config("module_private_config") { "include", "src", "//third_party/json/single_include", + "//base/security/permission/interfaces/innerkits/permission_standard/permissionsdk/main/cpp/include", ] cflags = [ "-Wno-multichar" ] @@ -111,6 +112,7 @@ ohos_shared_library("distributeddataservice") { "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", "startup_l2:syspara", + "permission_standard:libpermissionsdk_standard", ] subsystem_name = "distributeddatamgr" diff --git a/services/distributeddataservice/app/src/kvstore_data_service.cpp b/services/distributeddataservice/app/src/kvstore_data_service.cpp index 70b440067c381203ff3855aeabbf5b65f722da1e..d0d01d1510df70a2875d8c54084b2ff5d2cdccf4 100644 --- a/services/distributeddataservice/app/src/kvstore_data_service.cpp +++ b/services/distributeddataservice/app/src/kvstore_data_service.cpp @@ -32,16 +32,18 @@ #include "dds_trace.h" #include "device_change_listener_impl.h" #include "device_kvstore_impl.h" +#include "if_system_ability_manager.h" +#include "iservice_registry.h" #include "kvstore_account_observer.h" #include "kvstore_app_accessor.h" #include "kvstore_meta_manager.h" #include "kvstore_utils.h" #include "log_print.h" +#include "permission/permission.h" +#include "permission/permission_kit.h" #include "permission_validator.h" #include "process_communicator_impl.h" #include "reporter.h" -#include "if_system_ability_manager.h" -#include "iservice_registry.h" #include "system_ability_definition.h" #include "uninstaller/uninstaller.h" @@ -49,6 +51,7 @@ namespace OHOS { namespace DistributedKv { using json = nlohmann::json; using namespace std::chrono; +using namespace OHOS::Security::Permission; REGISTER_SYSTEM_ABILITY_BY_ID(KvStoreDataService, DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, true); @@ -918,6 +921,34 @@ int KvStoreDataService::Dump(int fd, const std::vector &args) return 0; } +const std::string PKGNAME = "ohos.distributeddata"; +const std::string APP_DATASYNC_PERMISSION = "ohos.permission.DISTRIBUTED_DATASYNC"; +const std::string LABEL = "distributeddata"; +const std::string DESCRIPTION = "distributeddata service"; +const int LABEL_ID = 9527; +const int DESCRIPTION_ID = 9528; + +void KvStoreDataService::AddPermission() const +{ + std::vector permissionDefs { + { + .permissionName = APP_DATASYNC_PERMISSION, + .bundleName = PKGNAME, + .grantMode = GrantMode::SYSTEM_GRANT, + .availableScope = AVAILABLE_SCOPE_ALL, + .label = LABEL, + .labelId = LABEL_ID, + .description = DESCRIPTION, + .descriptionId = DESCRIPTION_ID + } + }; + PermissionKit::AddDefPermissions(permissionDefs); + std::vector permissions; + permissions.push_back(APP_DATASYNC_PERMISSION); + PermissionKit::AddSystemGrantedReqPermissions(PKGNAME, permissions); + PermissionKit::GrantSystemGrantedPermission(PKGNAME, APP_DATASYNC_PERMISSION); +} + void KvStoreDataService::OnStart() { ZLOGI("distributeddata service onStart"); @@ -940,6 +971,9 @@ void KvStoreDataService::OnStart() } Uninstaller::GetInstance().Init(this); + // add softbus permission. + AddPermission(); + // Initialize meta db delegate manager. KvStoreMetaManager::GetInstance().InitMetaListener([this](const KvStoreMetaData &metaData) { if (!metaData.isDirty) { diff --git a/services/distributeddataservice/app/src/kvstore_data_service.h b/services/distributeddataservice/app/src/kvstore_data_service.h index 03eead02f496e9ec41a7edcc71ffb779fc201ea9..fcec10db5ac06c908db8cae02b205de9fe4d5961 100755 --- a/services/distributeddataservice/app/src/kvstore_data_service.h +++ b/services/distributeddataservice/app/src/kvstore_data_service.h @@ -120,6 +120,8 @@ private: sptr deathRecipient_; }; + void AddPermission() const; + void Initialize(); Status AppExit(const AppId &appId); diff --git a/services/distributeddataservice/app/test/BUILD.gn b/services/distributeddataservice/app/test/BUILD.gn index 8e087294ffe58426bc3ecd7a6adb9ddee141f201..7fce5a389da5f9b912a7102d9ab1b210a42c5f74 100755 --- a/services/distributeddataservice/app/test/BUILD.gn +++ b/services/distributeddataservice/app/test/BUILD.gn @@ -72,6 +72,7 @@ ohos_unittest("KvStoreImplLogicalIsolationTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -124,6 +125,7 @@ ohos_unittest("KvStoreImplPhysicalIsolationTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -176,6 +178,7 @@ ohos_unittest("KvStoreDataServiceTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -228,6 +231,7 @@ ohos_unittest("KvStoreBackupTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -262,6 +266,7 @@ ohos_unittest("KvStoreFlowCtrlManagerTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -307,6 +312,7 @@ ohos_unittest("KvStoreSyncManagerTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] deps = [ @@ -375,6 +381,7 @@ ohos_unittest("KvStoreUninstallerTest") { "ipc:ipc_core", "safwk:system_ability_fwk", "samgr_L2:samgr_proxy", + "permission_standard:libpermissionsdk_standard", ] }