From 7fca816cd33b8629f4b94366c95722b1186eaf28 Mon Sep 17 00:00:00 2001 From: "dujingcheng@huawei.com" Date: Wed, 24 Aug 2022 14:18:34 +0800 Subject: [PATCH 1/2] priorty Signed-off-by: dujingcheng@huawei.com Change-Id: Iba24bc2535cca1b3090e9e3d29e1b34c5d0d40cf --- services/bundlemgr/BUILD.gn | 5 +++++ services/bundlemgr/src/bundle_install_checker.cpp | 4 ++++ services/bundlemgr/src/default_permission_profile.cpp | 2 +- services/bundlemgr/src/module_profile.cpp | 10 +++++++++- services/bundlemgr/src/pre_bundle_profile.cpp | 2 +- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/services/bundlemgr/BUILD.gn b/services/bundlemgr/BUILD.gn index 4083c46357..140aafd31f 100644 --- a/services/bundlemgr/BUILD.gn +++ b/services/bundlemgr/BUILD.gn @@ -139,6 +139,11 @@ ohos_source_set("bundle_parser") { "ipc:ipc_single", ] + defines = [] + if (use_pre_bundle_profile) { + defines += [ "USE_PRE_BUNDLE_PROFILE" ] + } + part_name = "bundle_framework" } diff --git a/services/bundlemgr/src/bundle_install_checker.cpp b/services/bundlemgr/src/bundle_install_checker.cpp index 6ef36bf8d7..199bad7104 100644 --- a/services/bundlemgr/src/bundle_install_checker.cpp +++ b/services/bundlemgr/src/bundle_install_checker.cpp @@ -268,6 +268,10 @@ void BundleInstallChecker::CollectProvisionInfo( void BundleInstallChecker::GetPrivilegeCapability( const InstallCheckParam &checkParam, InnerBundleInfo &newInfo) { + // Reset privilege capability + newInfo.SetKeepAlive(false); + newInfo.SetSingleton(false); + newInfo.SetRemovable(checkParam.removable); PreBundleConfigInfo preBundleConfigInfo; preBundleConfigInfo.bundleName = newInfo.GetBundleName(); diff --git a/services/bundlemgr/src/default_permission_profile.cpp b/services/bundlemgr/src/default_permission_profile.cpp index ec97f36e27..6faad2a169 100644 --- a/services/bundlemgr/src/default_permission_profile.cpp +++ b/services/bundlemgr/src/default_permission_profile.cpp @@ -24,7 +24,7 @@ static const std::string PERMISSIONS_PROFILE_KEY_BUNDLENAME = "bundleName"; static const std::string PERMISSIONS_PROFILE_KEY_PERMISSIONS = "permissions"; static const std::string PERMISSIONS_PROFILE_KEY_NAME = "name"; static const std::string PERMISSIONS_PROFILE_KEY_USER_CANCELLABLE = "userCancellable"; -static const std::string PERMISSIONS_PROFILE_KEY_APP_SIGNATURE = "appSignature"; +static const std::string PERMISSIONS_PROFILE_KEY_APP_SIGNATURE = "app_signature"; } thread_local int32_t parseResult; diff --git a/services/bundlemgr/src/module_profile.cpp b/services/bundlemgr/src/module_profile.cpp index f4cea5932b..40bced6730 100644 --- a/services/bundlemgr/src/module_profile.cpp +++ b/services/bundlemgr/src/module_profile.cpp @@ -1651,10 +1651,18 @@ bool ToExtensionInfo( extensionInfo.description = extension.description; extensionInfo.descriptionId = extension.descriptionId; if (transformParam.isSystemApp && transformParam.isPreInstallApp) { - extensionInfo.priority = extension.priority; extensionInfo.readPermission = extension.readPermission; extensionInfo.writePermission = extension.writePermission; } + +#ifdef USE_PRE_BUNDLE_PROFILE + if (transformParam.appPrivilegeCapability.allowQueryPriority) { +#else + if (transformParam.isSystemApp && transformParam.isPreInstallApp) { +#endif + extensionInfo.priority = extension.priority; + } + extensionInfo.uri = extension.uri; extensionInfo.permissions = extension.permissions; extensionInfo.visible = extension.visible; diff --git a/services/bundlemgr/src/pre_bundle_profile.cpp b/services/bundlemgr/src/pre_bundle_profile.cpp index 0136040f5a..b491080f2c 100644 --- a/services/bundlemgr/src/pre_bundle_profile.cpp +++ b/services/bundlemgr/src/pre_bundle_profile.cpp @@ -36,7 +36,7 @@ const std::string SINGLETON = "singleton"; const std::string BOOTABLE = "bootable"; const std::string ALLOW_COMMON_EVENT = "allowCommonEvent"; const std::string RUNNING_RESOURCES_APPLY = "runningResourcesApply"; -const std::string APP_SIGNATURE = "appSignature"; +const std::string APP_SIGNATURE = "app_signature"; const std::string ASSOCIATED_WAKE_UP = "associatedWakeUp"; const std::string RESOURCES_PATH = "/app/ohos.global.systemres"; } -- Gitee From e9c8a78bb2ff1526fb0434118c74946e41aaab55 Mon Sep 17 00:00:00 2001 From: "dujingcheng@huawei.com" Date: Thu, 25 Aug 2022 09:29:24 +0800 Subject: [PATCH 2/2] tdd Signed-off-by: dujingcheng@huawei.com Change-Id: Id595ffb3fed09f4e2e88c76eabca5f8960fdd0b4 --- .../bms_rdb_data_manager_test.cpp | 14 +++++++------- .../bms_service_startup_test.cpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/services/bundlemgr/test/unittest/bms_rdb_data_manager_test/bms_rdb_data_manager_test.cpp b/services/bundlemgr/test/unittest/bms_rdb_data_manager_test/bms_rdb_data_manager_test.cpp index 90dca40b22..c0f8a86caf 100755 --- a/services/bundlemgr/test/unittest/bms_rdb_data_manager_test/bms_rdb_data_manager_test.cpp +++ b/services/bundlemgr/test/unittest/bms_rdb_data_manager_test/bms_rdb_data_manager_test.cpp @@ -89,7 +89,7 @@ void BmsRdbDataManagerTest::CloseDb() * @tc.desc: 1.insert data * 2.query data * 3.delete data - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, RdbDataManager_0100, Function | SmallTest | Level1) { @@ -124,7 +124,7 @@ HWTEST_F(BmsRdbDataManagerTest, RdbDataManager_0100, Function | SmallTest | Leve * @tc.name: insert queryAll * @tc.desc: 1.insert data * 2.queryAll data - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, RdbDataManager_0200, Function | SmallTest | Level1) { @@ -154,7 +154,7 @@ HWTEST_F(BmsRdbDataManagerTest, RdbDataManager_0200, Function | SmallTest | Leve * @tc.name: save and delete * @tc.desc: 1.SaveStorageBundleInfo * 2.DeleteStorageBundleInfo - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, BundleDataStorageRdb_0100, Function | SmallTest | Level1) { @@ -175,7 +175,7 @@ HWTEST_F(BmsRdbDataManagerTest, BundleDataStorageRdb_0100, Function | SmallTest * @tc.number: BundleDataStorageRdb_0200 * @tc.name: LoadAllData * @tc.desc: 1.LoadAllData - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, BundleDataStorageRdb_0200, Function | SmallTest | Level1) { @@ -210,7 +210,7 @@ HWTEST_F(BmsRdbDataManagerTest, BundleDataStorageRdb_0200, Function | SmallTest * @tc.name: save and delete * @tc.desc: 1.SavePreInstallStorageBundleInfo * 2.DeletePreInstallStorageBundleInfo - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, PreInstallDataStorageRdb_0100, Function | SmallTest | Level1) { @@ -229,7 +229,7 @@ HWTEST_F(BmsRdbDataManagerTest, PreInstallDataStorageRdb_0100, Function | SmallT * @tc.number: PreInstallDataStorageRdb_0200 * @tc.name: LoadAllPreInstallBundleInfos * @tc.desc: 1.LoadAllPreInstallBundleInfos - * @tc.require: SR000H0F45 + * @tc.require: issueI56WB8 */ HWTEST_F(BmsRdbDataManagerTest, PreInstallDataStorageRdb_0200, Function | SmallTest | Level1) { @@ -258,7 +258,7 @@ HWTEST_F(BmsRdbDataManagerTest, PreInstallDataStorageRdb_0200, Function | SmallT * @tc.desc: 1.SetDefaultApplicationInfo * 2.GetDefaultApplicationInfo * 3.DeleteDefaultApplicationInfos - * @tc.require: SR000H0F45 + * @tc.require: issueI56W8B */ HWTEST_F(BmsRdbDataManagerTest, DefaultAppRdb_0100, Function | SmallTest | Level1) { diff --git a/services/bundlemgr/test/unittest/bms_service_startup_test/bms_service_startup_test.cpp b/services/bundlemgr/test/unittest/bms_service_startup_test/bms_service_startup_test.cpp index eac9aee4a4..1879875be0 100644 --- a/services/bundlemgr/test/unittest/bms_service_startup_test/bms_service_startup_test.cpp +++ b/services/bundlemgr/test/unittest/bms_service_startup_test/bms_service_startup_test.cpp @@ -157,4 +157,21 @@ HWTEST_F(BmsServiceStartupTest, GetBundleInstaller_0100, Function | SmallTest | auto installer = bms->GetBundleInstaller(); EXPECT_NE(nullptr, installer); bms->OnStop(); +} + +/** +* @tc.number: GuardAgainst_001 +* @tc.name: Guard against install infos lossed strategy +* @tc.desc: 1. the service is not initialized +* @tc.require: issueI56WA0 +*/ +HWTEST_F(BmsServiceStartupTest, GuardAgainst_001, Function | SmallTest | Level0) +{ + std::shared_ptr bms = DelayedSingleton::GetInstance(); + bool ready = bms->IsServiceReady(); + EXPECT_EQ(false, ready); + bms->OnStart(); + std::this_thread::sleep_for(std::chrono::seconds(WAIT_TIME)); + ready = bms->IsServiceReady(); + EXPECT_EQ(true, ready); } \ No newline at end of file -- Gitee