From 666c5fdfa1b87118d498cefdb0b6258382a1f354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=A5=E7=BB=B4?= Date: Sat, 13 Sep 2025 08:07:24 +0800 Subject: [PATCH] fix duplicate symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 查维 --- services/common/include/hilog_tag_wrapper.h | 2 +- .../BUILD.gn | 166 ++++++++++++++-- .../ability_manager_service_first_test.cpp | 2 +- .../abilitymgr.gni | 185 ++++++++++++++++++ .../include/mock_permission_verification.h | 102 ---------- .../mock/src/mock_permission_verification.cpp | 135 ++++++++++++- .../BUILD.gn | 176 +++++++++++++++-- .../ability_manager_service_sixth_test.cpp | 6 +- .../abilitymgr.gni | 185 ++++++++++++++++++ .../include/mock_permission_verification.h | 6 +- .../mock/src/mock_permission_verification.cpp | 136 ++++++++++++- 11 files changed, 942 insertions(+), 159 deletions(-) create mode 100644 test/unittest/ability_manager_service_first_test/abilitymgr.gni delete mode 100644 test/unittest/ability_manager_service_first_test/mock/include/mock_permission_verification.h create mode 100644 test/unittest/ability_manager_service_sixth_test/abilitymgr.gni diff --git a/services/common/include/hilog_tag_wrapper.h b/services/common/include/hilog_tag_wrapper.h index c87425eb837..15f285de862 100644 --- a/services/common/include/hilog_tag_wrapper.h +++ b/services/common/include/hilog_tag_wrapper.h @@ -190,7 +190,7 @@ inline const char* GetDomainName6(AAFwkLogTag tag) inline std::string GetAbbreviatedFileName(const std::string& fileName) { - std::map abbreviatedFileNameMap { + static std::map abbreviatedFileNameMap { { "ability_manager_client", "AMC" }, { "app_running_manager", "ARM" }, { "ability_connect_manager", "ACM" }, diff --git a/test/unittest/ability_manager_service_first_test/BUILD.gn b/test/unittest/ability_manager_service_first_test/BUILD.gn index 73b7da4790c..9e47f2729f4 100644 --- a/test/unittest/ability_manager_service_first_test/BUILD.gn +++ b/test/unittest/ability_manager_service_first_test/BUILD.gn @@ -13,6 +13,7 @@ import("//build/test.gni") import("//foundation/ability/ability_runtime/ability_runtime.gni") +import("//foundation/ability/ability_runtime/test/unittest/ability_manager_service_first_test/abilitymgr.gni") module_output_path = "ability_runtime/ability_runtime/abilitymgr" @@ -27,80 +28,223 @@ ohos_unittest("ability_manager_service_first_test") { branch_protector_ret = "pac_ret" include_dirs = [ - "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core/include", "${ability_runtime_path}/interfaces/kits/native/ability/ability_runtime/", "${ability_runtime_path}/interfaces/inner_api/ability_manager/include", "${ability_runtime_test_path}/mock/ability_manager_collaborator", "${ability_runtime_test_path}/mock/frameworks_kits_ability_native_test/include", "${ability_runtime_test_path}/mock/mock_sa_call", "${ability_runtime_test_path}/mock/prepare_terminate_callback", + "${ability_runtime_path}/interfaces/kits/native/ability/native/ui_service_extension_ability/connection", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit/include", "${ability_runtime_test_path}/unittest/app_debug_listener_stub_test", "mock/include", ] sources = [ - "${ability_runtime_path}/services/abilitymgr/src/ability_auto_startup_service.cpp", "${ability_runtime_services_path}/abilitymgr/src/ability_connect_callback_stub.cpp", - "${ability_runtime_services_path}/abilitymgr/src/utils/window_options_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/preload_manager_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/report_data_partition_usage_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/request_id_util.cpp", "ability_manager_service_first_test.cpp", "mock/src/mock_my_flag.cpp", "mock/src/mock_permission_verification.cpp", ] - configs = [ "${ability_runtime_services_path}/abilitymgr:abilityms_config" ] + sources += abilityms_files + + configs = [ + "${ability_runtime_services_path}/abilitymgr:abilityms_config", + "${ability_runtime_services_path}/abilitymgr:abilityms_exception_config", + ] deps = [ + "${ability_runtime_innerkits_path}/ability_manager:ability_connect_callback_stub", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager", "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting", + "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", "${ability_runtime_innerkits_path}/ability_manager:mission_info", + "${ability_runtime_innerkits_path}/ability_manager:process_options", + "${ability_runtime_innerkits_path}/ability_manager:start_window_option", "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_innerkits_path}/connectionobs_manager:connection_obs_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", + "${ability_runtime_innerkits_path}/session_handler:session_handler", + "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", + "${ability_runtime_native_path}/ability/native:ability_business_error", + "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_native_path}/ability/native:auto_startup_callback", + "${ability_runtime_native_path}/appkit:appkit_manager_helper", + "${ability_runtime_path}/utils/global/freeze:freeze_util", + "${ability_runtime_path}/utils/server/startup:startup_util", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:wantagent_manager", "${ability_runtime_services_path}/common:app_util", - "${ability_runtime_services_path}/common:perm_verification", + "${ability_runtime_services_path}/common:event_report", + "${ability_runtime_services_path}/common:rate_limiter", + "${ability_runtime_services_path}/common:record_cost_time_util", + "${ability_runtime_services_path}/common:res_sched_util", "${ability_runtime_services_path}/common:task_handler_wrap", + "${ability_runtime_services_path}/common:user_controller", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", + "${ability_runtime_services_path}/uripermmgr:libupms_static", ] external_deps = [ + "ability_base:base", + "ability_base:configuration", + "ability_base:extractortool", "ability_base:session_info", + "ability_base:view_data", "ability_base:want", "ability_base:zuri", - "ability_runtime:ability_manager", "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", - "cJSON:cjson", + "bundle_framework:libappexecfwk_common", "c_utils:utils", + "cJSON:cjson", + "common_event_service:cesfwk_core", "common_event_service:cesfwk_innerkits", + "config_policy:configpolicy_util", "eventhandler:libeventhandler", + "faultloggerd:libbacktrace_local", "ffrt:libffrt", "googletest:gmock_main", "googletest:gtest_main", + "hicollie:libhicollie", "hilog:libhilog", "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "icu:shared_icuuc", + "init:libbeget_proxy", + "init:libbegetutil", "ipc:ipc_core", + "json:nlohmann_json_static", "kv_store:distributeddata_inner", + "os_account:os_account_innerkits", + "qos_manager:concurrent_task_client", + "relational_store:native_appdatafwk", + "relational_store:native_dataability", + "relational_store:native_rdb", "safwk:api_cache_manager", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", "selinux_adapter:librestorecon", + "window_manager:libmodal_system_ui_extension_client", + "window_manager:libwsutils", + "window_manager:scene_session", + "window_manager:session_manager_lite", + "window_manager:sms", + "udmf:udmf_client", ] + if (ability_runtime_dsoftbus_enable) { + external_deps += [ "dsoftbus:softbus_client" ] + } + + public_external_deps = [ "background_task_mgr:bgtaskmgr_innerkits" ] + + if (background_task_mgr_continuous_task_enable) { + external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ] + } + + if (resource_schedule_service_enable) { + external_deps += [ "resource_schedule_service:ressched_client" ] + } + + if (memmgr_override_enable) { + external_deps += [ "memmgr:memmgrclient" ] + } + + cflags_cc = [] + if (os_dlp_part_enabled) { + cflags_cc += [ "-DWITH_DLP" ] + external_deps += [ + "dlp_permission_service:libdlp_permission_sdk", + "dlp_permission_service:libdlpparse", + ] + } + + defines = [] + + if (ability_runtime_auto_fill) { + defines += [ "SUPPORT_AUTO_FILL" ] + } + + if (ability_runtime_child_process) { + defines += [ "SUPPORT_CHILD_PROCESS" ] + } if (ability_runtime_graphics) { + defines += [ "SUPPORT_GRAPHICS" ] external_deps += [ + "ability_base:session_info", + "i18n:intl_util", + "icu:shared_icuuc", + "image_framework:image_native", + "input:libmmi-client", + "resource_management:global_resmgr", + "window_manager:libdm", + "window_manager:libmodal_system_ui_extension_client", + "window_manager:libwm", "window_manager:libwsutils", "window_manager:scene_session", + "window_manager:sms", ] } - cflags_cc = [] - if (os_dlp_part_enabled) { - cflags_cc += [ "-DWITH_DLP" ] + + if (ability_runtime_graphics && ability_runtime_screenlock_enable) { + defines += [ + "ABILITY_RUNTIME_SCREENLOCK_ENABLE" + ] + external_deps += [ + "screenlock_mgr:screenlock_client", + ] + } + + if (ability_runtime_upms) { + defines += [ "SUPPORT_UPMS" ] + deps += [ + "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", + ] + } + + if (ability_runtime_feature_sandboxmanager) { + external_deps += [ "sandbox_manager:libsandbox_manager_sdk" ] + defines += [ + "ABILITY_RUNTIME_FEATURE_SANDBOXMANAGER", + "SUPPORT_APP_SELECTOR" + ] + } + + if (include_app_domain_verify) { + external_deps += [ + "app_domain_verify:app_domain_verify_common", + "app_domain_verify:app_domain_verify_mgr_client", + ] + defines += [ "APP_DOMAIN_VERIFY_ENABLED" ] + } + + if (ability_runtime_power) { + defines += [ "SUPPORT_POWER" ] + external_deps += [ "power_manager:powermgr_client" ] + } + + if (ability_runtime_graphics && + ability_runtime_start_window_options_with_pixelmap) { + defines += [ "START_WINDOW_OPTIONS_WITH_PIXELMAP" ] + external_deps += [ "image_framework:image_native" ] + } + + if (ability_runtime_no_screen) { + defines += ["DISABLE_LAUNCHER"] } } group("unittest") { testonly = true deps = [ ":ability_manager_service_first_test" ] -} +} \ No newline at end of file diff --git a/test/unittest/ability_manager_service_first_test/ability_manager_service_first_test.cpp b/test/unittest/ability_manager_service_first_test/ability_manager_service_first_test.cpp index 97edaabee56..b13a5001d27 100644 --- a/test/unittest/ability_manager_service_first_test/ability_manager_service_first_test.cpp +++ b/test/unittest/ability_manager_service_first_test/ability_manager_service_first_test.cpp @@ -15,7 +15,7 @@ #include -#include "mock_permission_verification.h" +#include "mock_my_flag.h" #define private public #define protected public diff --git a/test/unittest/ability_manager_service_first_test/abilitymgr.gni b/test/unittest/ability_manager_service_first_test/abilitymgr.gni new file mode 100644 index 00000000000..2b46c2ab636 --- /dev/null +++ b/test/unittest/ability_manager_service_first_test/abilitymgr.gni @@ -0,0 +1,185 @@ +# Copyright (c) 2021-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 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//foundation/ability/ability_runtime/ability_runtime.gni") + +abilityms_files = [ + "${ability_runtime_services_path}/abilitymgr/src/ability_background_connection.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_cache_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_connect_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_debug_deal.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_event_handler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/disposed_observer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_collaborator_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_scheduler_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_start_with_wait_observer_manager/ability_start_with_wait_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_token_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/app_scheduler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/app_exit_reason_helper.cpp", + "${ability_runtime_services_path}/abilitymgr/src/assert_fault_callback_death_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/assert_fault_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_caller_recipient.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dialog_session/dialog_session_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/lifecycle_deal.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_running_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service_param.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_config.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_running_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record_factory.cpp", + "${ability_runtime_services_path}/abilitymgr/src/caller_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/sub_managers_helper.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_key.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_common_event.cpp", + "${ability_runtime_services_path}/abilitymgr/src/restart_app_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ams_configuration_parameter.cpp", + "${ability_runtime_services_path}/abilitymgr/src/recovery_info_timer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/modal_system_dialog/modal_system_dialog_ui_extension.cpp", + "${ability_runtime_services_path}/abilitymgr/src/hidden_start_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ability_interceptor_executer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ability_jump_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/block_all_app_start_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/control_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/crowd_test_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/disposed_rule_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/extension_control_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/start_other_app_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/kiosk_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/window_focus_changed_listener.cpp", + "${ability_runtime_services_path}/abilitymgr/src/window_visibility_changed_listener.cpp", + + # start ability handler + "${ability_runtime_services_path}/abilitymgr/src/start_ability_handler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/start_ability_handler/start_ability_sandbox_savefile.cpp", + + # new ability manager service here + "${ability_runtime_services_path}/abilitymgr/src/ui_extension/preload_uiext_state_observer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ui_extension_record/ui_extension_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ui_extension_record/ui_extension_record_factory.cpp", + "${ability_runtime_services_path}/abilitymgr/src/screen_lock/unlock_screen_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/start_options.cpp", + "${ability_runtime_services_path}/abilitymgr/src/user_callback_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/call_container.cpp", + "${ability_runtime_services_path}/abilitymgr/src/call_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/inner_mission_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/mission/mission_listener_controller.cpp", + "${ability_runtime_services_path}/abilitymgr/src/mission/mission_listener_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/ability_resident_process_rdb.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/parser_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/rdb_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/remote_mission_listener_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/scene_board/status_bar_delegate_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/scene_board/ui_ability_lifecycle_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/deeplink_reserve/deeplink_reserve_config.cpp", + + #connection observer + "${ability_runtime_services_path}/abilitymgr/src/connection_observer_controller.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_state_item.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_state_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dlp_state_item.cpp", + + #free_install + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback.cpp", + "${ability_runtime_services_path}/abilitymgr/src/free_install_observer_manager.cpp", + + #erms + "${ability_runtime_services_path}/abilitymgr/src/query_erms_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/query_erms_observer_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/background_task_observer.cpp", + + #resident_process + "${ability_runtime_services_path}/abilitymgr/src/resident_process/resident_process_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_bundle_event_callback.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/app_exit_reason_data_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_auto_startup_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_auto_startup_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/auto_startup_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_db_cache.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_execute_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_execute_result.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_profile.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_rdb_data_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_rdb_storage_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/extract_insight_intent_profile.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_event_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_sys_event_receiver.cpp", + + #sa interceptor + "${ability_runtime_services_path}/abilitymgr/src/sa_interceptor_manager.cpp", + + # keep alive + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/ability_keep_alive_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/ability_keep_alive_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/keep_alive_process_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_event_subscriber.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/exit_info_data_manager.cpp", + + #utils + "${ability_runtime_services_path}/abilitymgr/src/utils/ability_event_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/ability_permission_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/app_mgr_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/dms_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/dump_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/extension_permissions_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/hmsf_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/keep_alive_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/main_element_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/modal_system_dialog_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/multi_app_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/multi_instance_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/start_ability_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/start_options_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/hidden_start_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/state_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/update_caller_info_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/uri_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/window_options_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/timeout_state_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/kiosk_status.cpp", + "${ability_runtime_services_path}/abilitymgr/src/kiosk_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/udmf_utils.cpp", +] + +if (ability_runtime_graphics) { + abilityms_files += [ + "${ability_runtime_services_path}/appdfr/src/application_anr_listener.cpp", + "${ability_runtime_services_path}/abilitymgr/src/implicit_start_processor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/system_dialog_scheduler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_first_frame_state_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/screen_lock/unlock_screen_callback.cpp", + ] +} + +if (include_app_domain_verify) { + abilityms_files += [ "${ability_runtime_services_path}/abilitymgr/src/ag_convert_callback_impl.cpp" ] +} diff --git a/test/unittest/ability_manager_service_first_test/mock/include/mock_permission_verification.h b/test/unittest/ability_manager_service_first_test/mock/include/mock_permission_verification.h deleted file mode 100644 index 94e39a2e2d6..00000000000 --- a/test/unittest/ability_manager_service_first_test/mock/include/mock_permission_verification.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2022 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 - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef OHOS_ABILITY_RUNTIME_PERMISSION_VERIFICATION_H -#define OHOS_ABILITY_RUNTIME_PERMISSION_VERIFICATION_H - -#include - -#include "ipc_skeleton.h" -#include "singleton.h" -#include "want.h" -#include "mock_my_flag.h" - -namespace OHOS { -namespace AAFwk { - -class PermissionVerification : public DelayedSingleton { -public: -struct VerificationInfo { - bool visible = false; - bool isBackgroundCall = true; - bool associatedWakeUp = false; - uint32_t accessTokenId = 0; - int32_t apiTargetVersion = 0; -}; - - PermissionVerification() = default; - ~PermissionVerification() = default; - - bool VerifyCallingPermission(const std::string &permissionName) const; - - bool IsSACall() const; - - bool IsShellCall() const; - - bool CheckSpecificSystemAbilityAccessPermission() const; - - bool VerifyRunningInfoPerm() const; - - bool VerifyControllerPerm() const; - - bool VerifyDlpPermission(Want &want) const; - - int VerifyAccountPermission() const; - - bool VerifyMissionPermission() const; - - int VerifyAppStateObserverPermission() const; - - int32_t VerifyUpdateConfigurationPerm() const; - - bool VerifyInstallBundlePermission() const; - - bool VerifyGetBundleInfoPrivilegedPermission() const; - - int CheckCallDataAbilityPermission(const VerificationInfo &verificationInfo, bool isShell) const; - - int CheckCallServiceAbilityPermission(const VerificationInfo &verificationInfo) const; - - int CheckCallAbilityPermission(const VerificationInfo &verificationInfo) const; - - int CheckCallServiceExtensionPermission(const VerificationInfo &verificationInfo) const; - - int CheckStartByCallPermission(const VerificationInfo &verificationInfo) const; - - unsigned int GetCallingTokenID() const; - - bool JudgeStartInvisibleAbility(const uint32_t accessTokenId, const bool visible) const; - - bool JudgeStartAbilityFromBackground(const bool isBackgroundCall) const; - - bool JudgeAssociatedWakeUp(const uint32_t accessTokenId, const bool associatedWakeUp) const; - - int JudgeInvisibleAndBackground(const VerificationInfo &verificationInfo) const; - - inline bool IsCallFromSameAccessToken(const uint32_t accessTokenId) const - { - return IPCSkeleton::GetCallingTokenID() == accessTokenId; - } - - bool JudgeCallerIsAllowedToUseSystemAPI() const; - bool IsSystemAppCall() const; - - bool VerifyPrepareTerminatePermission() const; - - bool VerifySetProcessCachePermission() const; -}; -} // namespace AAFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_PERMISSION_VERIFICATION_H \ No newline at end of file diff --git a/test/unittest/ability_manager_service_first_test/mock/src/mock_permission_verification.cpp b/test/unittest/ability_manager_service_first_test/mock/src/mock_permission_verification.cpp index a084b6676ef..48f3cb26781 100644 --- a/test/unittest/ability_manager_service_first_test/mock/src/mock_permission_verification.cpp +++ b/test/unittest/ability_manager_service_first_test/mock/src/mock_permission_verification.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 @@ -13,24 +13,50 @@ * limitations under the License. */ -#include "mock_permission_verification.h" +#include "permission_verification.h" + +#include "mock_my_flag.h" namespace OHOS { namespace AAFwk { -bool PermissionVerification::VerifyCallingPermission(const std::string &permissionName) const +bool PermissionVerification::VerifyPermissionByTokenId(const int &tokenId, const std::string &permissionName) const +{ + return !!(MyFlag::flag_); +} + +bool PermissionVerification::VerifyCallingPermission( + const std::string &permissionName, const uint32_t specifyTokenId) const { return !!(MyFlag::flag_); } + bool PermissionVerification::IsSACall() const { return (MyFlag::flag_ & MyFlag::FLAG::IS_SA_CALL); } + +bool PermissionVerification::IsSACallByTokenId(uint32_t callerTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::IsShellCall() const { return (MyFlag::flag_ & MyFlag::FLAG::IS_SHELL_CALL); } -bool PermissionVerification::CheckSpecificSystemAbilityAccessPermission() const + +bool PermissionVerification::IsShellCallByTokenId(uint32_t callerTokenId) const +{ + return !!(MyFlag::flag_); +} + +bool PermissionVerification::CheckSpecificSystemAbilityAccessPermission(const std::string &processName) const +{ + return !!(MyFlag::flag_); +} + +bool PermissionVerification::CheckObserverCallerPermission() const { return !!(MyFlag::flag_); } @@ -38,10 +64,17 @@ bool PermissionVerification::VerifyRunningInfoPerm() const { return !!(MyFlag::flag_); } + +bool PermissionVerification::VerifyCustomSandbox(uint32_t accessTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::VerifyControllerPerm() const { return !!(MyFlag::flag_); } + #ifdef WITH_DLP bool PermissionVerification::VerifyDlpPermission(Want &want) const { @@ -52,80 +85,166 @@ int PermissionVerification::VerifyAccountPermission() const { return MyFlag::flag_; } + bool PermissionVerification::VerifyMissionPermission() const { return !!(MyFlag::flag_); } + int PermissionVerification::VerifyAppStateObserverPermission() const { return MyFlag::flag_; } + int32_t PermissionVerification::VerifyUpdateConfigurationPerm() const { return static_cast(MyFlag::flag_); } + bool PermissionVerification::VerifyInstallBundlePermission() const { return !!(MyFlag::flag_); } + bool PermissionVerification::VerifyGetBundleInfoPrivilegedPermission() const { return !!(MyFlag::flag_); } + +bool PermissionVerification::VerifyStartRecentAbilityPermission() const +{ + return !!(MyFlag::flag_); +} + int PermissionVerification::CheckCallDataAbilityPermission(const VerificationInfo &verificationInfo, bool isShell) const { return MyFlag::flag_; } + int PermissionVerification::CheckCallServiceAbilityPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; } -int PermissionVerification::CheckCallAbilityPermission(const VerificationInfo &verificationInfo) const + +int PermissionVerification::CheckCallAbilityPermission(const VerificationInfo &verificationInfo, + bool isCallByShortcut) const { return MyFlag::flag_; } + int PermissionVerification::CheckCallServiceExtensionPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; } + int PermissionVerification::CheckStartByCallPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; } + unsigned int PermissionVerification::GetCallingTokenID() const { return static_cast(MyFlag::flag_); } -bool PermissionVerification::JudgeStartInvisibleAbility(const uint32_t accessTokenId, const bool visible) const + +bool PermissionVerification::JudgeStartInvisibleAbility(const uint32_t accessTokenId, const bool visible, + const uint32_t specifyTokenId) const { return !!(MyFlag::flag_); } + bool PermissionVerification::JudgeStartAbilityFromBackground(const bool isBackgroundCall) const { return !!(MyFlag::flag_); } + bool PermissionVerification::JudgeAssociatedWakeUp(const uint32_t accessTokenId, const bool associatedWakeUp) const { return !!(MyFlag::flag_); } -int PermissionVerification::JudgeInvisibleAndBackground(const VerificationInfo &verificationInfo) const + +int PermissionVerification::JudgeInvisibleAndBackground(const VerificationInfo &verificationInfo, + bool isCallByShortcut) const { return MyFlag::flag_; } + bool PermissionVerification::JudgeCallerIsAllowedToUseSystemAPI() const { return true; } + bool PermissionVerification::VerifyPrepareTerminatePermission() const { return true; } + +bool PermissionVerification::VerifyPrepareTerminatePermission(const int &tokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyShellStartExtensionType(int32_t type) const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyPreloadApplicationPermission() const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyPreStartAtomicServicePermission() const +{ + return MyFlag::flag_; +} + bool PermissionVerification::IsSystemAppCall() const { return true; } -bool PermissionVerification::VerifySetProcessCachePermission() const +bool PermissionVerification::IsSystemAppCallByTokenId(uint32_t callerTokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyBackgroundCallPermission(const bool isBackgroundCall) const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyKillProcessDependedOnWebPermission() const +{ + return true; +} + +bool PermissionVerification::VerifyBlockAllAppStartPermission() const +{ + return true; +} + +bool PermissionVerification::VerifyStartUIAbilityToHiddenPermission() const +{ + return true; +} + +bool PermissionVerification::VerifySuperviseKiaServicePermission() const +{ + return true; +} + +bool PermissionVerification::VerifyStartLocalDebug(int32_t tokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyStartSelfUIAbility(int tokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyFusionAccessPermission() const { return true; } diff --git a/test/unittest/ability_manager_service_sixth_test/BUILD.gn b/test/unittest/ability_manager_service_sixth_test/BUILD.gn index 6f326eeea24..42de907789d 100644 --- a/test/unittest/ability_manager_service_sixth_test/BUILD.gn +++ b/test/unittest/ability_manager_service_sixth_test/BUILD.gn @@ -13,6 +13,7 @@ import("//build/test.gni") import("//foundation/ability/ability_runtime/ability_runtime.gni") +import("//foundation/ability/ability_runtime/test/unittest/ability_manager_service_sixth_test/abilitymgr.gni") module_output_path = "ability_runtime/ability_runtime/abilitymgr" @@ -25,47 +26,62 @@ ohos_unittest("ability_manager_service_sixth_test") { blocklist = "../../cfi_blocklist.txt" } branch_protector_ret = "pac_ret" + include_dirs = [ - "${ability_runtime_path}/interfaces/inner_api/ability_manager/include", "${ability_runtime_path}/interfaces/kits/native/ability/ability_runtime/", - "${ability_runtime_path}/interfaces/kits/native/ability/native/ui_service_extension_ability/connection", - "${ability_runtime_services_path}/abilitymgr/include/scene_board", - "${ability_runtime_test_path}/mock/common/include", - "${ability_runtime_test_path}/mock/mock_sa_call", + "${ability_runtime_path}/interfaces/inner_api/ability_manager/include", + "${ability_runtime_test_path}/mock/ability_manager_collaborator", "${ability_runtime_test_path}/mock/frameworks_kits_ability_native_test/include", - "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/ability_scheduler_mock", + "${ability_runtime_test_path}/mock/mock_sa_call", + "${ability_runtime_test_path}/mock/prepare_terminate_callback", + "${ability_runtime_test_path}/mock/common/include", + "${ability_runtime_services_path}/abilitymgr/include", + "${ability_runtime_services_path}/abilitymgr/include/scene_board", + "${ability_runtime_services_path}/abilitymgr/include/mission", "${ability_runtime_test_path}/mock/task_handler_wrap_mock/include", - "${ability_runtime_test_path}/unittest/ability_manager_client_branch_test", + "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/ability_scheduler_mock", + "${ability_runtime_path}/interfaces/kits/native/ability/native/ui_service_extension_ability/connection", + "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit/include", + "${ability_runtime_test_path}/unittest/app_debug_listener_stub_test", "mock/include", ] sources = [ - "${ability_runtime_path}/frameworks/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp", - "${ability_runtime_services_path}/abilitymgr/src/ability_cache_manager.cpp", "${ability_runtime_services_path}/abilitymgr/src/ability_connect_callback_stub.cpp", - "${ability_runtime_services_path}/abilitymgr/src/scene_board/ui_ability_lifecycle_manager.cpp", - "${ability_runtime_services_path}/abilitymgr/src/sub_managers_helper.cpp", - "${ability_runtime_services_path}/abilitymgr/src/utils/timeout_state_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/preload_manager_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/report_data_partition_usage_manager.cpp", "${ability_runtime_services_path}/abilitymgr/src/utils/request_id_util.cpp", - "${ability_runtime_test_path}/mock/task_handler_wrap_mock/src/mock_task_handler_wrap.cpp", "ability_manager_service_sixth_test.cpp", "mock/src/mock_my_flag.cpp", - "mock/src/mock_parameters.cpp", "mock/src/mock_permission_verification.cpp", + "mock/src/mock_parameters.cpp", ] - configs = [ "${ability_runtime_services_path}/abilitymgr:abilityms_config" ] + sources += abilityms_files + + configs = [ + "${ability_runtime_services_path}/abilitymgr:abilityms_config", + "${ability_runtime_services_path}/abilitymgr:abilityms_exception_config", + ] - deps = [ + deps = [ + "${ability_runtime_innerkits_path}/ability_manager:ability_connect_callback_stub", "${ability_runtime_innerkits_path}/ability_manager:ability_manager", - "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting", + "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_innerkits_path}/ability_manager:process_options", + "${ability_runtime_innerkits_path}/ability_manager:start_window_option", "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_innerkits_path}/connectionobs_manager:connection_obs_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", + "${ability_runtime_innerkits_path}/session_handler:session_handler", + "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", + "${ability_runtime_native_path}/ability/native:ability_business_error", + "${ability_runtime_native_path}/ability/native:abilitykit_native", + "${ability_runtime_native_path}/ability/native:auto_startup_callback", "${ability_runtime_native_path}/appkit:appkit_manager_helper", - "${ability_runtime_native_path}/appkit:appkit_native", "${ability_runtime_path}/utils/global/freeze:freeze_util", "${ability_runtime_path}/utils/server/startup:startup_util", "${ability_runtime_services_path}/abilitymgr:abilityms", @@ -73,52 +89,170 @@ ohos_unittest("ability_manager_service_sixth_test") { "${ability_runtime_services_path}/abilitymgr:wantagent_manager", "${ability_runtime_services_path}/common:app_util", "${ability_runtime_services_path}/common:event_report", - "${ability_runtime_services_path}/common:perm_verification", + "${ability_runtime_services_path}/common:rate_limiter", "${ability_runtime_services_path}/common:record_cost_time_util", + "${ability_runtime_services_path}/common:res_sched_util", "${ability_runtime_services_path}/common:task_handler_wrap", + "${ability_runtime_services_path}/common:user_controller", + "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", + "${ability_runtime_services_path}/uripermmgr:libupms_static", ] external_deps = [ + "ability_base:base", + "ability_base:configuration", + "ability_base:extractortool", "ability_base:session_info", + "ability_base:view_data", "ability_base:want", "ability_base:zuri", "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", "access_token:libnativetoken", "access_token:libtoken_setproc", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", + "bundle_framework:libappexecfwk_common", "c_utils:utils", + "cJSON:cjson", + "common_event_service:cesfwk_core", "common_event_service:cesfwk_innerkits", + "config_policy:configpolicy_util", "eventhandler:libeventhandler", + "faultloggerd:libbacktrace_local", "ffrt:libffrt", "googletest:gmock_main", "googletest:gtest_main", + "hicollie:libhicollie", "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", + "icu:shared_icuuc", + "init:libbeget_proxy", "init:libbegetutil", "ipc:ipc_core", + "json:nlohmann_json_static", "kv_store:distributeddata_inner", + "os_account:os_account_innerkits", + "qos_manager:concurrent_task_client", + "relational_store:native_appdatafwk", + "relational_store:native_dataability", + "relational_store:native_rdb", "safwk:api_cache_manager", + "safwk:system_ability_fwk", "samgr:samgr_proxy", + "selinux_adapter:librestorecon", + "window_manager:libmodal_system_ui_extension_client", + "window_manager:libwsutils", + "window_manager:scene_session", + "window_manager:session_manager_lite", + "window_manager:sms", + "udmf:udmf_client", ] + if (ability_runtime_dsoftbus_enable) { + external_deps += [ "dsoftbus:softbus_client" ] + } + + public_external_deps = [ "background_task_mgr:bgtaskmgr_innerkits" ] + + if (background_task_mgr_continuous_task_enable) { + external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ] + } + + if (resource_schedule_service_enable) { + external_deps += [ "resource_schedule_service:ressched_client" ] + } + + if (memmgr_override_enable) { + external_deps += [ "memmgr:memmgrclient" ] + } + + cflags_cc = [] + if (os_dlp_part_enabled) { + cflags_cc += [ "-DWITH_DLP" ] + external_deps += [ + "dlp_permission_service:libdlp_permission_sdk", + "dlp_permission_service:libdlpparse", + ] + } defines = [] + if (ability_runtime_auto_fill) { defines += [ "SUPPORT_AUTO_FILL" ] } + if (ability_runtime_child_process) { + defines += [ "SUPPORT_CHILD_PROCESS" ] + } + if (ability_runtime_graphics) { + defines += [ "SUPPORT_GRAPHICS" ] external_deps += [ + "ability_base:session_info", + "i18n:intl_util", + "icu:shared_icuuc", + "image_framework:image_native", + "input:libmmi-client", + "resource_management:global_resmgr", "window_manager:libdm", + "window_manager:libmodal_system_ui_extension_client", + "window_manager:libwm", "window_manager:libwsutils", "window_manager:scene_session", - "window_manager:session_manager_lite", + "window_manager:sms", + ] + } + + if (ability_runtime_graphics && ability_runtime_screenlock_enable) { + defines += [ + "ABILITY_RUNTIME_SCREENLOCK_ENABLE" + ] + external_deps += [ + "screenlock_mgr:screenlock_client", + ] + } + + if (ability_runtime_upms) { + defines += [ "SUPPORT_UPMS" ] + deps += [ + "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", ] } + + if (ability_runtime_feature_sandboxmanager) { + external_deps += [ "sandbox_manager:libsandbox_manager_sdk" ] + defines += [ + "ABILITY_RUNTIME_FEATURE_SANDBOXMANAGER", + "SUPPORT_APP_SELECTOR" + ] + } + + if (include_app_domain_verify) { + external_deps += [ + "app_domain_verify:app_domain_verify_common", + "app_domain_verify:app_domain_verify_mgr_client", + ] + defines += [ "APP_DOMAIN_VERIFY_ENABLED" ] + } + + if (ability_runtime_power) { + defines += [ "SUPPORT_POWER" ] + external_deps += [ "power_manager:powermgr_client" ] + } + + if (ability_runtime_graphics && + ability_runtime_start_window_options_with_pixelmap) { + defines += [ "START_WINDOW_OPTIONS_WITH_PIXELMAP" ] + external_deps += [ "image_framework:image_native" ] + } + + if (ability_runtime_no_screen) { + defines += ["DISABLE_LAUNCHER"] + } } group("unittest") { testonly = true deps = [ ":ability_manager_service_sixth_test" ] -} +} \ No newline at end of file diff --git a/test/unittest/ability_manager_service_sixth_test/ability_manager_service_sixth_test.cpp b/test/unittest/ability_manager_service_sixth_test/ability_manager_service_sixth_test.cpp index 0aec9f8bc84..3a7535553e6 100644 --- a/test/unittest/ability_manager_service_sixth_test/ability_manager_service_sixth_test.cpp +++ b/test/unittest/ability_manager_service_sixth_test/ability_manager_service_sixth_test.cpp @@ -26,17 +26,15 @@ #undef protected #include "ability_manager_errors.h" -#include "ability_manager_stub_mock_test.h" -#include "ability_scheduler_mock.h" #include "hilog_tag_wrapper.h" #include "insight_intent_execute_manager.h" #include "insight_intent_db_cache.h" #include "insight_intent_utils.h" #include "mock_ability_token.h" -#include "mock_bundle_manager_proxy.h" #include "mock_my_flag.h" #include "mock_parameters.h" -#include "mock_permission_verification.h" +#include "ability_scheduler_mock.h" +#include "mock_bundle_manager_proxy.h" #include "mock_task_handler_wrap.h" #include "process_options.h" #include "recovery_param.h" diff --git a/test/unittest/ability_manager_service_sixth_test/abilitymgr.gni b/test/unittest/ability_manager_service_sixth_test/abilitymgr.gni new file mode 100644 index 00000000000..2b46c2ab636 --- /dev/null +++ b/test/unittest/ability_manager_service_sixth_test/abilitymgr.gni @@ -0,0 +1,185 @@ +# Copyright (c) 2021-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 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//foundation/ability/ability_runtime/ability_runtime.gni") + +abilityms_files = [ + "${ability_runtime_services_path}/abilitymgr/src/ability_background_connection.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_cache_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_connect_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_debug_deal.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_event_handler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/disposed_observer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_collaborator_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_scheduler_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_start_with_wait_observer_manager/ability_start_with_wait_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_token_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/app_scheduler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/app_exit_reason_helper.cpp", + "${ability_runtime_services_path}/abilitymgr/src/assert_fault_callback_death_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/assert_fault_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_caller_recipient.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/data_ability/data_ability_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dialog_session/dialog_session_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/lifecycle_deal.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_running_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service_param.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_config.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_running_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/extension_record/extension_record_factory.cpp", + "${ability_runtime_services_path}/abilitymgr/src/caller_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/sub_managers_helper.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_key.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/pending_want_common_event.cpp", + "${ability_runtime_services_path}/abilitymgr/src/restart_app_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ams_configuration_parameter.cpp", + "${ability_runtime_services_path}/abilitymgr/src/recovery_info_timer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/modal_system_dialog/modal_system_dialog_ui_extension.cpp", + "${ability_runtime_services_path}/abilitymgr/src/hidden_start_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ability_interceptor_executer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ability_jump_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/block_all_app_start_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/control_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/crowd_test_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/disposed_rule_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/extension_control_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/start_other_app_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/interceptor/kiosk_interceptor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/window_focus_changed_listener.cpp", + "${ability_runtime_services_path}/abilitymgr/src/window_visibility_changed_listener.cpp", + + # start ability handler + "${ability_runtime_services_path}/abilitymgr/src/start_ability_handler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/start_ability_handler/start_ability_sandbox_savefile.cpp", + + # new ability manager service here + "${ability_runtime_services_path}/abilitymgr/src/ui_extension/preload_uiext_state_observer.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ui_extension_record/ui_extension_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ui_extension_record/ui_extension_record_factory.cpp", + "${ability_runtime_services_path}/abilitymgr/src/screen_lock/unlock_screen_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/start_options.cpp", + "${ability_runtime_services_path}/abilitymgr/src/user_callback_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/call_container.cpp", + "${ability_runtime_services_path}/abilitymgr/src/call_record.cpp", + "${ability_runtime_services_path}/abilitymgr/src/inner_mission_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/mission/mission_listener_controller.cpp", + "${ability_runtime_services_path}/abilitymgr/src/mission/mission_listener_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/ability_resident_process_rdb.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/parser_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/rdb/rdb_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/remote_mission_listener_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/scene_board/status_bar_delegate_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/scene_board/ui_ability_lifecycle_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/deeplink_reserve/deeplink_reserve_config.cpp", + + #connection observer + "${ability_runtime_services_path}/abilitymgr/src/connection_observer_controller.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_state_item.cpp", + "${ability_runtime_services_path}/abilitymgr/src/connection_state_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/dlp_state_item.cpp", + + #free_install + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback_proxy.cpp", + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback_stub.cpp", + "${ability_runtime_services_path}/abilitymgr/src/atomic_service_status_callback.cpp", + "${ability_runtime_services_path}/abilitymgr/src/free_install_observer_manager.cpp", + + #erms + "${ability_runtime_services_path}/abilitymgr/src/query_erms_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/query_erms_observer_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/background_task_observer.cpp", + + #resident_process + "${ability_runtime_services_path}/abilitymgr/src/resident_process/resident_process_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_bundle_event_callback.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/app_exit_reason_data_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_auto_startup_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_auto_startup_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/auto_startup_info.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_db_cache.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_execute_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_execute_result.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_profile.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_rdb_data_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_rdb_storage_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/extract_insight_intent_profile.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_event_mgr.cpp", + "${ability_runtime_services_path}/abilitymgr/src/insight_intent/insight_intent_sys_event_receiver.cpp", + + #sa interceptor + "${ability_runtime_services_path}/abilitymgr/src/sa_interceptor_manager.cpp", + + # keep alive + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/ability_keep_alive_data_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/ability_keep_alive_service.cpp", + "${ability_runtime_services_path}/abilitymgr/src/keep_alive/keep_alive_process_manager.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/ability_manager_event_subscriber.cpp", + + "${ability_runtime_services_path}/abilitymgr/src/exit_info_data_manager.cpp", + + #utils + "${ability_runtime_services_path}/abilitymgr/src/utils/ability_event_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/ability_permission_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/app_mgr_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/dms_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/dump_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/extension_permissions_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/hmsf_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/keep_alive_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/main_element_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/modal_system_dialog_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/multi_app_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/multi_instance_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/start_ability_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/start_options_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/hidden_start_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/state_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/update_caller_info_util.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/uri_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/window_options_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/timeout_state_utils.cpp", + "${ability_runtime_services_path}/abilitymgr/src/kiosk_status.cpp", + "${ability_runtime_services_path}/abilitymgr/src/kiosk_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/utils/udmf_utils.cpp", +] + +if (ability_runtime_graphics) { + abilityms_files += [ + "${ability_runtime_services_path}/appdfr/src/application_anr_listener.cpp", + "${ability_runtime_services_path}/abilitymgr/src/implicit_start_processor.cpp", + "${ability_runtime_services_path}/abilitymgr/src/system_dialog_scheduler.cpp", + "${ability_runtime_services_path}/abilitymgr/src/ability_first_frame_state_observer_manager.cpp", + "${ability_runtime_services_path}/abilitymgr/src/screen_lock/unlock_screen_callback.cpp", + ] +} + +if (include_app_domain_verify) { + abilityms_files += [ "${ability_runtime_services_path}/abilitymgr/src/ag_convert_callback_impl.cpp" ] +} diff --git a/test/unittest/ability_manager_service_sixth_test/mock/include/mock_permission_verification.h b/test/unittest/ability_manager_service_sixth_test/mock/include/mock_permission_verification.h index 63b23513f15..1993437d383 100644 --- a/test/unittest/ability_manager_service_sixth_test/mock/include/mock_permission_verification.h +++ b/test/unittest/ability_manager_service_sixth_test/mock/include/mock_permission_verification.h @@ -39,7 +39,9 @@ struct VerificationInfo { PermissionVerification() = default; ~PermissionVerification() = default; - bool VerifyCallingPermission(const std::string &permissionName) const; + bool VerifyPermissionByTokenId(const int &tokenId, const std::string &permissionName) const; + + bool VerifyCallingPermission(const std::string &permissionName, const uint32_t specifyTokenId = 0) const; bool IsSACall() const; @@ -95,6 +97,8 @@ struct VerificationInfo { bool VerifyPrepareTerminatePermission() const; + bool VerifyPrepareTerminatePermission(const int &tokenId) const; + bool VerifySetProcessCachePermission() const; }; } // namespace AAFwk diff --git a/test/unittest/ability_manager_service_sixth_test/mock/src/mock_permission_verification.cpp b/test/unittest/ability_manager_service_sixth_test/mock/src/mock_permission_verification.cpp index b5b383f74d4..48f3cb26781 100644 --- a/test/unittest/ability_manager_service_sixth_test/mock/src/mock_permission_verification.cpp +++ b/test/unittest/ability_manager_service_sixth_test/mock/src/mock_permission_verification.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 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 @@ -13,36 +13,68 @@ * limitations under the License. */ -#include "mock_permission_verification.h" +#include "permission_verification.h" + +#include "mock_my_flag.h" namespace OHOS { namespace AAFwk { -bool PermissionVerification::VerifyCallingPermission(const std::string &permissionName) const +bool PermissionVerification::VerifyPermissionByTokenId(const int &tokenId, const std::string &permissionName) const { return !!(MyFlag::flag_); } + +bool PermissionVerification::VerifyCallingPermission( + const std::string &permissionName, const uint32_t specifyTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::IsSACall() const { return (MyFlag::flag_ & MyFlag::FLAG::IS_SA_CALL); } + +bool PermissionVerification::IsSACallByTokenId(uint32_t callerTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::IsShellCall() const { return (MyFlag::flag_ & MyFlag::FLAG::IS_SHELL_CALL); } +bool PermissionVerification::IsShellCallByTokenId(uint32_t callerTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::CheckSpecificSystemAbilityAccessPermission(const std::string &processName) const { return !!(MyFlag::flag_); } + +bool PermissionVerification::CheckObserverCallerPermission() const +{ + return !!(MyFlag::flag_); +} bool PermissionVerification::VerifyRunningInfoPerm() const { return !!(MyFlag::flag_); } + +bool PermissionVerification::VerifyCustomSandbox(uint32_t accessTokenId) const +{ + return !!(MyFlag::flag_); +} + bool PermissionVerification::VerifyControllerPerm() const { return !!(MyFlag::flag_); } + #ifdef WITH_DLP bool PermissionVerification::VerifyDlpPermission(Want &want) const { @@ -53,30 +85,42 @@ int PermissionVerification::VerifyAccountPermission() const { return MyFlag::flag_; } + bool PermissionVerification::VerifyMissionPermission() const { return !!(MyFlag::flag_); } + int PermissionVerification::VerifyAppStateObserverPermission() const { return MyFlag::flag_; } + int32_t PermissionVerification::VerifyUpdateConfigurationPerm() const { return static_cast(MyFlag::flag_); } + bool PermissionVerification::VerifyInstallBundlePermission() const { return !!(MyFlag::flag_); } + bool PermissionVerification::VerifyGetBundleInfoPrivilegedPermission() const { return !!(MyFlag::flag_); } + +bool PermissionVerification::VerifyStartRecentAbilityPermission() const +{ + return !!(MyFlag::flag_); +} + int PermissionVerification::CheckCallDataAbilityPermission(const VerificationInfo &verificationInfo, bool isShell) const { - return 0; + return MyFlag::flag_; } + int PermissionVerification::CheckCallServiceAbilityPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; @@ -85,50 +129,122 @@ int PermissionVerification::CheckCallServiceAbilityPermission(const Verification int PermissionVerification::CheckCallAbilityPermission(const VerificationInfo &verificationInfo, bool isCallByShortcut) const { - return MyFlag::abilityCallFlag_; + return MyFlag::flag_; } + int PermissionVerification::CheckCallServiceExtensionPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; } + int PermissionVerification::CheckStartByCallPermission(const VerificationInfo &verificationInfo) const { return MyFlag::flag_; } + unsigned int PermissionVerification::GetCallingTokenID() const { return static_cast(MyFlag::flag_); } -bool PermissionVerification::JudgeStartInvisibleAbility(const uint32_t accessTokenId, const bool visible) const + +bool PermissionVerification::JudgeStartInvisibleAbility(const uint32_t accessTokenId, const bool visible, + const uint32_t specifyTokenId) const { return !!(MyFlag::flag_); } + bool PermissionVerification::JudgeStartAbilityFromBackground(const bool isBackgroundCall) const { return !!(MyFlag::flag_); } + bool PermissionVerification::JudgeAssociatedWakeUp(const uint32_t accessTokenId, const bool associatedWakeUp) const { return !!(MyFlag::flag_); } -int PermissionVerification::JudgeInvisibleAndBackground(const VerificationInfo &verificationInfo) const + +int PermissionVerification::JudgeInvisibleAndBackground(const VerificationInfo &verificationInfo, + bool isCallByShortcut) const { return MyFlag::flag_; } + bool PermissionVerification::JudgeCallerIsAllowedToUseSystemAPI() const { - return MyFlag::systemAppFlag_; + return true; } + bool PermissionVerification::VerifyPrepareTerminatePermission() const { return true; } + +bool PermissionVerification::VerifyPrepareTerminatePermission(const int &tokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyShellStartExtensionType(int32_t type) const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyPreloadApplicationPermission() const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyPreStartAtomicServicePermission() const +{ + return MyFlag::flag_; +} + bool PermissionVerification::IsSystemAppCall() const { - return MyFlag::systemCallFlag_; + return true; +} + +bool PermissionVerification::IsSystemAppCallByTokenId(uint32_t callerTokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyBackgroundCallPermission(const bool isBackgroundCall) const +{ + return MyFlag::flag_; +} + +bool PermissionVerification::VerifyKillProcessDependedOnWebPermission() const +{ + return true; +} + +bool PermissionVerification::VerifyBlockAllAppStartPermission() const +{ + return true; +} + +bool PermissionVerification::VerifyStartUIAbilityToHiddenPermission() const +{ + return true; +} + +bool PermissionVerification::VerifySuperviseKiaServicePermission() const +{ + return true; +} + +bool PermissionVerification::VerifyStartLocalDebug(int32_t tokenId) const +{ + return true; +} + +bool PermissionVerification::VerifyStartSelfUIAbility(int tokenId) const +{ + return true; } -bool PermissionVerification::VerifySetProcessCachePermission() const +bool PermissionVerification::VerifyFusionAccessPermission() const { return true; } -- Gitee