From ea297c2f5010a0ba55f3a8d87f69c6167dbf05c1 Mon Sep 17 00:00:00 2001 From: lanhaoyu Date: Mon, 11 Aug 2025 12:30:38 +0800 Subject: [PATCH] 0811account Signed-off-by: lanhaoyu --- services/bundlemgr/include/account_helper.h | 2 + services/bundlemgr/include/bundle_data_mgr.h | 13 ++++--- services/bundlemgr/src/account_helper.cpp | 16 +++++++- services/bundlemgr/src/aot/aot_handler.cpp | 6 +-- services/bundlemgr/src/bundle_cache_mgr.cpp | 6 +-- services/bundlemgr/src/bundle_data_mgr.cpp | 14 ++----- .../bundlemgr/src/bundle_mgr_host_impl.cpp | 25 ++++++------ .../src/mock_account_helper_constraint.cpp | 14 +++++++ .../bms_bundle_data_group_test.cpp | 6 +-- .../bms_bundle_free_install_test.cpp | 12 +++--- .../bms_bundle_installer_test.cpp | 2 +- .../bms_bundle_data_mgr_test.cpp | 12 +++--- .../bms_bundle_kit_service_test.cpp | 39 ++++++++++++------- .../bms_bundle_kit_service_test_two.cpp | 6 ++- .../bms_bundle_manager_test_two.cpp | 2 +- 15 files changed, 109 insertions(+), 66 deletions(-) diff --git a/services/bundlemgr/include/account_helper.h b/services/bundlemgr/include/account_helper.h index 865e0718ca..f53fcb401b 100644 --- a/services/bundlemgr/include/account_helper.h +++ b/services/bundlemgr/include/account_helper.h @@ -27,6 +27,8 @@ public: static int32_t GetCurrentActiveUserId(); + static int32_t GetUserIdByCallerType(); + static bool IsOsAccountVerified(const int32_t userId); static int32_t GetOsAccountLocalIdFromUid(const int32_t callingUid); diff --git a/services/bundlemgr/include/bundle_data_mgr.h b/services/bundlemgr/include/bundle_data_mgr.h index ee7bc02f50..4c62ba705c 100644 --- a/services/bundlemgr/include/bundle_data_mgr.h +++ b/services/bundlemgr/include/bundle_data_mgr.h @@ -804,17 +804,21 @@ public: * @param bundleName Indicates the bundleName. * @param moduleName Indicates the moduleName. * @param isEnable Set module isRemovable is enable. + * @param userId Indicates the user ID. * @return Returns true if the module isRemovable is set success; returns false otherwise. */ - bool SetModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool isEnable); + bool SetModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool isEnable, + int32_t userId); /** * @brief Get Module isRemovable by bundleName and moduleName. * @param bundleName Indicates the application bundle name to be queried. * @param moduleName Indicates the moduleName. * @param isRemovable Indicates the module whether is removable. + * @param userId Indicates the user ID. * @return Returns ERR_OK if the module isRemovable is successfully obtained; returns other ErrCode otherwise. */ - ErrCode IsModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool &isRemovable) const; + ErrCode IsModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool &isRemovable, + int32_t userId) const; #ifdef BUNDLE_FRAMEWORK_FREE_INSTALL int64_t GetBundleSpaceSize(const std::string &bundleName) const; @@ -995,8 +999,7 @@ public: const std::map &groupIdMap, const std::map> &needProcessGroupInfoBundleNames); bool QueryDataGroupInfos(const std::string &bundleName, int32_t userId, std::vector &infos) const; - bool GetGroupDir(const std::string &dataGroupId, std::string &dir, - int32_t userId = Constants::UNSPECIFIED_USERID) const; + bool GetGroupDir(const std::string &dataGroupId, std::string &dir, int32_t userId) const; void GenerateDataGroupUuidAndUid(DataGroupInfo &dataGroupInfo, int32_t userId, std::unordered_set &uniqueIdSet) const; void GenerateDataGroupInfos(const std::string &bundleName, @@ -1021,7 +1024,7 @@ public: ErrCode GetInnerBundleInfoAndIndexByUid(const int32_t uid, InnerBundleInfo &innerBundleInfo, int32_t &appIndex) const; std::string GetModuleNameByBundleAndAbility(const std::string& bundleName, const std::string& abilityName); - const std::vector GetRecoverablePreInstallBundleInfos(); + const std::vector GetRecoverablePreInstallBundleInfos(int32_t userId); ErrCode SetAdditionalInfo(const std::string& bundleName, const std::string& additionalInfo) const; ErrCode GetAppServiceHspBundleInfo(const std::string &bundleName, BundleInfo &bundleInfo); ErrCode CreateBundleDataDir(int32_t userId); diff --git a/services/bundlemgr/src/account_helper.cpp b/services/bundlemgr/src/account_helper.cpp index dc5a6b66ea..25864436c9 100644 --- a/services/bundlemgr/src/account_helper.cpp +++ b/services/bundlemgr/src/account_helper.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 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 @@ -23,6 +23,8 @@ #ifdef ACCOUNT_ENABLE #include "os_account_manager.h" #endif +#include "accesstoken_kit.h" +#include "ipc_skeleton.h" namespace OHOS { namespace AppExecFwk { @@ -73,6 +75,18 @@ int32_t AccountHelper::GetCurrentActiveUserId() #endif } +int32_t AccountHelper::GetUserIdByCallerType() +{ + auto callerToken = IPCSkeleton::GetCallingTokenID(); + auto tokenType = Security::AccessToken::AccessTokenKit::GetTokenTypeFlag(callerToken); + if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE || + tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_SHELL) { + return AccountHelper::GetCurrentActiveUserId(); + } + + return AccountHelper::GetOsAccountLocalIdFromUid(IPCSkeleton::GetCallingUid()); +} + bool AccountHelper::IsOsAccountVerified(const int32_t userId) { #ifdef ACCOUNT_ENABLE diff --git a/services/bundlemgr/src/aot/aot_handler.cpp b/services/bundlemgr/src/aot/aot_handler.cpp index 6de0511e89..c01bce26b4 100644 --- a/services/bundlemgr/src/aot/aot_handler.cpp +++ b/services/bundlemgr/src/aot/aot_handler.cpp @@ -145,7 +145,7 @@ std::string AOTHandler::FindArkProfilePath(const std::string &bundleName, const APP_LOGE("dataMgr is null"); return Constants::EMPTY_STRING; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); + int32_t userId = AccountHelper::GetUserIdByCallerType(); if (userId <= 0) { userId = Constants::START_USERID; } @@ -192,7 +192,7 @@ std::optional AOTHandler::BuildAOTArgs(const InnerBundleInfo &info, con installedInfo.GetInternalDependentHspInfo(moduleName, aotArgs.hspVector); InnerBundleUserInfo newInnerBundleUserInfo; - int32_t curActiveUserId = AccountHelper::GetCurrentActiveUserId(); + int32_t curActiveUserId = AccountHelper::GetUserIdByCallerType(); int32_t activeUserId = curActiveUserId <= 0 ? Constants::START_USERID : curActiveUserId; if (!installedInfo.GetInnerBundleUserInfo(activeUserId, newInnerBundleUserInfo)) { APP_LOGE("bundle(%{public}s) get user (%{public}d) failed", @@ -434,7 +434,7 @@ ErrCode AOTHandler::HandleCopyAp(const std::string &bundleName, bool isAllBundle if (errCode != ERR_OK) { return errCode; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); + int32_t userId = AccountHelper::GetUserIdByCallerType(); if (userId <= 0) { userId = Constants::START_USERID; } diff --git a/services/bundlemgr/src/bundle_cache_mgr.cpp b/services/bundlemgr/src/bundle_cache_mgr.cpp index f61a07af56..90b265cef9 100644 --- a/services/bundlemgr/src/bundle_cache_mgr.cpp +++ b/services/bundlemgr/src/bundle_cache_mgr.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2024-2025 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 @@ -102,7 +102,7 @@ ErrCode BundleCacheMgr::GetAllBundleCacheStat(const sptr return ERR_BUNDLE_MANAGER_INTERNAL_ERROR; } - auto userId = AccountHelper::GetCurrentActiveUserId(); + auto userId = AccountHelper::GetUserIdByCallerType(); if (userId <= Constants::U1) { APP_LOGE("Invalid userid: %{public}d", userId); return ERR_BUNDLE_MANAGER_INVALID_PARAMETER; @@ -165,7 +165,7 @@ ErrCode BundleCacheMgr::CleanAllBundleCache(const sptr pr if (dataMgr == nullptr) { return ERR_BUNDLE_MANAGER_INTERNAL_ERROR; } - auto userId = AccountHelper::GetCurrentActiveUserId(); + auto userId = AccountHelper::GetUserIdByCallerType(); if (userId <= Constants::U1) { APP_LOGE("Invalid userid: %{public}d", userId); return ERR_BUNDLE_MANAGER_INVALID_PARAMETER; diff --git a/services/bundlemgr/src/bundle_data_mgr.cpp b/services/bundlemgr/src/bundle_data_mgr.cpp index abdc0648b5..cbedd02762 100644 --- a/services/bundlemgr/src/bundle_data_mgr.cpp +++ b/services/bundlemgr/src/bundle_data_mgr.cpp @@ -3877,10 +3877,9 @@ ErrCode BundleDataMgr::GetInnerBundleInfoByUid(const int32_t uid, InnerBundleInf return GetInnerBundleInfoAndIndexByUid(uid, innerBundleInfo, appIndex); } -const std::vector BundleDataMgr::GetRecoverablePreInstallBundleInfos() +const std::vector BundleDataMgr::GetRecoverablePreInstallBundleInfos(int32_t userId) { std::vector recoverablePreInstallBundleInfos; - int32_t userId = AccountHelper::GetCurrentActiveUserId(); if (userId == Constants::INVALID_USERID) { APP_LOGW("userId %{public}d is invalid", userId); return recoverablePreInstallBundleInfos; @@ -4185,7 +4184,7 @@ bool BundleDataMgr::GetAllBundleStats(const int32_t userId, std::vector #ifdef BUNDLE_FRAMEWORK_FREE_INSTALL int64_t BundleDataMgr::GetBundleSpaceSize(const std::string &bundleName) const { - return GetBundleSpaceSize(bundleName, AccountHelper::GetCurrentActiveUserId()); + return GetBundleSpaceSize(bundleName, AccountHelper::GetUserIdByCallerType()); } int64_t BundleDataMgr::GetBundleSpaceSize(const std::string &bundleName, int32_t userId) const @@ -4892,13 +4891,12 @@ ErrCode BundleDataMgr::SetApplicationEnabled(const std::string &bundleName, return ERR_OK; } -bool BundleDataMgr::SetModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool isEnable) +bool BundleDataMgr::SetModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool isEnable, int32_t userId) { if (bundleName.empty() || moduleName.empty()) { APP_LOGW("bundleName or moduleName is empty"); return false; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); if (userId == Constants::INVALID_USERID) { APP_LOGW("get a invalid userid, bundleName: %{public}s", bundleName.c_str()); return false; @@ -4932,13 +4930,12 @@ bool BundleDataMgr::SetModuleRemovable(const std::string &bundleName, const std: } ErrCode BundleDataMgr::IsModuleRemovable(const std::string &bundleName, const std::string &moduleName, - bool &isRemovable) const + bool &isRemovable, int32_t userId) const { if (bundleName.empty() || moduleName.empty()) { APP_LOGW("bundleName or moduleName is empty"); return ERR_BUNDLE_MANAGER_PARAM_ERROR; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); if (userId == Constants::INVALID_USERID) { APP_LOGW("get a invalid userid, bundleName: %{public}s", bundleName.c_str()); return ERR_BUNDLE_MANAGER_PARAM_ERROR; @@ -8326,9 +8323,6 @@ bool BundleDataMgr::QueryDataGroupInfos(const std::string &bundleName, int32_t u bool BundleDataMgr::GetGroupDir(const std::string &dataGroupId, std::string &dir, int32_t userId) const { - if (userId == Constants::UNSPECIFIED_USERID) { - userId = AccountHelper::GetCurrentActiveUserId(); - } std::string uuid; if (BundlePermissionMgr::IsSystemApp() && BundlePermissionMgr::VerifyCallingPermissionForAll(Constants::PERMISSION_GET_BUNDLE_INFO_PRIVILEGED)) { diff --git a/services/bundlemgr/src/bundle_mgr_host_impl.cpp b/services/bundlemgr/src/bundle_mgr_host_impl.cpp index dabe71106e..8cf4320bf9 100644 --- a/services/bundlemgr/src/bundle_mgr_host_impl.cpp +++ b/services/bundlemgr/src/bundle_mgr_host_impl.cpp @@ -1626,7 +1626,7 @@ ErrCode BundleMgrHostImpl::CleanBundleCacheFilesAutomatic(uint64_t cacheSize) } // Get current active userId - int32_t currentUserId = AccountHelper::GetCurrentActiveUserId(); + int32_t currentUserId = AccountHelper::GetUserIdByCallerType(); APP_LOGI("current active userId is %{public}d", currentUserId); if (currentUserId == Constants::INVALID_USERID) { APP_LOGE("currentUserId %{public}d is invalid", currentUserId); @@ -2431,6 +2431,7 @@ bool BundleMgrHostImpl::DumpShortcutInfo( ErrCode BundleMgrHostImpl::IsModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool &isRemovable) { + int32_t userId = AccountHelper::GetUserIdByCallerType(); // check permission if (!BundlePermissionMgr::IsSystemApp()) { APP_LOGE("non-system app calling system api"); @@ -2445,7 +2446,7 @@ ErrCode BundleMgrHostImpl::IsModuleRemovable(const std::string &bundleName, cons APP_LOGE("DataMgr is nullptr"); return ERR_APPEXECFWK_SERVICE_INTERNAL_ERROR; } - return dataMgr->IsModuleRemovable(bundleName, moduleName, isRemovable); + return dataMgr->IsModuleRemovable(bundleName, moduleName, isRemovable, userId); } bool BundleMgrHostImpl::SetModuleRemovable(const std::string &bundleName, const std::string &moduleName, bool isEnable) @@ -2459,7 +2460,8 @@ bool BundleMgrHostImpl::SetModuleRemovable(const std::string &bundleName, const APP_LOGE("DataMgr is nullptr"); return false; } - return dataMgr->SetModuleRemovable(bundleName, moduleName, isEnable); + int32_t userId = AccountHelper::GetUserIdByCallerType(); + return dataMgr->SetModuleRemovable(bundleName, moduleName, isEnable, userId); } bool BundleMgrHostImpl::GetModuleUpgradeFlag(const std::string &bundleName, const std::string &moduleName) @@ -2873,7 +2875,7 @@ bool BundleMgrHostImpl::GetFormsInfoByModule( bool BundleMgrHostImpl::GetShortcutInfos( const std::string &bundleName, std::vector &shortcutInfos) { - int32_t currentUserId = AccountHelper::GetCurrentActiveUserId(); + int32_t currentUserId = AccountHelper::GetUserIdByCallerType(); APP_LOGD("current active userId is %{public}d", currentUserId); if (currentUserId == Constants::INVALID_USERID) { APP_LOGW("current userId is invalid"); @@ -3191,7 +3193,7 @@ const OHOS::sptr BundleMgrHostImpl::GetDistributedBundleMgrServ #ifdef BUNDLE_FRAMEWORK_FREE_INSTALL const std::shared_ptr BundleMgrHostImpl::GetConnectAbilityMgrFromService() { - int32_t currentUserId = AccountHelper::GetCurrentActiveUserId(); + int32_t currentUserId = AccountHelper::GetUserIdByCallerType(); return DelayedSingleton::GetInstance()->GetConnectAbility(currentUserId); } #endif @@ -4305,7 +4307,8 @@ bool BundleMgrHostImpl::GetGroupDir(const std::string &dataGroupId, std::string APP_LOGE("dataMgr is nullptr"); return false; } - return dataMgr->GetGroupDir(dataGroupId, dir); + int32_t userId = AccountHelper::GetUserIdByCallerType(); + return dataMgr->GetGroupDir(dataGroupId, dir, userId); } void BundleMgrHostImpl::SetBrokerServiceStatus(bool isServiceExisted) @@ -4743,7 +4746,7 @@ ErrCode BundleMgrHostImpl::CheckSandboxPath(std::vector &sourcePath ErrCode BundleMgrHostImpl::MigrateDataUserAuthentication() { #ifdef BMS_USER_AUTH_FRAMEWORK_ENABLED - int32_t userId = AccountHelper::GetCurrentActiveUserId(); + int32_t userId = AccountHelper::GetUserIdByCallerType(); if (userId == Constants::INVALID_USERID) { APP_LOGE("userId %{public}d is invalid", userId); return ERR_BUNDLE_MANAGER_INVALID_USER_ID; @@ -4841,13 +4844,13 @@ ErrCode BundleMgrHostImpl::GetRecoverableApplicationInfo( APP_LOGE("dataMgr is nullptr"); return ERR_BUNDLE_MANAGER_INTERNAL_ERROR; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); + int32_t userId = AccountHelper::GetUserIdByCallerType(); if (userId == Constants::INVALID_USERID) { APP_LOGE("userId %{public}d is invalid", userId); return ERR_BUNDLE_MANAGER_INVALID_USER_ID; } BmsExtensionDataMgr bmsExtensionDataMgr; - std::vector recoverableBundleInfos = dataMgr->GetRecoverablePreInstallBundleInfos(); + std::vector recoverableBundleInfos = dataMgr->GetRecoverablePreInstallBundleInfos(userId); for (auto recoverableBundleInfo: recoverableBundleInfos) { std::string bundleName = recoverableBundleInfo.GetBundleName(); if (bmsExtensionDataMgr.IsAppInBlocklist(bundleName, userId)) { @@ -4883,7 +4886,7 @@ ErrCode BundleMgrHostImpl::GetUninstalledBundleInfo(const std::string bundleName APP_LOGE("dataMgr is nullptr"); return ERR_BUNDLE_MANAGER_INTERNAL_ERROR; } - int32_t userId = AccountHelper::GetCurrentActiveUserId(); + int32_t userId = AccountHelper::GetUserIdByCallerType(); if (userId == Constants::INVALID_USERID) { APP_LOGE("userId %{public}d is invalid", userId); return ERR_BUNDLE_MANAGER_INVALID_USER_ID; @@ -5063,7 +5066,7 @@ ErrCode BundleMgrHostImpl::SwitchUninstallState(const std::string &bundleName, c return resCode; } AbilityInfo mainAbilityInfo; - int32_t currentActiveUserId = AccountHelper::GetCurrentActiveUserId(); + int32_t currentActiveUserId = AccountHelper::GetUserIdByCallerType(); innerBundleInfo.GetMainAbilityInfo(mainAbilityInfo); NotifyBundleEvents installRes = { .isModuleUpdate = false, diff --git a/services/bundlemgr/test/mock/src/mock_account_helper_constraint.cpp b/services/bundlemgr/test/mock/src/mock_account_helper_constraint.cpp index 99907e641e..55418f3f1e 100644 --- a/services/bundlemgr/test/mock/src/mock_account_helper_constraint.cpp +++ b/services/bundlemgr/test/mock/src/mock_account_helper_constraint.cpp @@ -23,6 +23,8 @@ #ifdef ACCOUNT_ENABLE #include "os_account_manager.h" #endif +#include "accesstoken_kit.h" +#include "ipc_skeleton.h" namespace OHOS { namespace AppExecFwk { @@ -73,6 +75,18 @@ int32_t AccountHelper::GetCurrentActiveUserId() #endif } +int32_t AccountHelper::GetUserIdByCallerType() +{ + auto callerToken = IPCSkeleton::GetCallingTokenID(); + auto tokenType = Security::AccessToken::AccessTokenKit::GetTokenTypeFlag(callerToken); + if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE || + tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_SHELL) { + return AccountHelper::GetCurrentActiveUserId(); + } + + return AccountHelper::GetOsAccountLocalIdFromUid(IPCSkeleton::GetCallingUid()); +} + bool AccountHelper::IsOsAccountVerified(const int32_t userId) { #ifdef ACCOUNT_ENABLE diff --git a/services/bundlemgr/test/unittest/bms_bundle_data_group_test/bms_bundle_data_group_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_data_group_test/bms_bundle_data_group_test.cpp index 211f0189b8..427c9a5534 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_data_group_test/bms_bundle_data_group_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_data_group_test/bms_bundle_data_group_test.cpp @@ -303,7 +303,7 @@ HWTEST_F(BmsBundleDataGroupTest, GetGroupDir_0020, Function | SmallTest | Level0 setuid(TEST_UID); ScopeGuard uidGuard([&] { setuid(Constants::ROOT_UID); }); std::string dir; - bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, Constants::UNSPECIFIED_USERID); + bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, USERID); EXPECT_TRUE(res); EXPECT_FALSE(dir.empty()); } @@ -328,7 +328,7 @@ HWTEST_F(BmsBundleDataGroupTest, GetGroupDir_0030, Function | SmallTest | Level0 setuid(TEST_UID); ScopeGuard uidGuard([&] { setuid(Constants::ROOT_UID); }); std::string dir; - bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, Constants::UNSPECIFIED_USERID); + bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, USERID); EXPECT_FALSE(res); EXPECT_TRUE(dir.empty()); } @@ -346,7 +346,7 @@ HWTEST_F(BmsBundleDataGroupTest, GetGroupDir_0040, Function | SmallTest | Level0 setuid(TEST_UID); ScopeGuard uidGuard([&] { setuid(Constants::ROOT_UID); }); std::string dir; - bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, Constants::UNSPECIFIED_USERID); + bool res = dataMgr->GetGroupDir(DATA_GROUP_ID_TEST_ONE, dir, USERID); EXPECT_FALSE(res); EXPECT_TRUE(dir.empty()); } diff --git a/services/bundlemgr/test/unittest/bms_bundle_free_install_test/bms_bundle_free_install_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_free_install_test/bms_bundle_free_install_test.cpp index b42b4d3346..0cb8114bfc 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_free_install_test/bms_bundle_free_install_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_free_install_test/bms_bundle_free_install_test.cpp @@ -290,7 +290,7 @@ HWTEST_F(BmsBundleFreeInstallTest, BmsBundleFreeInstallTest_0001, Function | Sma auto bundleMgr = GetBundleDataMgr(); if (bundleMgr != nullptr) { bool isRemovable = false; - ErrCode ret = bundleMgr->IsModuleRemovable("", "", isRemovable); + ErrCode ret = bundleMgr->IsModuleRemovable("", "", isRemovable, USERID); EXPECT_EQ(ret, ERR_BUNDLE_MANAGER_PARAM_ERROR); EXPECT_FALSE(isRemovable); } @@ -310,7 +310,7 @@ HWTEST_F(BmsBundleFreeInstallTest, BmsBundleFreeInstallTest_0002, Function | Sma auto bundleMgr = GetBundleDataMgr(); if (bundleMgr != nullptr) { bool isRemovable = false; - ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME_DEMO, MODULE_NAME_TEST, isRemovable); + ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME_DEMO, MODULE_NAME_TEST, isRemovable, USERID); EXPECT_EQ(ret, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); EXPECT_FALSE(isRemovable); } @@ -332,7 +332,7 @@ HWTEST_F(BmsBundleFreeInstallTest, BmsBundleFreeInstallTest_0003, Function | Sma auto bundleMgr = GetBundleDataMgr(); if (bundleMgr != nullptr) { bool isRemovable = false; - ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_NOT_EXIST, isRemovable); + ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_NOT_EXIST, isRemovable, USERID); EXPECT_EQ(ret, ERR_BUNDLE_MANAGER_MODULE_NOT_EXIST); EXPECT_FALSE(isRemovable); } @@ -354,7 +354,7 @@ HWTEST_F(BmsBundleFreeInstallTest, BmsBundleFreeInstallTest_0004, Function | Sma auto bundleMgr = GetBundleDataMgr(); if (bundleMgr != nullptr) { bool isRemovable = false; - ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, isRemovable); + ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, isRemovable, USERID); EXPECT_EQ(ret, ERR_OK); EXPECT_FALSE(isRemovable); } @@ -375,10 +375,10 @@ HWTEST_F(BmsBundleFreeInstallTest, BmsBundleFreeInstallTest_0005, Function | Sma auto bundleMgr = GetBundleDataMgr(); if (bundleMgr != nullptr) { - bool result = bundleMgr->SetModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, true); + bool result = bundleMgr->SetModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, true, USERID); EXPECT_TRUE(result); bool isRemovable = false; - ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, isRemovable); + ErrCode ret = bundleMgr->IsModuleRemovable(BUNDLE_NAME, MODULE_NAME_TEST, isRemovable, USERID); EXPECT_EQ(ret, ERR_OK); EXPECT_TRUE(isRemovable); } diff --git a/services/bundlemgr/test/unittest/bms_bundle_installer_test/bms_bundle_installer_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_installer_test/bms_bundle_installer_test.cpp index f22c7ce01d..436020364c 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_installer_test/bms_bundle_installer_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_installer_test/bms_bundle_installer_test.cpp @@ -928,7 +928,7 @@ HWTEST_F(BmsBundleInstallerTest, UninstallPreInstallBundle_0200, Function | Smal EXPECT_TRUE(isForceUninstall); // test GetRecoverablePreInstallBundleInfos - dataMgr->GetRecoverablePreInstallBundleInfos(); + dataMgr->GetRecoverablePreInstallBundleInfos(USERID); // test recover failed and succeed ErrCode recoverRes = RecoverBundle(BUNDLE_NAME, installParam); diff --git a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_data_mgr_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_data_mgr_test.cpp index e7b012fd59..fac92d50ca 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_data_mgr_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_data_mgr_test.cpp @@ -2782,7 +2782,7 @@ HWTEST_F(BmsBundleDataMgrTest, SetModuleRemovable_0100, Function | SmallTest | L { bool isEnabled = false; bool res = GetBundleDataMgr()->SetModuleRemovable( - BUNDLE_NAME_TEST, BUNDLE_NAME_TEST, isEnabled); + BUNDLE_NAME_TEST, BUNDLE_NAME_TEST, isEnabled, TEST_U100); EXPECT_EQ(res, false); } @@ -2801,7 +2801,7 @@ HWTEST_F(BmsBundleDataMgrTest, SetModuleRemovable_0200, Function | SmallTest | L innerBundleInfo.SetBaseApplicationInfo(applicationInfo); GetBundleDataMgr()->bundleInfos_.emplace(BUNDLE_NAME_TEST, innerBundleInfo); bool res = GetBundleDataMgr()->SetModuleRemovable( - BUNDLE_NAME_TEST, BUNDLE_NAME_TEST, isEnabled); + BUNDLE_NAME_TEST, BUNDLE_NAME_TEST, isEnabled, TEST_U100); EXPECT_EQ(res, false); } @@ -3835,7 +3835,7 @@ HWTEST_F(BmsBundleDataMgrTest, GetRecoverablePreInstallBundleInfos_0100, Functio innerBundleUserInfo1.bundleName = BUNDLE_NAME_FOR_TEST_U1ENABLE; info.AddInnerBundleUserInfo(innerBundleUserInfo1); dataMgr->bundleInfos_.emplace(BUNDLE_NAME_FOR_TEST_U1ENABLE, info); - std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(); + std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(TEST_U100); EXPECT_FALSE(CheckPreInstallBundleInfo(res, BUNDLE_NAME_FOR_TEST_U1ENABLE)); } @@ -3852,7 +3852,7 @@ HWTEST_F(BmsBundleDataMgrTest, GetRecoverablePreInstallBundleInfos_0200, Functio InnerBundleInfo info; info.baseApplicationInfo_->bundleName = BUNDLE_NAME_FOR_TEST_U1ENABLE; dataMgr->bundleInfos_.emplace(BUNDLE_NAME_FOR_TEST_U1ENABLE, info); - std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(); + std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(TEST_U100); EXPECT_FALSE(CheckPreInstallBundleInfo(res, BUNDLE_NAME_FOR_TEST_U1ENABLE)); } @@ -3873,7 +3873,7 @@ HWTEST_F(BmsBundleDataMgrTest, GetRecoverablePreInstallBundleInfos_0300, Functio acls.push_back(std::string(Constants::PERMISSION_U1_ENABLED)); info.SetAllowedAcls(acls); dataMgr->bundleInfos_.emplace(BUNDLE_NAME_FOR_TEST_U1ENABLE, info); - std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(); + std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(TEST_U100); EXPECT_FALSE(CheckPreInstallBundleInfo(res, BUNDLE_NAME_FOR_TEST_U1ENABLE)); } @@ -3895,7 +3895,7 @@ HWTEST_F(BmsBundleDataMgrTest, GetRecoverablePreInstallBundleInfos_0400, Functio innerBundleUserInfo1.bundleName = BUNDLE_NAME_FOR_TEST_U1ENABLE; info.AddInnerBundleUserInfo(innerBundleUserInfo1); dataMgr->bundleInfos_.emplace(BUNDLE_NAME_FOR_TEST_U1ENABLE, info); - std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(); + std::vector res = dataMgr->GetRecoverablePreInstallBundleInfos(TEST_U100); EXPECT_FALSE(CheckPreInstallBundleInfo(res, BUNDLE_NAME_FOR_TEST_U1ENABLE)); } diff --git a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test.cpp b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test.cpp index 326e44d456..6360199182 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test.cpp @@ -1796,7 +1796,8 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0100, Function | SmallTes MockInstallBundle(BUNDLE_NAME_TEST, MODULE_NAME_TEST, ABILITY_NAME_TEST); bool isRemovable = false; - auto testRet = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet, ERR_OK); EXPECT_FALSE(isRemovable); @@ -1813,10 +1814,12 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0200, Function | SmallTes { MockInstallBundle(BUNDLE_NAME_TEST, MODULE_NAME_TEST, ABILITY_NAME_TEST); - bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true); + bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true, + DEFAULT_USER_ID_TEST); EXPECT_TRUE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_OK); EXPECT_TRUE(isRemovable); @@ -1833,17 +1836,21 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0300, Function | SmallTes { MockInstallBundle(BUNDLE_NAME_TEST, MODULE_NAME_TEST, ABILITY_NAME_TEST); - bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, false); + bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, false, + DEFAULT_USER_ID_TEST); EXPECT_TRUE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_OK); EXPECT_FALSE(isRemovable); - bool testRet2 = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true); + bool testRet2 = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true, + DEFAULT_USER_ID_TEST); EXPECT_TRUE(testRet2); isRemovable = false; - auto testRet3 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet3 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet3, ERR_OK); EXPECT_TRUE(isRemovable); @@ -1859,7 +1866,8 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0300, Function | SmallTes HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0400, Function | SmallTest | Level1) { bool isRemovable = false; - auto testRet = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); EXPECT_FALSE(isRemovable); } @@ -1874,10 +1882,11 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0500, Function | SmallTes { MockInstallBundle(BUNDLE_NAME_TEST, MODULE_NAME_TEST, ABILITY_NAME_TEST); - bool testRet = GetBundleDataMgr()->SetModuleRemovable("", "", true); + bool testRet = GetBundleDataMgr()->SetModuleRemovable("", "", true, DEFAULT_USER_ID_TEST); EXPECT_FALSE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_OK); EXPECT_FALSE(isRemovable); @@ -1894,10 +1903,11 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0600, Function | SmallTes { MockInstallBundle(BUNDLE_NAME_TEST, MODULE_NAME_TEST, ABILITY_NAME_TEST); - bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true); + bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, true, + DEFAULT_USER_ID_TEST); EXPECT_TRUE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable("", "", isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable("", "", isRemovable, DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_BUNDLE_MANAGER_PARAM_ERROR); EXPECT_FALSE(isRemovable); @@ -1919,10 +1929,11 @@ HWTEST_F(BmsBundleKitServiceTest, CheckModuleRemovable_0700, Function | SmallTes APP_LOGE("bundle mgr proxy is nullptr."); EXPECT_EQ(bundleMgrProxy, nullptr); } - bool testRet = GetBundleDataMgr()->SetModuleRemovable("", "", true); + bool testRet = GetBundleDataMgr()->SetModuleRemovable("", "", true, DEFAULT_USER_ID_TEST); EXPECT_FALSE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST, MODULE_NAME_TEST, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_OK); EXPECT_FALSE(isRemovable); diff --git a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test_two.cpp b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test_two.cpp index 2b527fce70..f26022a1a2 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test_two.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_kit_service_test/bms_bundle_kit_service_test_two.cpp @@ -5386,10 +5386,12 @@ HWTEST_F(BmsBundleKitServiceTest, QueryAbilityInfosByUri_0400, Function | SmallT HWTEST_F(BmsBundleKitServiceTest, SetModuleRemovable_0300, Function | SmallTest | Level1) { ClearBundleInfo(BUNDLE_NAME_TEST_CLEAR); - bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST_CLEAR, MODULE_NAME_TEST_CLEAR, true); + bool testRet = GetBundleDataMgr()->SetModuleRemovable(BUNDLE_NAME_TEST_CLEAR, MODULE_NAME_TEST_CLEAR, true, + DEFAULT_USER_ID_TEST); EXPECT_FALSE(testRet); bool isRemovable = false; - auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST_CLEAR, MODULE_NAME_TEST_CLEAR, isRemovable); + auto testRet1 = GetBundleDataMgr()->IsModuleRemovable(BUNDLE_NAME_TEST_CLEAR, MODULE_NAME_TEST_CLEAR, isRemovable, + DEFAULT_USER_ID_TEST); EXPECT_EQ(testRet1, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); EXPECT_FALSE(isRemovable); } diff --git a/services/bundlemgr/test/unittest/bms_bundle_manager_test/bms_bundle_manager_test_two.cpp b/services/bundlemgr/test/unittest/bms_bundle_manager_test/bms_bundle_manager_test_two.cpp index 2607087b96..0b686a4836 100644 --- a/services/bundlemgr/test/unittest/bms_bundle_manager_test/bms_bundle_manager_test_two.cpp +++ b/services/bundlemgr/test/unittest/bms_bundle_manager_test/bms_bundle_manager_test_two.cpp @@ -1660,7 +1660,7 @@ HWTEST_F(BmsBundleManagerTest2, GetMgrFalseByNoBundle_0010, Function | SmallTest { bool isRemovable; ErrCode testRet = GetBundleDataMgr()->IsModuleRemovable( - TEST_BUNDLE_NAME, MODULE_NAME, isRemovable); + TEST_BUNDLE_NAME, MODULE_NAME, isRemovable, USERID); EXPECT_EQ(testRet, ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST); } -- Gitee