From cbab4e522e8e774286455e6f6df641855e03d65d Mon Sep 17 00:00:00 2001 From: chenzhaohua <1024966952@qq.com> Date: Tue, 27 May 2025 17:08:30 +0800 Subject: [PATCH] OS skip OOBE Signed-off-by: chenzhaohua <1024966952@qq.com> --- ability_runtime.gni | 1 + bundle.json | 3 ++- services/abilitymgr/BUILD.gn | 4 ++++ services/abilitymgr/include/ability_manager_service.h | 2 ++ services/abilitymgr/src/ability_manager_service.cpp | 8 ++++++-- .../ability_manager_service_tenth_test.cpp | 4 ++-- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ability_runtime.gni b/ability_runtime.gni index 74afeff70c..9ef520e4a3 100644 --- a/ability_runtime.gni +++ b/ability_runtime.gni @@ -121,6 +121,7 @@ declare_args() { ability_runtime_start_window_options_with_pixelmap = false ability_runtime_check_internet_permission = false ability_runtime_media_library_enable = true + ability_runtime_no_screen = false if (!defined(global_parts_info) || defined(global_parts_info.account_os_account)) { diff --git a/bundle.json b/bundle.json index 38fc7eb4e9..df8b91f0d3 100644 --- a/bundle.json +++ b/bundle.json @@ -30,7 +30,8 @@ "ability_runtime_app_no_response_dialog_wearable", "ability_runtime_app_no_response_bundlename", "ability_runtime_start_window_options_with_pixelmap", - "ability_runtime_check_internet_permission" + "ability_runtime_check_internet_permission", + "ability_runtime_no_screen" ], "adapted_system_type": [ "standard" diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index 237513c55a..6d3c084b98 100644 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -278,6 +278,10 @@ ohos_shared_library("abilityms") { external_deps += [ "image_framework:image_native" ] } + if (ability_runtime_no_screen) { + defines += ["AMS_NO_SCREEN"] + } + version_script = "libabilityms.map" subsystem_name = "ability" innerapi_tags = [ "platformsdk_indirect" ] diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index bf37333b3c..d5de8beffb 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -2161,11 +2161,13 @@ private: */ void InitU0User(); void InitStartAbilityChain(); +#ifndef AMS_NO_SCREEN /** * start highest priority ability. * */ int StartHighestPriorityAbility(int32_t userId, bool isBoot, bool isAppRecovery = false); +#endif /** * connect bms. * diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index e88256cbe7..cfbccc9004 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -6822,7 +6822,7 @@ int32_t AbilityManagerService::GetUserId() const } return U0_USER_ID; } - +#ifndef AMS_NO_SCREEN int AbilityManagerService::StartHighestPriorityAbility(int32_t userId, bool isBoot, bool isAppRecovery) { TAG_LOGD(AAFwkTag::ABILITYMGR, "%{public}s", __func__); @@ -6882,7 +6882,7 @@ int AbilityManagerService::StartHighestPriorityAbility(int32_t userId, bool isBo /* note: OOBE APP need disable itself, otherwise, it will be started when restart system everytime */ return StartAbility(abilityWant, userId, DEFAULT_INVAL_VALUE); } - +#endif int AbilityManagerService::GenerateAbilityRequest(const Want &want, int requestCode, AbilityRequest &request, const sptr &callerToken, int32_t userId) { @@ -8978,11 +8978,15 @@ int AbilityManagerService::SwitchToUser(int32_t oldUserId, int32_t userId, sptr< ConnectServices(); StartUserApps(); } +#ifndef AMS_NO_SCREEN bool isBoot = oldUserId == U0_USER_ID ? true : false; auto ret = StartHighestPriorityAbility(userId, isBoot, isAppRecovery); if (ret != ERR_OK) { TAG_LOGE(AAFwkTag::ABILITYMGR, "StartHighestPriorityAbility failed: %{public}d", ret); } +#else + auto ret = ERR_OK; +#endif if (callback) { callback->OnStartUserDone(userId, ret); } diff --git a/test/unittest/ability_manager_service_tenth_test/ability_manager_service_tenth_test.cpp b/test/unittest/ability_manager_service_tenth_test/ability_manager_service_tenth_test.cpp index 8af13fd742..f3203996b7 100644 --- a/test/unittest/ability_manager_service_tenth_test/ability_manager_service_tenth_test.cpp +++ b/test/unittest/ability_manager_service_tenth_test/ability_manager_service_tenth_test.cpp @@ -575,7 +575,7 @@ HWTEST_F(AbilityManagerServiceTenhtTest, ScheduleCommandAbilityWindowDone_004, T EXPECT_EQ(ret, ERR_INVALID_VALUE); TAG_LOGI(AAFwkTag::TEST, "AbilityManagerServiceTenhtTest ScheduleCommandAbilityWindowDone_004 end"); } - +#ifndef AMS_NO_SCREEN /* * Feature: AbilityManagerService * Name: StartHighestPriorityAbility_001 @@ -594,7 +594,7 @@ HWTEST_F(AbilityManagerServiceTenhtTest, StartHighestPriorityAbility_001, TestSi EXPECT_EQ(ret, RESOLVE_ABILITY_ERR); TAG_LOGI(AAFwkTag::TEST, "AbilityManagerServiceTenhtTest StartHighestPriorityAbility_001 end"); } - +#endif /* * Feature: AbilityManagerService * Name: DelegatorDoAbilityBackground_001