diff --git a/services/bundlemgr/BUILD.gn b/services/bundlemgr/BUILD.gn index 4083c463575752f204d95fd1cbca5901386f6817..140aafd31f94921d6d4bfb56d4275d2b538226ab 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 6ef36bf8d7cbcd41fe51e2917901406019d408be..199bad7104aaa149affceaa97e88e0ba3ecaaecd 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 ec97f36e27c67956c72beb3f2bdd8559edfe4719..6faad2a169e9cd01f9079a0dd500768462948ccc 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 f4cea5932ba6bba864f6bff023df9ce8843b16d4..40bced673004c773a03f17638eddd4b20cb11c13 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 0136040f5a571d74c1242b0264621ff81b3787d2..b491080f2cdc17ef15ebab368f114127c93ebbe0 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"; } 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 90dca40b226e009b8e964a9f35741130a971d63d..c0f8a86caf5443b5ece601af2f02fb32f2eceb51 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 eac9aee4a440786376f937efd766aab7af7ed735..1879875be0439464c4f13dbf571182c38da80a5a 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