1# Copyright (c) 2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//base/startup/appspawn/appspawn.gni") 15import("//base/startup/appspawn/modules/sandbox/sandbox.gni") 16import("//build/test.gni") 17 18ohos_unittest("AppSpawn_ut") { 19 module_out_path = "appspawn/appspawn" 20 cflags = [ "-Dprivate=public" ] 21 if (appspawn_unittest_coverage) { 22 cflags += [ "--coverage" ] 23 ldflags = [ "--coverage" ] 24 cflags_cc = [ "--coverage" ] 25 } 26 deps = [] 27 defines = [ 28 "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"", 29 "APPSPAWN_LABEL=\"APPSPAWN_UT\"", 30 "APPSPAWN_TEST", 31 "APPSPAWN_CLIENT", 32 "APPSPAWN_DEBUG", 33 "DEBUG_BEGETCTL_BOOT", 34 "USER_TIMER_TO_CHECK", 35 "OHOS_DEBUG", 36 "GRAPHIC_PERMISSION_CHECK", 37 "capset=CapsetStub", 38 "unshare=UnshareStub", 39 "mount=MountStub", 40 "symlink=SymlinkStub", 41 "chdir=ChdirStub", 42 "chroot=ChrootStub", 43 "syscall=SyscallStub", 44 "umount2=Umount2Stub", 45 "access=AccessStub", 46 "dlopen=DlopenStub", 47 "dlsym=DlsymStub", 48 "dlclose=DlcloseStub", 49 "execv=ExecvStub", 50 "getprocpid=GetprocpidStub", 51 "setgroups=SetgroupsStub", 52 "setresgid=SetresgidStub", 53 "setresuid=SetresuidStub", 54 "setuid=SetuidStub", 55 "setgid=SetgidStub", 56 "execvp=ExecvpStub", 57 "ioctl=IoctlStub", 58 "execve=ExecveStub", 59 "setcon=SetconStub", 60 ] 61 62 include_dirs = [ 63 "${appspawn_path}", 64 "${appspawn_path}/common", 65 "${appspawn_path}/standard", 66 "${appspawn_path}/modules/modulemgr", 67 "${appspawn_path}/modules/ace_adapter", 68 "${appspawn_path}/modules/common", 69 "${appspawn_path}/modules/sysevent", 70 "${appspawn_innerkits_path}/client", 71 "${appspawn_innerkits_path}/include", 72 "${appspawn_innerkits_path}/permission", 73 "${appspawn_path}/modules/module_engine/include", 74 "${appspawn_path}/test/mock", 75 "${appspawn_path}/test/unittest", 76 "${appspawn_path}/util/include", 77 ] 78 include_dirs += appspawn_sandbox_inc 79 sources = [ 80 "${appspawn_path}/common/appspawn_server.c", 81 "${appspawn_path}/common/appspawn_trace.cpp", 82 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 83 "${appspawn_path}/standard/appspawn_appmgr.c", 84 "${appspawn_path}/standard/appspawn_kickdog.c", 85 "${appspawn_path}/standard/appspawn_msgmgr.c", 86 "${appspawn_path}/standard/appspawn_service.c", 87 "${appspawn_path}/util/src/appspawn_utils.c", 88 ] 89 90 # client 91 sources += [ 92 "${appspawn_innerkits_path}/client/appspawn_client.c", 93 "${appspawn_innerkits_path}/client/appspawn_msg.c", 94 "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c", 95 ] 96 97 # modules sources 98 sources += [ 99 "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp", 100 "${appspawn_path}/modules/ace_adapter/command_lexer.cpp", 101 "${appspawn_path}/modules/common/appspawn_adapter.cpp", 102 "${appspawn_path}/modules/common/appspawn_begetctl.c", 103 "${appspawn_path}/modules/common/appspawn_cgroup.c", 104 "${appspawn_path}/modules/common/appspawn_common.c", 105 "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp", 106 "${appspawn_path}/modules/common/appspawn_namespace.c", 107 "${appspawn_path}/modules/common/appspawn_silk.c", 108 "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp", 109 ] 110 sources += appspawn_sandbox_src 111 112 # add stub 113 include_dirs += [ "${appspawn_path}/test/mock" ] 114 sources += [ 115 "${appspawn_path}/test/mock/app_spawn_stub.cpp", 116 "${appspawn_path}/test/mock/app_system_stub.c", 117 ] 118 119 # add test 120 include_dirs += [ "${appspawn_path}/test/unittest" ] 121 sources += [ 122 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_appmgr_test.cpp", 123 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_beget_test.cpp", 124 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_cgroup_test.cpp", 125 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_child_test.cpp", 126 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_command_lexer_test.cpp", 127 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_kickdog_test.cpp", 128 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_module_interface_test.cpp", 129 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_service_test.cpp", 130 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_silk_test.cpp", 131 "${appspawn_path}/test/unittest/app_spawn_standard_test/nweb_spawn_service_test.cpp", 132 "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp", 133 ] 134 135 if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) { 136 sources += [ 137 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_new_mount_test.cpp", 138 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_new_test.cpp", 139 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandboxmgr_test.cpp", 140 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_new_debug_mode.cpp", 141 ] 142 defines += [ "APPSPAWN_SANDBOX_NEW" ] 143 } else { 144 sources += [ 145 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_test.cpp", 146 ] 147 } 148 149 configs = [ "${appspawn_path}:appspawn_config" ] 150 external_deps = [ 151 "ability_base:want", 152 "ability_runtime:app_manager", 153 "ability_runtime:appkit_native", 154 "ability_runtime:runtime", 155 "access_token:libtokenid_sdk", 156 "access_token:libtokensetproc_shared", 157 "ace_engine:ace_forward_compatibility", 158 "bundle_framework:appexecfwk_base", 159 "bundle_framework:appexecfwk_core", 160 "cJSON:cjson", 161 "c_utils:utils", 162 "config_policy:configpolicy_util", 163 "eventhandler:libeventhandler", 164 "ffrt:libffrt", 165 "hilog:libhilog", 166 "hitrace:hitrace_meter", 167 "init:libbegetutil", 168 "init:seccomp", 169 "ipc:ipc_core", 170 "napi:ace_napi", 171 "os_account:os_account_innerkits", 172 "resource_management:global_resmgr", 173 ] 174 175 if (appspawn_hitrace_option == true) { 176 defines += [ "APPSPAWN_HITRACE_OPTION" ] 177 external_deps += [ "hitrace:libhitrace_option" ] 178 } 179 180 if (appspawn_support_nweb) { 181 external_deps += [ "webview:libarkweb_utils" ] 182 } 183 184 if (enable_appspawn_dump_catcher) { 185 external_deps += [ "faultloggerd:libdfx_dumpcatcher" ] 186 } 187 if (asan_detector || is_asan) { 188 defines += [ "ASAN_DETECTOR" ] 189 sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ] 190 } 191 192 if (build_selinux) { 193 defines += [ "WITH_SELINUX" ] 194 external_deps += [ 195 "selinux:libselinux", 196 "selinux_adapter:libhap_restorecon", 197 ] 198 } 199 200 if (appspawn_report_event) { 201 defines += [ "REPORT_EVENT" ] 202 external_deps += [ "hisysevent:libhisysevent" ] 203 sources += [ 204 "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp", 205 "${appspawn_path}/modules/sysevent/event_reporter.cpp", 206 "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp", 207 ] 208 } 209 210 if (target_cpu == "arm64" || target_cpu == "x86_64" || 211 target_cpu == "riscv64") { 212 defines += [ "APPSPAWN_64" ] 213 } 214 215 if (dlp_permission_enable) { 216 cflags_cc = [ "-DWITH_DLP" ] 217 external_deps += [ "dlp_permission_service:libdlp_fuse" ] 218 } 219} 220 221ohos_unittest("AppSpawnDebugSandbox") { 222 module_out_path = "appspawn/appspawn" 223 cflags = [ "-Dprivate=public" ] 224 if (appspawn_unittest_coverage) { 225 cflags += [ "--coverage" ] 226 ldflags = [ "--coverage" ] 227 cflags_cc = [ "--coverage" ] 228 } 229 deps = [] 230 defines = [ 231 "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"", 232 "APPSPAWN_LABEL=\"APPSPAWN_UT\"", 233 "APPSPAWN_TEST", 234 "APPSPAWN_CLIENT", 235 "APPSPAWN_DEBUG", 236 "DEBUG_BEGETCTL_BOOT", 237 "USER_TIMER_TO_CHECK", 238 "OHOS_DEBUG", 239 ] 240 241 include_dirs = [ 242 "${appspawn_path}", 243 "${appspawn_path}/common", 244 "${appspawn_path}/standard", 245 "${appspawn_innerkits_path}/client", 246 "${appspawn_innerkits_path}/permission", 247 "${appspawn_path}/test/mock", 248 "${appspawn_path}/test/unittest", 249 "${appspawn_path}/util/include", 250 "${appspawn_path}/modules/module_engine/include", 251 "${appspawn_path}/modules/sandbox", 252 "${appspawn_path}/modules/sandbox/normal" 253 ] 254 255 sources = [ 256 "${appspawn_path}/util/src/appspawn_utils.c", 257 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 258 "${appspawn_path}/standard/appspawn_msgmgr.c", 259 "${appspawn_path}/common/appspawn_trace.cpp", 260 "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c", 261 ] 262 263 if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) { 264 defines += [ "APPSPAWN_SANDBOX_NEW" ] 265 } else { 266 sources += [ 267 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_sandbox_debug_mode.cpp", 268 "${appspawn_path}/test/mock/lib_func_mock/lib_func_mock.cpp", 269 "${appspawn_path}/modules/sandbox/sandbox_dec.c", 270 "${appspawn_path}/modules/sandbox/appspawn_permission.c", 271 "${appspawn_path}/modules/sandbox/normal/sandbox_shared_mount.cpp", 272 "${appspawn_path}/modules/sandbox/normal/appspawn_sandbox_manager.cpp", 273 "${appspawn_path}/modules/sandbox/normal/sandbox_common.cpp", 274 ] 275 include_dirs += [ "${appspawn_path}/test/mock/lib_func_mock" ] 276 } 277 278 configs = [ "${appspawn_path}:appspawn_config" ] 279 external_deps = [ 280 "cJSON:cjson", 281 "c_utils:utils", 282 "config_policy:configpolicy_util", 283 "hilog:libhilog", 284 "hitrace:hitrace_meter", 285 "init:libbegetutil", 286 "googletest:gmock_main", 287 ] 288 289 if (target_cpu == "arm64" || target_cpu == "x86_64" || 290 target_cpu == "riscv64") { 291 defines += [ "APPSPAWN_64" ] 292 } 293 294 if (build_selinux) { 295 defines += [ "WITH_SELINUX" ] 296 external_deps += [ 297 "selinux:libselinux", 298 "selinux_adapter:libhap_restorecon", 299 ] 300 } 301 302 if (appspawn_report_event) { 303 defines += [ "REPORT_EVENT" ] 304 external_deps += [ "hisysevent:libhisysevent" ] 305 sources += [ 306 "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp", 307 "${appspawn_path}/modules/sysevent/event_reporter.cpp", 308 "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp", 309 ] 310 } 311 312 if (dlp_permission_enable) { 313 cflags_cc = [ "-DWITH_DLP" ] 314 external_deps += [ "dlp_permission_service:libdlp_fuse" ] 315 } 316} 317 318ohos_unittest("AppSpawn_coldrun_ut") { 319 module_out_path = "appspawn/appspawn" 320 cflags = [ "-Dprivate=public" ] 321 if (appspawn_unittest_coverage) { 322 cflags += [ "--coverage" ] 323 ldflags = [ "--coverage" ] 324 cflags_cc = [ "--coverage" ] 325 } 326 deps = [] 327 defines = [ 328 "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"", 329 "APPSPAWN_LABEL=\"APPSPAWN_UT\"", 330 "APPSPAWN_TEST", 331 "APPSPAWN_DEBUG", 332 "APPSPAWN_CLIENT", 333 "DEBUG_BEGETCTL_BOOT", 334 "USER_TIMER_TO_CHECK", 335 "OHOS_DEBUG", 336 "GRAPHIC_PERMISSION_CHECK", 337 "capset=CapsetStub", 338 "unshare=UnshareStub", 339 "mount=MountStub", 340 "symlink=SymlinkStub", 341 "chdir=ChdirStub", 342 "chroot=ChrootStub", 343 "syscall=SyscallStub", 344 "umount2=Umount2Stub", 345 "access=AccessStub", 346 "dlopen=DlopenStub", 347 "dlsym=DlsymStub", 348 "dlclose=DlcloseStub", 349 "execv=ExecvStub", 350 "getprocpid=GetprocpidStub", 351 "setgroups=SetgroupsStub", 352 "setresgid=SetresgidStub", 353 "setresuid=SetresuidStub", 354 "setuid=SetuidStub", 355 "setgid=SetgidStub", 356 "execvp=ExecvpStub", 357 "ioctl=IoctlStub", 358 "execve=ExecveStub", 359 "setcon=SetconStub", 360 ] 361 362 include_dirs = [ 363 "${appspawn_path}", 364 "${appspawn_path}/common", 365 "${appspawn_path}/standard", 366 "${appspawn_path}/modules/modulemgr", 367 "${appspawn_path}/modules/ace_adapter", 368 "${appspawn_path}/modules/common", 369 "${appspawn_path}/modules/sysevent", 370 "${appspawn_innerkits_path}/client", 371 "${appspawn_innerkits_path}/include", 372 "${appspawn_innerkits_path}/permission", 373 "${appspawn_path}/modules/module_engine/include", 374 "${appspawn_path}/test/mock", 375 "${appspawn_path}/test/unittest", 376 "${appspawn_path}/util/include", 377 ] 378 include_dirs += appspawn_sandbox_inc 379 sources = [ 380 "${appspawn_path}/common/appspawn_server.c", 381 "${appspawn_path}/common/appspawn_trace.cpp", 382 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 383 "${appspawn_path}/standard/appspawn_appmgr.c", 384 "${appspawn_path}/standard/appspawn_kickdog.c", 385 "${appspawn_path}/standard/appspawn_msgmgr.c", 386 "${appspawn_path}/standard/appspawn_service.c", 387 "${appspawn_path}/util/src/appspawn_utils.c", 388 ] 389 390 # client 391 sources += [ 392 "${appspawn_innerkits_path}/client/appspawn_client.c", 393 "${appspawn_innerkits_path}/client/appspawn_msg.c", 394 "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c", 395 ] 396 397 # modules sources 398 sources += [ 399 "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp", 400 "${appspawn_path}/modules/ace_adapter/command_lexer.cpp", 401 "${appspawn_path}/modules/common/appspawn_adapter.cpp", 402 "${appspawn_path}/modules/common/appspawn_begetctl.c", 403 "${appspawn_path}/modules/common/appspawn_cgroup.c", 404 "${appspawn_path}/modules/common/appspawn_common.c", 405 "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp", 406 "${appspawn_path}/modules/common/appspawn_namespace.c", 407 "${appspawn_path}/modules/common/appspawn_silk.c", 408 "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp", 409 ] 410 sources += appspawn_sandbox_src 411 412 # add stub 413 include_dirs += [ "${appspawn_path}/test/mock" ] 414 sources += [ 415 "${appspawn_path}/test/mock/app_spawn_stub.cpp", 416 "${appspawn_path}/test/mock/app_system_stub.c", 417 ] 418 419 # add test 420 include_dirs += [ "${appspawn_path}/test/unittest" ] 421 sources += [ 422 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_cold_run_test.cpp", 423 "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp", 424 ] 425 426 if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) { 427 defines += [ "APPSPAWN_SANDBOX_NEW" ] 428 } 429 430 configs = [ "${appspawn_path}:appspawn_config" ] 431 external_deps = [ 432 "ability_base:want", 433 "ability_runtime:app_manager", 434 "ability_runtime:appkit_native", 435 "ability_runtime:runtime", 436 "access_token:libtokenid_sdk", 437 "access_token:libtokensetproc_shared", 438 "ace_engine:ace_forward_compatibility", 439 "bundle_framework:appexecfwk_base", 440 "bundle_framework:appexecfwk_core", 441 "cJSON:cjson", 442 "c_utils:utils", 443 "config_policy:configpolicy_util", 444 "eventhandler:libeventhandler", 445 "ffrt:libffrt", 446 "hilog:libhilog", 447 "hitrace:hitrace_meter", 448 "init:libbegetutil", 449 "init:seccomp", 450 "ipc:ipc_core", 451 "napi:ace_napi", 452 "os_account:os_account_innerkits", 453 "resource_management:global_resmgr", 454 ] 455 if (enable_appspawn_dump_catcher) { 456 external_deps += [ "faultloggerd:libdfx_dumpcatcher" ] 457 } 458 if (asan_detector || is_asan) { 459 defines += [ "ASAN_DETECTOR" ] 460 sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ] 461 } 462 463 if (appspawn_support_nweb) { 464 external_deps += [ "webview:libarkweb_utils" ] 465 } 466 467 if (build_selinux) { 468 defines += [ "WITH_SELINUX" ] 469 external_deps += [ 470 "selinux:libselinux", 471 "selinux_adapter:libhap_restorecon", 472 ] 473 } 474 475 if (appspawn_report_event) { 476 defines += [ "REPORT_EVENT" ] 477 external_deps += [ "hisysevent:libhisysevent" ] 478 sources += [ 479 "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp", 480 "${appspawn_path}/modules/sysevent/event_reporter.cpp", 481 "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp", 482 ] 483 } 484 485 if (target_cpu == "arm64" || target_cpu == "x86_64" || 486 target_cpu == "riscv64") { 487 defines += [ "APPSPAWN_64" ] 488 } 489 490 if (dlp_permission_enable) { 491 cflags_cc = [ "-DWITH_DLP" ] 492 external_deps += [ "dlp_permission_service:libdlp_fuse" ] 493 } 494} 495 496ohos_unittest("AppSpawn_common_ut") { 497 module_out_path = "appspawn/appspawn" 498 cflags = [ "-Dprivate=public" ] 499 if (appspawn_unittest_coverage) { 500 cflags += [ "--coverage" ] 501 ldflags = [ "--coverage" ] 502 cflags_cc = [ "--coverage" ] 503 } 504 deps = [] 505 defines = [ 506 "APPSPAWN_BASE_DIR=\"/data/appspawn_ut\"", 507 "APPSPAWN_LABEL=\"APPSPAWN_UT\"", 508 "APPSPAWN_TEST", 509 "APPSPAWN_DEBUG", 510 "APPSPAWN_CLIENT", 511 "DEBUG_BEGETCTL_BOOT", 512 "USER_TIMER_TO_CHECK", 513 "OHOS_DEBUG", 514 "GRAPHIC_PERMISSION_CHECK", 515 "capset=CapsetStub", 516 "unshare=UnshareStub", 517 "mount=MountStub", 518 "symlink=SymlinkStub", 519 "chdir=ChdirStub", 520 "chroot=ChrootStub", 521 "syscall=SyscallStub", 522 "umount2=Umount2Stub", 523 "access=AccessStub", 524 "dlopen=DlopenStub", 525 "dlsym=DlsymStub", 526 "dlclose=DlcloseStub", 527 "execv=ExecvStub", 528 "getprocpid=GetprocpidStub", 529 "setgroups=SetgroupsStub", 530 "setresgid=SetresgidStub", 531 "setresuid=SetresuidStub", 532 "setuid=SetuidStub", 533 "setgid=SetgidStub", 534 "execvp=ExecvpStub", 535 "ioctl=IoctlStub", 536 "execve=ExecveStub", 537 "setcon=SetconStub", 538 ] 539 540 include_dirs = [ 541 "${appspawn_path}", 542 "${appspawn_path}/common", 543 "${appspawn_path}/standard", 544 "${appspawn_path}/modules/modulemgr", 545 "${appspawn_path}/modules/ace_adapter", 546 "${appspawn_path}/modules/common", 547 "${appspawn_path}/modules/sysevent", 548 "${appspawn_innerkits_path}/client", 549 "${appspawn_innerkits_path}/include", 550 "${appspawn_innerkits_path}/permission", 551 "${appspawn_path}/modules/module_engine/include", 552 "${appspawn_path}/test/mock", 553 "${appspawn_path}/test/unittest", 554 "${appspawn_path}/util/include", 555 ] 556 include_dirs += appspawn_sandbox_inc 557 sources = [ 558 "${appspawn_path}/common/appspawn_server.c", 559 "${appspawn_path}/common/appspawn_trace.cpp", 560 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 561 "${appspawn_path}/standard/appspawn_appmgr.c", 562 "${appspawn_path}/standard/appspawn_kickdog.c", 563 "${appspawn_path}/standard/appspawn_msgmgr.c", 564 "${appspawn_path}/standard/appspawn_service.c", 565 "${appspawn_path}/util/src/appspawn_utils.c", 566 ] 567 568 # client 569 sources += [ 570 "${appspawn_innerkits_path}/client/appspawn_client.c", 571 "${appspawn_innerkits_path}/client/appspawn_msg.c", 572 "${appspawn_innerkits_path}/permission/appspawn_mount_permission.c", 573 ] 574 575 # modules sources 576 sources += [ 577 "${appspawn_path}/modules/ace_adapter/ace_adapter.cpp", 578 "${appspawn_path}/modules/ace_adapter/command_lexer.cpp", 579 "${appspawn_path}/modules/common/appspawn_adapter.cpp", 580 "${appspawn_path}/modules/common/appspawn_begetctl.c", 581 "${appspawn_path}/modules/common/appspawn_cgroup.c", 582 "${appspawn_path}/modules/common/appspawn_common.c", 583 "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp", 584 "${appspawn_path}/modules/common/appspawn_encaps.c", 585 "${appspawn_path}/modules/common/appspawn_namespace.c", 586 "${appspawn_path}/modules/common/appspawn_silk.c", 587 "${appspawn_path}/modules/nweb_adapter/nwebspawn_adapter.cpp", 588 ] 589 sources += appspawn_sandbox_src 590 591 # add stub 592 include_dirs += [ "${appspawn_path}/test/mock" ] 593 sources += [ 594 "${appspawn_path}/test/mock/app_spawn_stub.cpp", 595 "${appspawn_path}/test/mock/app_system_stub.c", 596 ] 597 598 # add test 599 include_dirs += [ "${appspawn_path}/test/unittest" ] 600 sources += [ 601 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_ace_test.cpp", 602 "${appspawn_path}/test/unittest/app_spawn_standard_test/app_spawn_common_test.cpp", 603 "${appspawn_path}/test/unittest/app_spawn_test_helper.cpp", 604 ] 605 606 if (defined(appspawn_sandbox_new) && appspawn_sandbox_new) { 607 defines += [ "APPSPAWN_SANDBOX_NEW" ] 608 } 609 610 configs = [ "${appspawn_path}:appspawn_config" ] 611 external_deps = [ 612 "ability_base:want", 613 "ability_runtime:app_manager", 614 "ability_runtime:appkit_native", 615 "ability_runtime:runtime", 616 "access_token:libtokenid_sdk", 617 "access_token:libtokensetproc_shared", 618 "ace_engine:ace_forward_compatibility", 619 "bundle_framework:appexecfwk_base", 620 "bundle_framework:appexecfwk_core", 621 "cJSON:cjson", 622 "c_utils:utils", 623 "config_policy:configpolicy_util", 624 "eventhandler:libeventhandler", 625 "ffrt:libffrt", 626 "hilog:libhilog", 627 "hitrace:hitrace_meter", 628 "init:libbegetutil", 629 "init:seccomp", 630 "ipc:ipc_core", 631 "napi:ace_napi", 632 "os_account:os_account_innerkits", 633 "resource_management:global_resmgr", 634 ] 635 if (enable_appspawn_dump_catcher) { 636 external_deps += [ "faultloggerd:libdfx_dumpcatcher" ] 637 } 638 if (asan_detector || is_asan) { 639 defines += [ "ASAN_DETECTOR" ] 640 sources += [ "${appspawn_path}/modules/asan/asan_detector.c" ] 641 } 642 643 if (appspawn_support_nweb) { 644 external_deps += [ "webview:libarkweb_utils" ] 645 } 646 647 if (build_selinux) { 648 defines += [ "WITH_SELINUX" ] 649 external_deps += [ 650 "selinux:libselinux", 651 "selinux_adapter:libhap_restorecon", 652 ] 653 } 654 655 if (appspawn_report_event) { 656 defines += [ "REPORT_EVENT" ] 657 external_deps += [ "hisysevent:libhisysevent" ] 658 sources += [ 659 "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp", 660 "${appspawn_path}/modules/sysevent/event_reporter.cpp", 661 "${appspawn_path}/modules/sysevent/hisysevent_adapter.cpp", 662 ] 663 } 664 665 if (target_cpu == "arm64" || target_cpu == "x86_64" || 666 target_cpu == "riscv64") { 667 defines += [ "APPSPAWN_64" ] 668 } 669 670 if (dlp_permission_enable) { 671 cflags_cc = [ "-DWITH_DLP" ] 672 external_deps += [ "dlp_permission_service:libdlp_fuse" ] 673 } 674} 675