1{ 2 "title": "JSON schema for HarmonyProfile.json", 3 "$schema": "http://json-schema.org/draft-07/schema#", 4 "type": "object", 5 "additionalProperties": true, 6 "required": [ 7 "app", 8 "deviceConfig", 9 "module" 10 ], 11 "propertyNames": { 12 "enum": [ 13 "app", 14 "deviceConfig", 15 "module" 16 ] 17 }, 18 "properties": { 19 "app": { 20 "description": "Indicates the global configuration of an application. Different .hap files of the same application must use the same app configuration.", 21 "type": "object", 22 "required": [ 23 "bundleName", 24 "version" 25 ], 26 "propertyNames": { 27 "enum": [ 28 "bundleName", 29 "vendor", 30 "version", 31 "apiVersion", 32 "type", 33 "relatedBundleName", 34 "smartWindowSize", 35 "smartWindowDeviceType", 36 "targetBundleList", 37 "singleton", 38 "removable", 39 "userDataClearable" 40 ] 41 }, 42 "properties": { 43 "bundleName": { 44 "description": "Indicates the bundle name of the application. It uniquely identifies the application. The value is a string with 7 to 127 bytes of a reverse domain name, for example, com.huawei.himusic. It is recommended that the first label of this attribute is the top-level domain com, the second label is the vendor or individual name, and the third label is the application name. This label is a string type and cannot be defaulted.", 45 "type": "string", 46 "maxLength": 127, 47 "minLength": 7, 48 "pattern": "^(([a-zA-Z]|[a-zA-Z][0-9a-zA-Z_]+)[.]([0-9a-zA-Z_.]+))|([{]([a-zA-Z]|[a-zA-Z][0-9a-zA-Z_]+)[}](.huawei.com))|[{](bundleName)[}]$" 49 }, 50 "vendor": { 51 "description": "Describes the application vendor. The value is a string with a maximum of 255 bytes. This label is a string type and can be defaulted.", 52 "type": "string", 53 "maxLength": 255 54 }, 55 "removable": { 56 "description": "Describes the application can remove or not. This attribute takes effect only when the system application or privilege application is used", 57 "type": "boolean" 58 }, 59 "version": { 60 "description": "Indicates the version information of the application.Includes two sub-labels:”code” and ”name”.This label cannot be left blank.", 61 "type": "object", 62 "required": [ 63 "code", 64 "name" 65 ], 66 "propertyNames": { 67 "enum": [ 68 "code", 69 "name", 70 "minCompatibleVersionCode" 71 ] 72 }, 73 "properties": { 74 "code": { 75 "description": "Indicates the version number of the application. The value is an integer greater than 0. A larger value generally represents a later version.The system determines the application version based on the tag value.This label cannot be left blank.", 76 "type": "integer", 77 "minimum": 0, 78 "maximum": 2147483647 79 }, 80 "name": { 81 "description": "Indicates the text description of the application version.Used for displaying to users.A string can contain a maximum of 127 bytes.This label cannot be left blank.", 82 "type": "string", 83 "maxLength": 127, 84 "pattern": "^[0-9.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$" 85 }, 86 "minCompatibleVersionCode": { 87 "description": "This label identifies the earliest historical version compatible with the app pack, which is used for cross-device compatibility determination.This label is an integer and can be defaulted.", 88 "type": "integer", 89 "minimum": 0, 90 "maximum": 2147483647 91 } 92 } 93 }, 94 "apiVersion": { 95 "description": "This tag identifies the Harmony API version on which the application depends.", 96 "type": "object", 97 "propertyNames": { 98 "enum": [ 99 "compatible", 100 "target", 101 "releaseType" 102 ] 103 }, 104 "properties": { 105 "compatible": { 106 "description": "Indicates the minimum API version required for running an application. This label is an integer and can be defaulted.", 107 "type": "integer", 108 "minimum": 0 109 }, 110 "target": { 111 "description": "This tag identifies the target API version required for application running. The value is an integer.", 112 "type": "integer", 113 "minimum": 0 114 }, 115 "releaseType": { 116 "description": "This tag identifies the type of the target API version required for application running. The tag is a string.", 117 "type": "string", 118 "pattern": "^(Canary[1-9][0-9]+|Canary[1-9]|Beta[1-9][0-9]+|Beta[1-9]|Release)$" 119 } 120 } 121 }, 122 "type": { 123 "description": "Describes the application type. The value is a string with 'normal' or 'shareLib'. If the value of label is 'normal', This label can be left blank by default.", 124 "type": "string", 125 "enum": [ 126 "normal", 127 "shareLib" 128 ] 129 }, 130 "relatedBundleName": { 131 "description": "Indicates the name of the Android package associated with the Harmony application in the independent packaging scenario. The value is a character string. This tag is valid only for system applications.", 132 "type": "string" 133 }, 134 "smartWindowSize": { 135 "description": "Indicates the size of the simulation window. The value is a character string.", 136 "type": "string", 137 "pattern": "^([2-9][0-9]{2}|[1][0-9]{3}|2000)\\*([2-9][0-9]{2}|[1][0-9]{3}|2000)$" 138 }, 139 "smartWindowDeviceType": { 140 "description": "This label indicates the device on which the application is opened using the simulation window, a string array.", 141 "type": "array", 142 "items": { 143 "type": "string", 144 "enum": [ 145 "default", 146 "car", 147 "router", 148 "tablet", 149 "tv", 150 "wearable" 151 ] 152 } 153 }, 154 "targetBundleList": { 155 "description": "This tag specifies the list of Harmony services that can be installed without the application. The list contains the bundle name of each Harmony service. A maximum of five bundle names can be configured. This label is a string array type and can be defaulted.", 156 "type": "array", 157 "maxItems": 5, 158 "items": { 159 "type": "string" 160 } 161 }, 162 "singleton": { 163 "description": "Specifies whether the application is multi-instance according to the memory situation. If this attribute is set to true, the application is system application.", 164 "type": "boolean" 165 }, 166 "userDataClearable": { 167 "description": "Specifies whether to allow clear data. only for system application", 168 "type": "boolean" 169 } 170 } 171 }, 172 "deviceConfig": { 173 "description": "Indicates the application configuration applied to a specific type of devices. When compiling and generating the HAP package, copy the device type configuration supported by the HAP package to the generated config file. The compilation is not required for the devices that are not supported by the HAP package.", 174 "type": "object", 175 "propertyNames": { 176 "enum": [ 177 "car", 178 "default", 179 "tablet", 180 "tv", 181 "wearable", 182 "router" 183 ] 184 }, 185 "properties": { 186 "default": { 187 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 188 "type": "object", 189 "propertyNames": { 190 "enum": [ 191 "keepAlive", 192 "jointUserId", 193 "process", 194 "ark", 195 "directLaunch", 196 "network", 197 "supportBackup", 198 "compressNativeLibs", 199 "allowComponentsProxy" 200 ] 201 }, 202 "properties": { 203 "keepAlive": { 204 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 205 "type": "boolean" 206 }, 207 "jointUserId": { 208 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 209 "type": "string" 210 }, 211 "process": { 212 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 213 "type": "string", 214 "maxLength": 31 215 }, 216 "ark": { 217 "description": "This tag identifies maple configuration information.", 218 "type": "object", 219 "propertyNames": { 220 "enum": [ 221 "reqVersion", 222 "flag" 223 ] 224 }, 225 "properties": { 226 "reqVersion": { 227 "description": "Maple version number that supports the application.", 228 "type": "object", 229 "propertyNames": { 230 "enum": [ 231 "compatible", 232 "target" 233 ] 234 }, 235 "properties": { 236 "compatible": { 237 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 238 "type": "integer", 239 "minimum": 0 240 }, 241 "target": { 242 "description": "Specifies the target maple version of the application. This label is an integer.", 243 "type": "integer", 244 "minimum": 0 245 } 246 } 247 }, 248 "flag": { 249 "description": "Specifies the type of the maple application.", 250 "type": "string", 251 "enum": [ 252 "m", 253 "mo", 254 "z" 255 ] 256 } 257 } 258 }, 259 "directLaunch": { 260 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 261 "type": "boolean" 262 }, 263 "network": { 264 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 265 "type": "object", 266 "propertyNames": { 267 "enum": [ 268 "cleartextTraffic", 269 "securityConfig" 270 ] 271 }, 272 "properties": { 273 "cleartextTraffic": { 274 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 275 "type": "boolean" 276 }, 277 "securityConfig": { 278 "description": "Indicates the network security configuration of the application.", 279 "type": "object", 280 "propertyNames": { 281 "enum": [ 282 "domainSettings" 283 ] 284 }, 285 "properties": { 286 "domainSettings": { 287 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 288 "type": "object", 289 "propertyNames": { 290 "enum": [ 291 "cleartextPermitted", 292 "domains" 293 ] 294 }, 295 "properties": { 296 "cleartextPermitted": { 297 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 298 "type": "boolean" 299 }, 300 "domains": { 301 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 302 "type": "array", 303 "items": { 304 "type": "object", 305 "propertyNames": { 306 "enum": [ 307 "subdomains", 308 "name" 309 ] 310 }, 311 "properties": { 312 "subdomains": { 313 "description": "Subdomain name", 314 "type": "boolean" 315 }, 316 "name": { 317 "description": "Domain name", 318 "type": "string" 319 } 320 } 321 } 322 } 323 } 324 } 325 } 326 } 327 } 328 }, 329 "supportBackup": { 330 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 331 "type": "boolean" 332 }, 333 "compressNativeLibs": { 334 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 335 "type": "boolean" 336 }, 337 "allowComponentsProxy": { 338 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 339 "type": "boolean" 340 } 341 } 342 }, 343 "tv": { 344 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 345 "type": "object", 346 "propertyNames": { 347 "enum": [ 348 "keepAlive", 349 "jointUserId", 350 "process", 351 "ark", 352 "directLaunch", 353 "network", 354 "supportBackup", 355 "compressNativeLibs", 356 "allowComponentsProxy" 357 ] 358 }, 359 "properties": { 360 "keepAlive": { 361 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 362 "type": "boolean" 363 }, 364 "jointUserId": { 365 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 366 "type": "string" 367 }, 368 "process": { 369 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 370 "type": "string", 371 "maxLength": 31 372 }, 373 "ark": { 374 "description": "This tag identifies maple configuration information.", 375 "type": "object", 376 "propertyNames": { 377 "enum": [ 378 "reqVersion", 379 "flag" 380 ] 381 }, 382 "properties": { 383 "reqVersion": { 384 "description": "Maple version number that supports the application.", 385 "type": "object", 386 "propertyNames": { 387 "enum": [ 388 "compatible", 389 "target" 390 ] 391 }, 392 "properties": { 393 "compatible": { 394 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 395 "type": "integer", 396 "minimum": 0 397 }, 398 "target": { 399 "description": "Specifies the target maple version of the application. This label is an integer.", 400 "type": "integer", 401 "minimum": 0 402 } 403 } 404 }, 405 "flag": { 406 "description": "Specifies the type of the maple application.", 407 "type": "string", 408 "enum": [ 409 "m", 410 "mo", 411 "z" 412 ] 413 } 414 } 415 }, 416 "directLaunch": { 417 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 418 "type": "boolean" 419 }, 420 "network": { 421 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 422 "type": "object", 423 "propertyNames": { 424 "enum": [ 425 "cleartextTraffic", 426 "securityConfig" 427 ] 428 }, 429 "properties": { 430 "cleartextTraffic": { 431 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 432 "type": "boolean" 433 }, 434 "securityConfig": { 435 "description": "Indicates the network security configuration of the application.", 436 "type": "object", 437 "propertyNames": { 438 "enum": [ 439 "domainSettings" 440 ] 441 }, 442 "properties": { 443 "domainSettings": { 444 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 445 "type": "object", 446 "propertyNames": { 447 "enum": [ 448 "cleartextPermitted", 449 "domains" 450 ] 451 }, 452 "properties": { 453 "cleartextPermitted": { 454 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 455 "type": "boolean" 456 }, 457 "domains": { 458 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 459 "type": "array", 460 "items": { 461 "type": "object", 462 "propertyNames": { 463 "enum": [ 464 "subdomains", 465 "name" 466 ] 467 }, 468 "properties": { 469 "subdomains": { 470 "description": "Subdomain name", 471 "type": "boolean" 472 }, 473 "name": { 474 "description": "Domain name", 475 "type": "string" 476 } 477 } 478 } 479 } 480 } 481 } 482 } 483 } 484 } 485 }, 486 "supportBackup": { 487 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 488 "type": "boolean" 489 }, 490 "compressNativeLibs": { 491 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 492 "type": "boolean" 493 }, 494 "allowComponentsProxy": { 495 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 496 "type": "boolean" 497 } 498 } 499 }, 500 "wearable": { 501 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 502 "type": "object", 503 "propertyNames": { 504 "enum": [ 505 "keepAlive", 506 "jointUserId", 507 "process", 508 "ark", 509 "directLaunch", 510 "network", 511 "supportBackup", 512 "compressNativeLibs", 513 "allowComponentsProxy" 514 ] 515 }, 516 "properties": { 517 "keepAlive": { 518 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 519 "type": "boolean" 520 }, 521 "jointUserId": { 522 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 523 "type": "string" 524 }, 525 "process": { 526 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 527 "type": "string", 528 "maxLength": 31 529 }, 530 "ark": { 531 "description": "This tag identifies maple configuration information.", 532 "type": "object", 533 "propertyNames": { 534 "enum": [ 535 "reqVersion", 536 "flag" 537 ] 538 }, 539 "properties": { 540 "reqVersion": { 541 "description": "Maple version number that supports the application.", 542 "type": "object", 543 "propertyNames": { 544 "enum": [ 545 "compatible", 546 "target" 547 ] 548 }, 549 "properties": { 550 "compatible": { 551 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 552 "type": "integer", 553 "minimum": 0 554 }, 555 "target": { 556 "description": "Specifies the target maple version of the application. This label is an integer.", 557 "type": "integer", 558 "minimum": 0 559 } 560 } 561 }, 562 "flag": { 563 "description": "Specifies the type of the maple application.", 564 "type": "string", 565 "enum": [ 566 "m", 567 "mo", 568 "z" 569 ] 570 } 571 } 572 }, 573 "directLaunch": { 574 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 575 "type": "boolean" 576 }, 577 "network": { 578 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 579 "type": "object", 580 "propertyNames": { 581 "enum": [ 582 "cleartextTraffic", 583 "securityConfig" 584 ] 585 }, 586 "properties": { 587 "cleartextTraffic": { 588 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 589 "type": "boolean" 590 }, 591 "securityConfig": { 592 "description": "Indicates the network security configuration of the application.", 593 "type": "object", 594 "propertyNames": { 595 "enum": [ 596 "domainSettings" 597 ] 598 }, 599 "properties": { 600 "domainSettings": { 601 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 602 "type": "object", 603 "propertyNames": { 604 "enum": [ 605 "cleartextPermitted", 606 "domains" 607 ] 608 }, 609 "properties": { 610 "cleartextPermitted": { 611 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 612 "type": "boolean" 613 }, 614 "domains": { 615 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 616 "type": "array", 617 "items": { 618 "type": "object", 619 "propertyNames": { 620 "enum": [ 621 "subdomains", 622 "name" 623 ] 624 }, 625 "properties": { 626 "subdomains": { 627 "description": "Subdomain name", 628 "type": "boolean" 629 }, 630 "name": { 631 "description": "Domain name", 632 "type": "string" 633 } 634 } 635 } 636 } 637 } 638 } 639 } 640 } 641 } 642 }, 643 "supportBackup": { 644 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 645 "type": "boolean" 646 }, 647 "compressNativeLibs": { 648 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 649 "type": "boolean" 650 }, 651 "allowComponentsProxy": { 652 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 653 "type": "boolean" 654 } 655 } 656 }, 657 "tablet": { 658 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 659 "type": "object", 660 "propertyNames": { 661 "enum": [ 662 "keepAlive", 663 "jointUserId", 664 "process", 665 "ark", 666 "directLaunch", 667 "network", 668 "supportBackup", 669 "compressNativeLibs", 670 "allowComponentsProxy" 671 ] 672 }, 673 "properties": { 674 "keepAlive": { 675 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 676 "type": "boolean" 677 }, 678 "jointUserId": { 679 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 680 "type": "string" 681 }, 682 "process": { 683 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 684 "type": "string", 685 "maxLength": 31 686 }, 687 "ark": { 688 "description": "This tag identifies maple configuration information.", 689 "type": "object", 690 "propertyNames": { 691 "enum": [ 692 "reqVersion", 693 "flag" 694 ] 695 }, 696 "properties": { 697 "reqVersion": { 698 "description": "Maple version number that supports the application.", 699 "type": "object", 700 "propertyNames": { 701 "enum": [ 702 "compatible", 703 "target" 704 ] 705 }, 706 "properties": { 707 "compatible": { 708 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 709 "type": "integer", 710 "minimum": 0 711 }, 712 "target": { 713 "description": "Specifies the target maple version of the application. This label is an integer.", 714 "type": "integer", 715 "minimum": 0 716 } 717 } 718 }, 719 "flag": { 720 "description": "Specifies the type of the maple application.", 721 "type": "string", 722 "enum": [ 723 "m", 724 "mo", 725 "z" 726 ] 727 } 728 } 729 }, 730 "directLaunch": { 731 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 732 "type": "boolean" 733 }, 734 "network": { 735 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 736 "type": "object", 737 "propertyNames": { 738 "enum": [ 739 "cleartextTraffic", 740 "securityConfig" 741 ] 742 }, 743 "properties": { 744 "cleartextTraffic": { 745 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 746 "type": "boolean" 747 }, 748 "securityConfig": { 749 "description": "Indicates the network security configuration of the application.", 750 "type": "object", 751 "propertyNames": { 752 "enum": [ 753 "domainSettings" 754 ] 755 }, 756 "properties": { 757 "domainSettings": { 758 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 759 "type": "object", 760 "propertyNames": { 761 "enum": [ 762 "cleartextPermitted", 763 "domains" 764 ] 765 }, 766 "properties": { 767 "cleartextPermitted": { 768 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 769 "type": "boolean" 770 }, 771 "domains": { 772 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 773 "type": "array", 774 "items": { 775 "type": "object", 776 "propertyNames": { 777 "enum": [ 778 "subdomains", 779 "name" 780 ] 781 }, 782 "properties": { 783 "subdomains": { 784 "description": "Indicates whether a subdomain name is available.This label is a boolean type.", 785 "type": "boolean" 786 }, 787 "name": { 788 "description": "Indicates the domain name.This label is a string type", 789 "type": "string" 790 } 791 } 792 } 793 } 794 } 795 } 796 } 797 } 798 } 799 }, 800 "supportBackup": { 801 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 802 "type": "boolean" 803 }, 804 "compressNativeLibs": { 805 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 806 "type": "boolean" 807 }, 808 "allowComponentsProxy": { 809 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 810 "type": "boolean" 811 } 812 } 813 }, 814 "car": { 815 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 816 "type": "object", 817 "propertyNames": { 818 "enum": [ 819 "keepAlive", 820 "jointUserId", 821 "process", 822 "ark", 823 "directLaunch", 824 "network", 825 "supportBackup", 826 "compressNativeLibs", 827 "allowComponentsProxy" 828 ] 829 }, 830 "properties": { 831 "keepAlive": { 832 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 833 "type": "boolean" 834 }, 835 "jointUserId": { 836 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 837 "type": "string" 838 }, 839 "process": { 840 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 841 "type": "string", 842 "maxLength": 31 843 }, 844 "ark": { 845 "description": "This tag identifies maple configuration information.", 846 "type": "object", 847 "propertyNames": { 848 "enum": [ 849 "reqVersion", 850 "flag" 851 ] 852 }, 853 "properties": { 854 "reqVersion": { 855 "description": "Maple version number that supports the application.", 856 "type": "object", 857 "propertyNames": { 858 "enum": [ 859 "compatible", 860 "target" 861 ] 862 }, 863 "properties": { 864 "compatible": { 865 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 866 "type": "integer", 867 "minimum": 0 868 }, 869 "target": { 870 "description": "Specifies the target maple version of the application. This label is an integer.", 871 "type": "integer", 872 "minimum": 0 873 } 874 } 875 }, 876 "flag": { 877 "description": "Specifies the type of the maple application.", 878 "type": "string", 879 "enum": [ 880 "m", 881 "mo", 882 "z" 883 ] 884 } 885 } 886 }, 887 "directLaunch": { 888 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 889 "type": "boolean" 890 }, 891 "network": { 892 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 893 "type": "object", 894 "propertyNames": { 895 "enum": [ 896 "cleartextTraffic", 897 "securityConfig" 898 ] 899 }, 900 "properties": { 901 "cleartextTraffic": { 902 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 903 "type": "boolean" 904 }, 905 "securityConfig": { 906 "description": "Indicates the network security configuration of the application.", 907 "type": "object", 908 "propertyNames": { 909 "enum": [ 910 "domainSettings" 911 ] 912 }, 913 "properties": { 914 "domainSettings": { 915 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 916 "type": "object", 917 "propertyNames": { 918 "enum": [ 919 "cleartextPermitted", 920 "domains" 921 ] 922 }, 923 "properties": { 924 "cleartextPermitted": { 925 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 926 "type": "boolean" 927 }, 928 "domains": { 929 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 930 "type": "array", 931 "items": { 932 "type": "object", 933 "propertyNames": { 934 "enum": [ 935 "subdomains", 936 "name" 937 ] 938 }, 939 "properties": { 940 "subdomains": { 941 "description": "Subdomain name", 942 "type": "boolean" 943 }, 944 "name": { 945 "description": "Domain name", 946 "type": "string" 947 } 948 } 949 } 950 } 951 } 952 } 953 } 954 } 955 } 956 }, 957 "supportBackup": { 958 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 959 "type": "boolean" 960 }, 961 "compressNativeLibs": { 962 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 963 "type": "boolean" 964 }, 965 "allowComponentsProxy": { 966 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 967 "type": "boolean" 968 } 969 } 970 }, 971 "router": { 972 "description": "The configuration in the default tag is applicable to all devices. If the configuration is different for other device types, you need to configure the configuration under the configuration tag of the device type.", 973 "type": "object", 974 "propertyNames": { 975 "enum": [ 976 "keepAlive", 977 "jointUserId", 978 "process", 979 "ark", 980 "directLaunch", 981 "network", 982 "supportBackup", 983 "compressNativeLibs", 984 "allowComponentsProxy" 985 ] 986 }, 987 "properties": { 988 "keepAlive": { 989 "description": "Specifies whether the application will keep alive.If this attribute is set to true, the application will start during the OS startup. If the application process exits, the OS will restart it. This attribute applies only to system applications.This attribute is not supported by basic watches.This label can be left blank by default.", 990 "type": "boolean" 991 }, 992 "jointUserId": { 993 "description": "Indicates the user ID shared by applications.Generally, applications run in different processes, and resources used by the applications are isolated. However, in some cases, you may develop multiple applications that need to share resources with each other. This resource sharing is implemented based on the same jointUserId value on the premise that the applications have the same signature.This attribute is not supported by devices running the OHOS.", 994 "type": "string" 995 }, 996 "process": { 997 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 998 "type": "string", 999 "maxLength": 31 1000 }, 1001 "ark": { 1002 "description": "This tag identifies maple configuration information.", 1003 "type": "object", 1004 "propertyNames": { 1005 "enum": [ 1006 "reqVersion", 1007 "flag" 1008 ] 1009 }, 1010 "properties": { 1011 "reqVersion": { 1012 "description": "Maple version number that supports the application.", 1013 "type": "object", 1014 "propertyNames": { 1015 "enum": [ 1016 "compatible", 1017 "target" 1018 ] 1019 }, 1020 "properties": { 1021 "compatible": { 1022 "description": "Indicates the minimum maple version that supports the application. This label is an integer.", 1023 "type": "integer", 1024 "minimum": 0 1025 }, 1026 "target": { 1027 "description": "Specifies the target maple version of the application. This label is an integer.", 1028 "type": "integer", 1029 "minimum": 0 1030 } 1031 } 1032 }, 1033 "flag": { 1034 "description": "Specifies the type of the maple application.", 1035 "type": "string", 1036 "enum": [ 1037 "m", 1038 "mo", 1039 "z" 1040 ] 1041 } 1042 } 1043 }, 1044 "directLaunch": { 1045 "description": "Specifies whether the application can be started when the device is locked. Set this attribute to true if you want to start the application without unlocking the device.This attribute is not supported by devices running the OHOS.", 1046 "type": "boolean" 1047 }, 1048 "network": { 1049 "description": "Indicates the network security configuration. You can customize the network security settings of the application in a security statement configuration file without modifying the application code.", 1050 "type": "object", 1051 "propertyNames": { 1052 "enum": [ 1053 "cleartextTraffic", 1054 "securityConfig" 1055 ] 1056 }, 1057 "properties": { 1058 "cleartextTraffic": { 1059 "description": "Specifies whether an application can use plaintext network transmission. The value is of the Boolean type. The value true indicates that plaintext network transmission is enabled.", 1060 "type": "boolean" 1061 }, 1062 "securityConfig": { 1063 "description": "Indicates the network security configuration of the application.", 1064 "type": "object", 1065 "propertyNames": { 1066 "enum": [ 1067 "domainSettings" 1068 ] 1069 }, 1070 "properties": { 1071 "domainSettings": { 1072 "description": "Indicates the security settings of the custom network domain. This attribute allows nested domains. To be more specific, the domainSettings object of a large domain can be nested with the domainSettings objects of small network domains.", 1073 "type": "object", 1074 "propertyNames": { 1075 "enum": [ 1076 "cleartextPermitted", 1077 "domains" 1078 ] 1079 }, 1080 "properties": { 1081 "cleartextPermitted": { 1082 "description": "Specifies whether plaintext traffic can be transmitted in the custom network domain. If both cleartextTraffic and securityConfig are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the cleartextPermitted attribute.", 1083 "type": "boolean" 1084 }, 1085 "domains": { 1086 "description": "Indicates the domain name configuration. This attribute consists of the subDomains and name sub-attributes.", 1087 "type": "array", 1088 "items": { 1089 "type": "object", 1090 "propertyNames": { 1091 "enum": [ 1092 "subdomains", 1093 "name" 1094 ] 1095 }, 1096 "properties": { 1097 "subdomains": { 1098 "description": "Subdomain name", 1099 "type": "boolean" 1100 }, 1101 "name": { 1102 "description": "Domain name", 1103 "type": "string" 1104 } 1105 } 1106 } 1107 } 1108 } 1109 } 1110 } 1111 } 1112 } 1113 }, 1114 "supportBackup": { 1115 "description": "Specifies whether the application supports backup and restoration. If this attribute is set to false, backup or restoration will never be performed for the application.This attribute is not supported by devices running the OHOS.", 1116 "type": "boolean" 1117 }, 1118 "compressNativeLibs": { 1119 "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.This attribute is not supported by devices running the OHOS.", 1120 "type": "boolean" 1121 }, 1122 "allowComponentsProxy": { 1123 "description": "Indicates whether the application supports the ability proxy.If this property is set to true, the ability component can be hooked.", 1124 "type": "boolean" 1125 } 1126 } 1127 } 1128 } 1129 }, 1130 "module": { 1131 "description": "Indicates the configuration of a .hap file. The module configuration is valid only for the current .hap file.", 1132 "type": "object", 1133 "required": [ 1134 "package", 1135 "deviceType", 1136 "distro" 1137 ], 1138 "propertyNames": { 1139 "enum": [ 1140 "commonEvents", 1141 "description", 1142 "abilities", 1143 "js", 1144 "reqPermissions", 1145 "definePermissions", 1146 "deviceType", 1147 "distro", 1148 "reqCapabilities", 1149 "metaData", 1150 "package", 1151 "name", 1152 "supportedModes", 1153 "shortcuts", 1154 "defPermissions", 1155 "defPermissionGroups", 1156 "allowClassMap", 1157 "colorMode", 1158 "theme", 1159 "mainAbility", 1160 "srcPath", 1161 "resizeable", 1162 "entryTheme", 1163 "distroFilter", 1164 "uiSyntax", 1165 "testRunner" 1166 ] 1167 }, 1168 "properties": { 1169 "package": { 1170 "description": "Indicates the name of the .hap file. It cannot be used as the bundle name of the application. The value is a string with a maximum of 127 bytes, in the reverse domain name notation. It is recommended that the value be the same as the project directory of the .hap file.This attribute is not supported by basic watches.", 1171 "type": "string", 1172 "maxLength": 127, 1173 "minLength": 1 1174 }, 1175 "name": { 1176 "description": "Indicates the class name of the .hap file. The value is a string with a maximum of 255 bytes, in the reverse domain name notation. The prefix must be the same as the package value specified for this module. Alternatively, the value can start with a period (.) followed by the class name.This attribute is not supported by basic watches.", 1177 "type": "string", 1178 "maxLength": 255 1179 }, 1180 "description": { 1181 "description": "Describes the .hap file. The value can be a string or a resource index to descriptions in multiple languages. A string can contain a maximum of 255 bytes. If the value exceeds 255 bytes, use the resource index.The tag can be left blank by default.", 1182 "type": "string", 1183 "maxLength": 255 1184 }, 1185 "deviceType": { 1186 "description": "Indicates the type of devices on which the abilities can run. The value can be default, tv (smart TVs), wearable (smart watches), liteWearable (basic watches), smartVision, car, tablet, router or any combination of these values.This label cannot be left blank.", 1187 "type": "array", 1188 "uniqueItems": true, 1189 "items": { 1190 "type": "string", 1191 "enum": [ 1192 "car", 1193 "default", 1194 "tablet", 1195 "tv", 1196 "wearable", 1197 "router" 1198 ] 1199 } 1200 }, 1201 "distro": { 1202 "description": "Indicates the description of the current .hap file.This label cannot be left blank.", 1203 "type": "object", 1204 "propertyNames": { 1205 "enum": [ 1206 "deliveryWithInstall", 1207 "moduleName", 1208 "moduleType", 1209 "installationFree" 1210 ] 1211 }, 1212 "required": [ 1213 "deliveryWithInstall", 1214 "moduleName", 1215 "moduleType" 1216 ], 1217 "properties": { 1218 "deliveryWithInstall": { 1219 "description": "Specifies whether the .hap file is installed when the user installs the application.true: The .hap file is installed during the application installation.false: The .hap file is not installed during the application installation.This label cannot be left blank.", 1220 "type": "boolean" 1221 }, 1222 "moduleName": { 1223 "description": "Indicates the name of the current .hap file.This label cannot be left blank.", 1224 "type": "string", 1225 "maxLength": 31 1226 }, 1227 "moduleType": { 1228 "description": "Indicates the type of the current .hap file. The value can be entry or feature.This label cannot be left blank.", 1229 "type": "string", 1230 "enum": [ 1231 "entry", 1232 "feature", 1233 "har" 1234 ] 1235 }, 1236 "installationFree": { 1237 "description": "Indicates whether free installation of the current hap is supported. If moduleType is feature, this item label is mandatory, else this item label is optional.", 1238 "type": "boolean" 1239 } 1240 }, 1241 "if": { 1242 "properties": { 1243 "moduleType": { 1244 "const": "har" 1245 } 1246 } 1247 }, 1248 "then": { 1249 "propertyNames": { 1250 "enum": [ 1251 "deliveryWithInstall", 1252 "moduleName", 1253 "moduleType", 1254 "installationFree" 1255 ] 1256 } 1257 }, 1258 "else": { 1259 "required": [ 1260 "installationFree" 1261 ] 1262 } 1263 }, 1264 "abilities": { 1265 "description": "Indicates all abilities in the current module. The value is an array of objects, each of which represents an ability.This label can be left blank by default,and indicates no capability exists in the current module.", 1266 "type": "array", 1267 "items": { 1268 "type": "object", 1269 "allOf": [ 1270 { 1271 "if": { 1272 "properties": { 1273 "type": { 1274 "const": "page" 1275 } 1276 } 1277 }, 1278 "then": { 1279 "propertyNames": { 1280 "enum": [ 1281 "priority", 1282 "process", 1283 "mergeRule", 1284 "name", 1285 "description", 1286 "icon", 1287 "type", 1288 "label", 1289 "visible", 1290 "launchType", 1291 "metaData", 1292 "orientation", 1293 "permissions", 1294 "skills", 1295 "configChanges", 1296 "mission", 1297 "targetAbility", 1298 "supportPipMode", 1299 "formsEnabled", 1300 "forms", 1301 "deviceCapability", 1302 "resizeable", 1303 "srcLanguage", 1304 "srcPath", 1305 "continuable" 1306 ] 1307 }, 1308 "required": [ 1309 "name", 1310 "type", 1311 "srcPath" 1312 ] 1313 } 1314 }, 1315 { 1316 "if": { 1317 "properties": { 1318 "type": { 1319 "const": "data" 1320 } 1321 } 1322 }, 1323 "then": { 1324 "propertyNames": { 1325 "enum": [ 1326 "priority", 1327 "process", 1328 "mergeRule", 1329 "name", 1330 "description", 1331 "icon", 1332 "type", 1333 "label", 1334 "visible", 1335 "uri", 1336 "launchType", 1337 "metaData", 1338 "permissions", 1339 "skills", 1340 "grantPermission", 1341 "readPermission", 1342 "writePermission", 1343 "uriPermission", 1344 "configChanges", 1345 "multiUserShared", 1346 "formsEnabled", 1347 "forms", 1348 "deviceCapability", 1349 "resizeable", 1350 "srcLanguage", 1351 "srcPath" 1352 ] 1353 }, 1354 "required": [ 1355 "name", 1356 "type", 1357 "uri", 1358 "srcPath" 1359 ], 1360 "properties": { 1361 "formsEnabled": { 1362 "const": false 1363 } 1364 } 1365 } 1366 }, 1367 { 1368 "if": { 1369 "properties": { 1370 "type": { 1371 "const": "service" 1372 } 1373 } 1374 }, 1375 "then": { 1376 "propertyNames": { 1377 "enum": [ 1378 "priority", 1379 "process", 1380 "mergeRule", 1381 "name", 1382 "description", 1383 "icon", 1384 "type", 1385 "label", 1386 "visible", 1387 "launchType", 1388 "metaData", 1389 "permissions", 1390 "skills", 1391 "backgroundModes", 1392 "configChanges", 1393 "formsEnabled", 1394 "forms", 1395 "deviceCapability", 1396 "resizeable", 1397 "srcLanguage", 1398 "srcPath" 1399 ] 1400 }, 1401 "required": [ 1402 "name", 1403 "type", 1404 "srcPath" 1405 ] 1406 } 1407 }, 1408 { 1409 "if": { 1410 "properties": { 1411 "type": { 1412 "const": "CA" 1413 } 1414 } 1415 }, 1416 "then": { 1417 "propertyNames": { 1418 "enum": [ 1419 "priority", 1420 "process", 1421 "mergeRule", 1422 "name", 1423 "description", 1424 "icon", 1425 "type", 1426 "label", 1427 "visible", 1428 "launchType", 1429 "metaData", 1430 "permissions", 1431 "skills", 1432 "configChanges", 1433 "formsEnabled", 1434 "forms", 1435 "deviceCapability", 1436 "resizeable", 1437 "srcLanguage", 1438 "srcPath" 1439 ] 1440 }, 1441 "required": [ 1442 "name", 1443 "type", 1444 "srcPath" 1445 ], 1446 "properties": { 1447 "formsEnabled": { 1448 "const": false 1449 } 1450 } 1451 } 1452 } 1453 ], 1454 "properties": { 1455 "priority": { 1456 "description": "Indicates the priority of the ability.Only for system application.This field is used for implicit query.Range from 0 to 10, default value is 0.", 1457 "type": "integer", 1458 "minimum": 0, 1459 "maximum": 10 1460 }, 1461 "name": { 1462 "description": "Indicates the name of the ability. The value is a reverse domain name, in the format of \"Complete bundle name.Class name\", for example, \"com.example.myapplication.MainAbility\", where com.example.myapplication indicates the bundle name and MainAbility indicates the class name. Alternatively, the value can start with a period (.) followed by the class name, for example, \".MainAbility\", which will be resolved into a complete name prefixed with the bundle name of the application.", 1463 "type": "string", 1464 "maxLength": 127 1465 }, 1466 "description": { 1467 "description": "Describes the ability. The value can be a string or a resource index to descriptions in multiple languages.This label can be left blank by default.", 1468 "type": "string", 1469 "maxLength": 255 1470 }, 1471 "icon": { 1472 "description": "Indicates the index to the ability icon file, in the format of \"$media:ability_icon\".This label can be left blank by default.", 1473 "type": "string" 1474 }, 1475 "type": { 1476 "description": "Indicates the template used by the ability. The value can be page, service, or provider.The \"page\" indicates FA developed using the Page template to provide the capability of interacting with users.The \"service\" indicates AA developed using the Service template to provide the capability of running tasks in the background.The \"provider\" indicates AA developed using the Data template to provide unified data access for external systems.This label cannot be left blank.", 1477 "type": "string", 1478 "enum": [ 1479 "page", 1480 "service", 1481 "data", 1482 "CA" 1483 ] 1484 }, 1485 "process": { 1486 "description": "Indicates the name of the process running the application or ability.If a process is configured in the deviceConfig tag, all abilities of the application run in this process. You can also set the process attribute for a specific ability, so that the ability can run in this process. If this attribute is set to the same process name as other applications, all these applications can run in the same process on the premise that they have the same jointUserId and the same signature.This attribute is not supported by devices running the OHOS.", 1487 "type": "string", 1488 "maxLength": 31 1489 }, 1490 "mergeRule": { 1491 "description": "Tags identify the rule for merging configs.", 1492 "type": "object", 1493 "propertyNames": { 1494 "enum": [ 1495 "remove", 1496 "replace" 1497 ] 1498 }, 1499 "properties": { 1500 "remove": { 1501 "description": "Attributes to Be Removed After Marking Merge", 1502 "type": "array", 1503 "uniqueItems": true, 1504 "items": { 1505 "type": "string" 1506 } 1507 }, 1508 "replace": { 1509 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 1510 "type": "array", 1511 "uniqueItems": true, 1512 "items": { 1513 "type": "string" 1514 } 1515 } 1516 } 1517 }, 1518 "formsEnabled": { 1519 "description": "Indicates whether the capability of the page type provides the embedded card capability. The value is of the Boolean type. The value true indicates that the capability is provided, and the value false indicates that the capability is not provided.", 1520 "type": "boolean" 1521 }, 1522 "label": { 1523 "description": "Indicates the ability name visible to users. The tag value is set to the resource index of this name to support multiple languages.", 1524 "type": "string", 1525 "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$", 1526 "maxLength": 255 1527 }, 1528 "visible": { 1529 "description": "Specifies whether the ability can be called by other applications.The \"true\" indicates the ability can be called by other applications.The \"false\" indicates the ability cannot be called by other applications.This tag is optional. The default value is false.", 1530 "type": "boolean" 1531 }, 1532 "uri": { 1533 "description": "Indicates the Uniform Resource Identifier (URI) of the ability, in the format of \"[scheme:][//authority][path][?query][#fragment]\".", 1534 "type": "string", 1535 "maxLength": 255 1536 }, 1537 "launchType": { 1538 "description": "Indicates the startup type of the ability. The value can be singleton (only a single Ability instance can be created during startup) or standard (multiple Ability instances can be created during startup).This attribute is not supported by basic watches.", 1539 "type": "string", 1540 "enum": [ 1541 "singleton", 1542 "standard" 1543 ] 1544 }, 1545 "metaData": { 1546 "description": "Indicates the metadata of the ability.", 1547 "type": "object", 1548 "propertyNames": { 1549 "enum": [ 1550 "parameters", 1551 "results", 1552 "customizeData", 1553 "mergeRule" 1554 ] 1555 }, 1556 "properties": { 1557 "mergeRule": { 1558 "description": "Tags identify the rule for merging configs.", 1559 "type": "object", 1560 "propertyNames": { 1561 "enum": [ 1562 "remove", 1563 "replace" 1564 ] 1565 }, 1566 "properties": { 1567 "remove": { 1568 "description": "Attributes to Be Removed After Marking Merge", 1569 "type": "array", 1570 "uniqueItems": true, 1571 "items": { 1572 "type": "string" 1573 } 1574 }, 1575 "replace": { 1576 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 1577 "type": "array", 1578 "uniqueItems": true, 1579 "items": { 1580 "type": "string" 1581 } 1582 } 1583 } 1584 }, 1585 "parameters": { 1586 "description": "Indicates the metadata of the parameters to be passed for calling the ability. The metadata of each parameter consists of the description, name, and type sub-attributes.", 1587 "type": "array", 1588 "items": { 1589 "type": "object", 1590 "propertyNames": { 1591 "enum": [ 1592 "description", 1593 "name", 1594 "type" 1595 ] 1596 }, 1597 "required": [ 1598 "name", 1599 "type" 1600 ], 1601 "properties": { 1602 "name": { 1603 "description": "Indicates the name of the parameter.", 1604 "type": "string", 1605 "maxLength": 255 1606 }, 1607 "type": { 1608 "description": "Indicates the type of the parameter, for example, Integer.", 1609 "type": "string" 1610 }, 1611 "description": { 1612 "description": "Describes the parameter. The value can be a string or a resource index to descriptions in multiple languages.", 1613 "type": "string", 1614 "maxLength": 255 1615 } 1616 } 1617 } 1618 }, 1619 "results": { 1620 "description": "Indicates the metadata of the ability return value. The metadata of each return value consists of the description, name, and type sub-attributes.", 1621 "type": "array", 1622 "items": { 1623 "type": "object", 1624 "propertyNames": { 1625 "enum": [ 1626 "description", 1627 "name", 1628 "type" 1629 ] 1630 }, 1631 "required": [ 1632 "type" 1633 ], 1634 "properties": { 1635 "name": { 1636 "description": "Indicates the name of the return value.", 1637 "type": "string", 1638 "maxLength": 255 1639 }, 1640 "type": { 1641 "description": "Indicates the type of the return value, for example, Integer.", 1642 "type": "string" 1643 }, 1644 "description": { 1645 "description": "Describes the return value. The value can be a string or a resource index to descriptions in multiple languages.", 1646 "type": "string", 1647 "maxLength": 255 1648 } 1649 } 1650 } 1651 }, 1652 "customizeData": { 1653 "description": "Indicates the custom metadata of the parent component. The parameters and results attributes are not configurable in the module tag.", 1654 "type": "array", 1655 "items": { 1656 "type": "object", 1657 "propertyNames": { 1658 "enum": [ 1659 "name", 1660 "value", 1661 "extra" 1662 ] 1663 }, 1664 "properties": { 1665 "name": { 1666 "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.", 1667 "type": "string", 1668 "maxLength": 255 1669 }, 1670 "value": { 1671 "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.", 1672 "type": "string", 1673 "maxLength": 255 1674 }, 1675 "extra": { 1676 "description": "Indicates the custom format of the data element. The value is an index to the resource that identifies the data.", 1677 "type": "string" 1678 } 1679 } 1680 } 1681 } 1682 } 1683 }, 1684 "orientation": { 1685 "description": "Indicates the display orientation of the ability. This attribute is valid only for abilities using the Page template.", 1686 "enum": [ 1687 "unspecified", 1688 "landscape", 1689 "portrait", 1690 "followRecent" 1691 ], 1692 "type": "string" 1693 }, 1694 "permissions": { 1695 "description": "Indicates the permissions required for abilities of another application to call the current ability, generally in the format of a reverse domain name. The value can be either the permissions predefined in the OS or those customized by your application. If a custom permission is used, the value must be the same as the name value of a specific permission defined in the defPermissions attribute.", 1696 "type": "array", 1697 "items": { 1698 "type": "string", 1699 "maxLength": 255 1700 } 1701 }, 1702 "skills": { 1703 "description": "Indicates the types of the intent that can be accepted by the ability.", 1704 "type": "array", 1705 "items": { 1706 "type": "object", 1707 "propertyNames": { 1708 "enum": [ 1709 "actions", 1710 "entities", 1711 "uris" 1712 ] 1713 }, 1714 "properties": { 1715 "actions": { 1716 "description": "Indicates the actions of the intent that can be accepted by the ability. The value can have one or multiple actions predefined in the system.", 1717 "type": "array", 1718 "items": { 1719 "type": "string" 1720 } 1721 }, 1722 "entities": { 1723 "description": "Indicates the entities of the intent that can be accepted by the ability, such as video and Home application. The value can have one or multiple entities either predefined in the system or be customized.", 1724 "type": "array", 1725 "items": { 1726 "type": "string" 1727 } 1728 }, 1729 "uris": { 1730 "description": "This tag identifies the collection of data specifications to be added to the Intent filter.", 1731 "type": "array", 1732 "items": { 1733 "anyOf": [ 1734 { 1735 "type": "object", 1736 "propertyNames": { 1737 "enum": [ 1738 "scheme", 1739 "host", 1740 "port", 1741 "pathStartWith", 1742 "path", 1743 "pathRegx", 1744 "type" 1745 ] 1746 }, 1747 "required": [ 1748 "scheme" 1749 ], 1750 "properties": { 1751 "scheme": { 1752 "description": "This label is a string type.", 1753 "type": "string" 1754 }, 1755 "host": { 1756 "description": "This label is a string type.", 1757 "type": "string" 1758 }, 1759 "port": { 1760 "description": "This label is a string type.", 1761 "type": "string" 1762 }, 1763 "pathStartWith": { 1764 "description": "This label is a string type.", 1765 "type": "string" 1766 }, 1767 "path": { 1768 "description": "This label is a string type.", 1769 "type": "string" 1770 }, 1771 "pathRegx": { 1772 "description": "This label is a string type.", 1773 "type": "string" 1774 }, 1775 "type": { 1776 "description": "This label is a string type.", 1777 "type": "string" 1778 } 1779 } 1780 }, 1781 { 1782 "type": "object", 1783 "propertyNames": { 1784 "enum": [ 1785 "type" 1786 ] 1787 }, 1788 "properties": { 1789 "type": { 1790 "description": "This label is a string type.", 1791 "type": "string" 1792 } 1793 } 1794 } 1795 ] 1796 } 1797 } 1798 } 1799 } 1800 }, 1801 "backgroundModes": { 1802 "description": "Indicates the background service addressing a specific usage scenario. This attribute is dedicated to the abilities using the Service template. You can assign multiple background service types to a specific ability using the Service template.", 1803 "type": "array", 1804 "items": { 1805 "type": "string", 1806 "enum": [ 1807 "dataTransfer", 1808 "audioPlayback", 1809 "audioRecording", 1810 "location", 1811 "bluetoothInteraction", 1812 "multiDeviceConnection", 1813 "wifiInteraction", 1814 "voip", 1815 "taskKeeping" 1816 ] 1817 } 1818 }, 1819 "grantPermission": { 1820 "description": "Specifies whether a permission can be granted to any data within the ability.", 1821 "type": "boolean" 1822 }, 1823 "readPermission": { 1824 "description": "Indicates the permission required for reading ability data. The value is a string with a maximum of 255 bytes. This attribute is valid only for the abilities whose type is provider.This attribute is not supported by devices running the OHOS.", 1825 "type": "string", 1826 "maxLength": 255 1827 }, 1828 "writePermission": { 1829 "description": "Indicates the permission required for writing data to the ability. The value is string of a maximum of 255 bytes. This attribute is valid only for the abilities whose type is provider.This attribute is not supported by devices running the OHOS.", 1830 "type": "string", 1831 "maxLength": 255 1832 }, 1833 "uriPermission": { 1834 "description": "Indicates the application data that the ability has the permission to access. This attribute consists of the mode and path sub-attributes. This attribute is valid only for the abilities whose type is provider.This attribute is not supported by devices running the OHOS.", 1835 "type": "object", 1836 "required": [ 1837 "path" 1838 ], 1839 "propertyNames": { 1840 "enum": [ 1841 "mode", 1842 "path" 1843 ] 1844 }, 1845 "properties": { 1846 "mode": { 1847 "description": "This tag identifies the matching mode of uriPermission.", 1848 "type": "string", 1849 "enum": [ 1850 "default", 1851 "prefix", 1852 "pattern" 1853 ] 1854 }, 1855 "path": { 1856 "description": "Path of the tag uriPermission.", 1857 "type": "string", 1858 "maxLength": 255 1859 } 1860 } 1861 }, 1862 "configChanges": { 1863 "description": "Indicates the system configurations that the ability concerns. Upon any changes on the configurations, the onConfigurationChanged callback will be invoked to notify the ability.", 1864 "type": "array", 1865 "uniqueItems": true, 1866 "items": { 1867 "type": "string", 1868 "enum": [ 1869 "density", 1870 "fontSize", 1871 "layout", 1872 "locale", 1873 "mcc", 1874 "mnc", 1875 "orientation", 1876 "size", 1877 "smallestSize", 1878 "colorMode" 1879 ] 1880 } 1881 }, 1882 "mission": { 1883 "description": "Indicates the task stack of the ability. By default, all abilities in an application belong to the same task stack. This attribute is specific to the abilities using the Page template.This attribute is not supported by devices running the OHOS.", 1884 "type": "string" 1885 }, 1886 "targetAbility": { 1887 "description": "Indicates the target ability that this ability alias points to. This attribute is specific to the abilities using the Page template. The target ability must belong to the same application as the alias and must be declared in config.json ahead of the alias.This attribute is not supported by devices running the OHOS.", 1888 "type": "string" 1889 }, 1890 "multiUserShared": { 1891 "description": "Specifies whether the ability supports data sharing among multiple users. This attribute is specific to the abilities whose type is provider. Note that this attribute will invalidate the visible attribute. If this attribute is set to true, only one copy of data is stored for multiple users.This attribute is not supported by devices running the OHOS.", 1892 "type": "boolean" 1893 }, 1894 "supportPipMode": { 1895 "description": "Specifies whether the ability allows the user to enter the Picture in Picture (PiP) mode. The PiP mode enables the user to watch a video in a small window that hovers on top of a full screen window (main window). This attribute is specific to the abilities using the Page template.This attribute is not supported by devices running the OHOS.", 1896 "type": "boolean" 1897 }, 1898 "deviceCapability": { 1899 "description": "This label indicates the capability required by the device when the capability is running.", 1900 "type": "array", 1901 "maxItems": 512, 1902 "uniqueItems": true, 1903 "items": { 1904 "type": "string", 1905 "maxLength": 64 1906 } 1907 }, 1908 "resizeable": { 1909 "description": "Indicates whether the ability supports the multi-window feature.", 1910 "type": "boolean" 1911 }, 1912 "srcLanguage": { 1913 "description": "Type of the capability development language. The value can be java, js, or ets.The label cannot be defaulted.", 1914 "type": "string", 1915 "enum": [ 1916 "java", 1917 "js", 1918 "ets" 1919 ] 1920 }, 1921 "srcPath": { 1922 "description": "This tag indicates the JS component code path corresponding to the ability. The tag value is a character string (a maximum of 127 bytes). When srcLanguage is set to js or ets, this tag cannot be defaulted.", 1923 "type": "string", 1924 "maxLength": 127 1925 }, 1926 "forms": { 1927 "description": "This tag identifies the embedded card attribute of the capability. This tag is valid only when formsEnabled is set to true. This tag can be left blank by default.", 1928 "type": "array", 1929 "items": { 1930 "type": "object", 1931 "propertyNames": { 1932 "enum": [ 1933 "name", 1934 "description", 1935 "isDefault", 1936 "type", 1937 "colorMode", 1938 "supportDimensions", 1939 "defaultDimension", 1940 "landscapeLayouts", 1941 "portraitLayouts", 1942 "updateEnabled", 1943 "scheduledUpdateTime", 1944 "updateDuration", 1945 "metaData", 1946 "jsComponentName", 1947 "formConfigAbility", 1948 "formVisibleNotify" 1949 ] 1950 }, 1951 "properties": { 1952 "name": { 1953 "description": "Indicates the name of the form class. The tag value is a string of up to 127 bytes. The tag cannot be default.", 1954 "type": "string", 1955 "maxLength": 127 1956 }, 1957 "description": { 1958 "description": "This tag identifies the description of the form. The tag value can be a string indicating the description content (a string of up to 255 bytes. If the length exceeds 255 bytes, use the resource index mode) or the resource index of the description content to support multiple languages. This tag can be left blank by default.", 1959 "type": "string", 1960 "maxLength": 255 1961 }, 1962 "isDefault": { 1963 "description": "Indicates whether the card is the default icon. The value is of the Boolean type. The value true indicates that the card is the default card, and the value false indicates that the card is not the default card. Each capability can have only one default card.", 1964 "type": "boolean" 1965 }, 1966 "type": { 1967 "description": "Indicates the card type. The value can be Java or JavaScript.", 1968 "type": "string", 1969 "enum": [ 1970 "Java", 1971 "JS" 1972 ] 1973 }, 1974 "colorMode": { 1975 "description": "This tag identifies the card hue. The value can be auto, dark, or light. dark indicates that the card supports the dark color mode, light indicates that the card does not support the dark color mode, and auto indicates that the card hue is the same as the system hue.", 1976 "type": "string", 1977 "enum": [ 1978 "auto", 1979 "dark", 1980 "light" 1981 ] 1982 }, 1983 "supportDimensions": { 1984 "description": "This label identifies the card appearance specification. The value is \"1*2\",\" 2*2\", \"2*4\",\"4*4\" and cannot be default. At least one card specification must be specified when defining a card.", 1985 "type": "array", 1986 "items": { 1987 "type": "string", 1988 "enum": [ 1989 "1*2", 1990 "2*2", 1991 "2*4", 1992 "4*4" 1993 ] 1994 } 1995 }, 1996 "defaultDimension": { 1997 "description": "This label identifies the default appearance specifications of the card.", 1998 "type": "string", 1999 "enum": [ 2000 "1*2", 2001 "2*2", 2002 "2*4", 2003 "4*4" 2004 ] 2005 }, 2006 "landscapeLayouts": { 2007 "description": "This label identifies the horizontal layout file corresponding to the card appearance specifications. It corresponds to the specifications in supportDimensions. It cannot be defaulted. If the type is JS, this label does not need to be specified.", 2008 "type": "array", 2009 "items": { 2010 "type": "string" 2011 } 2012 }, 2013 "portraitLayouts": { 2014 "description": "This label identifies the vertical layout file corresponding to the card appearance specifications. It corresponds to the specifications in supportDimensions and cannot be defaulted. This label does not need to be specified when the type is JS.", 2015 "type": "array", 2016 "items": { 2017 "type": "string" 2018 } 2019 }, 2020 "updateEnabled": { 2021 "description": "Indicates whether the card supports scheduled refresh. The value is of the Boolean type. true indicates that the card supports scheduled vertical refresh, and false indicates that the card does not support scheduled vertical refresh.", 2022 "type": "boolean" 2023 }, 2024 "scheduledUpdateTime": { 2025 "description": "Indicates the time when a card is refreshed at a fixed time. The value is counted in 24 hours, accurate to minute. This tag can be set to the default value.", 2026 "type": "string", 2027 "pattern": "^(([0-1][0-9])|([2][0-3]))[:]+([0-5][0-9])$" 2028 }, 2029 "updateDuration": { 2030 "description": "This tag identifies the update frequency of the card. The unit is 30 minutes. The value is a multiple of 30. The maximum frequency of a card is refreshed every 30 minutes. You can select either refresh or refresh at a fixed point. If both are configured, the card is refreshed at a scheduled time. This label is an integer.", 2031 "type": "integer", 2032 "minimum": 0 2033 }, 2034 "metaData": { 2035 "description": "This tag indicates the customized information of a card, including the customizeData array tag. This tag can be left blank by default.", 2036 "type": "object", 2037 "propertyNames": { 2038 "enum": [ 2039 "mergeRule", 2040 "customizeData" 2041 ] 2042 }, 2043 "properties": { 2044 "mergeRule": { 2045 "description": "Tags identify the rule for merging configs.", 2046 "type": "object", 2047 "propertyNames": { 2048 "enum": [ 2049 "remove", 2050 "replace" 2051 ] 2052 }, 2053 "properties": { 2054 "remove": { 2055 "description": "Attributes to Be Removed After Marking Merge", 2056 "type": "array", 2057 "uniqueItems": true, 2058 "items": { 2059 "type": "string" 2060 } 2061 }, 2062 "replace": { 2063 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2064 "type": "array", 2065 "uniqueItems": true, 2066 "items": { 2067 "type": "string" 2068 } 2069 } 2070 } 2071 }, 2072 "customizeData": { 2073 "description": "Indicates the custom metadata of the parent component. The parameters and results attributes are not configurable in the module tag.", 2074 "type": "array", 2075 "items": { 2076 "type": "object", 2077 "propertyNames": { 2078 "enum": [ 2079 "name", 2080 "value", 2081 "extra" 2082 ] 2083 }, 2084 "properties": { 2085 "name": { 2086 "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.", 2087 "type": "string", 2088 "maxLength": 255 2089 }, 2090 "value": { 2091 "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.", 2092 "type": "string", 2093 "maxLength": 255 2094 }, 2095 "extra": { 2096 "description": "Indicates the custom format of the data element. The value is an index to the resource that identifies the data.", 2097 "type": "string" 2098 } 2099 } 2100 } 2101 } 2102 } 2103 }, 2104 "jsComponentName": { 2105 "description": "Component name of a JS card. This tag is mandatory only for JS cards.", 2106 "type": "string", 2107 "maxLength": 127 2108 }, 2109 "formConfigAbility": { 2110 "description": "Indicates the name of the facility or activity for card adjustment.", 2111 "type": "string", 2112 "maxLength": 127, 2113 "pattern": "^activity://(.*)|ability://(.*)$" 2114 }, 2115 "formVisibleNotify": { 2116 "description": "This tag identifies whether the card is allowed to use card visibility notifications.", 2117 "type": "boolean" 2118 } 2119 }, 2120 "if": { 2121 "properties": { 2122 "type": { 2123 "const": "JS" 2124 } 2125 } 2126 }, 2127 "then": { 2128 "propertyNames": { 2129 "enum": [ 2130 "name", 2131 "description", 2132 "isDefault", 2133 "type", 2134 "colorMode", 2135 "supportDimensions", 2136 "defaultDimension", 2137 "updateEnabled", 2138 "scheduledUpdateTime", 2139 "updateDuration", 2140 "metaData", 2141 "jsComponentName", 2142 "formConfigAbility", 2143 "formVisibleNotify" 2144 ] 2145 }, 2146 "required": [ 2147 "name", 2148 "isDefault", 2149 "type", 2150 "supportDimensions", 2151 "defaultDimension", 2152 "updateEnabled" 2153 ] 2154 }, 2155 "else": { 2156 "propertyNames": { 2157 "enum": [ 2158 "name", 2159 "description", 2160 "isDefault", 2161 "type", 2162 "colorMode", 2163 "supportDimensions", 2164 "defaultDimension", 2165 "landscapeLayouts", 2166 "portraitLayouts", 2167 "updateEnabled", 2168 "scheduledUpdateTime", 2169 "updateDuration", 2170 "metaData", 2171 "jsComponentName", 2172 "formConfigAbility", 2173 "formVisibleNotify" 2174 ] 2175 }, 2176 "required": [ 2177 "name", 2178 "isDefault", 2179 "type", 2180 "supportDimensions", 2181 "defaultDimension", 2182 "updateEnabled", 2183 "landscapeLayouts", 2184 "portraitLayouts" 2185 ] 2186 } 2187 } 2188 }, 2189 "continuable": { 2190 "description": "Identifies whether the ability can be migrated. The default value is false.", 2191 "type": "boolean" 2192 } 2193 } 2194 } 2195 }, 2196 "js": { 2197 "description": "Indicates a set of all modules developed using the JavaScript UI framework. Each element in the set represents the information about a JavaScript module.", 2198 "type": "array", 2199 "items": { 2200 "type": "object", 2201 "required": [ 2202 "name", 2203 "pages" 2204 ], 2205 "propertyNames": { 2206 "enum": [ 2207 "mergeRule", 2208 "name", 2209 "pages", 2210 "window", 2211 "type", 2212 "mode" 2213 ] 2214 }, 2215 "properties": { 2216 "name": { 2217 "description": "Indicates the name of the JavaScript module.This label can be left blank by default.", 2218 "type": "string" 2219 }, 2220 "pages": { 2221 "description": "Describes the route information about all pages in the JavaScript module, including the page path and page name. The value is an array, in which each element represents a page. The first element in the array represents the home page of the JavaScript FA.", 2222 "type": "array", 2223 "minItems": 1, 2224 "items": { 2225 "type": "string" 2226 } 2227 }, 2228 "window": { 2229 "description": "Defines window-related configurations. This attribute is not supported by devices running the OHOS.", 2230 "type": "object", 2231 "propertyNames": { 2232 "enum": [ 2233 "designWidth", 2234 "autoDesignWidth" 2235 ] 2236 }, 2237 "properties": { 2238 "designWidth": { 2239 "description": "Indicates the baseline width for page design, in pixels. The size of an element is scaled by the actual device width. This label is an integer.", 2240 "type": "integer", 2241 "minimum": 0 2242 }, 2243 "autoDesignWidth": { 2244 "description": "Specifies whether to automatically calculate the baseline width for page design. If it is set to true, the designWidth attribute becomes invalid. The baseline width is calculated based on the device width and screen density.", 2245 "type": "boolean" 2246 } 2247 } 2248 }, 2249 "type": { 2250 "description": "Indicates whether a JS card or a JS application is used. The default value is normal.", 2251 "type": "string", 2252 "enum": [ 2253 "normal", 2254 "form" 2255 ] 2256 }, 2257 "mode": { 2258 "description": "Defines the development mode of the JS component. This tag can be defaulted. The tag value is an object and contains two subtags: type and syntax.", 2259 "type": "object", 2260 "propertyNames": { 2261 "enum": [ 2262 "type", 2263 "syntax" 2264 ] 2265 }, 2266 "properties": { 2267 "type": { 2268 "description": "Defines the function type of the JS component. The tag can be defaulted. The default value is pageAbility. The combination of type to form and syntax to ets is not supported.", 2269 "type": "string", 2270 "enum": [ 2271 "pageAbility", 2272 "form" 2273 ] 2274 }, 2275 "syntax": { 2276 "description": "Defines the syntax type of the JS component. The tag can be defaulted. The default value is hml. The combination of type to form and syntax to ets is not supported.", 2277 "type": "string", 2278 "enum": [ 2279 "hml", 2280 "ets" 2281 ] 2282 } 2283 }, 2284 "if": { 2285 "properties": { 2286 "type": { 2287 "const": "form" 2288 } 2289 } 2290 }, 2291 "then": { 2292 "properties": { 2293 "syntax": { 2294 "const": "hml" 2295 } 2296 } 2297 } 2298 }, 2299 "mergeRule": { 2300 "description": "Tags identify the rule for merging configs.", 2301 "type": "object", 2302 "propertyNames": { 2303 "enum": [ 2304 "remove", 2305 "replace" 2306 ] 2307 }, 2308 "properties": { 2309 "remove": { 2310 "description": "Attributes to Be Removed After Marking Merge", 2311 "type": "array", 2312 "uniqueItems": true, 2313 "items": { 2314 "type": "string" 2315 } 2316 }, 2317 "replace": { 2318 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2319 "type": "array", 2320 "uniqueItems": true, 2321 "items": { 2322 "type": "string" 2323 } 2324 } 2325 } 2326 } 2327 } 2328 } 2329 }, 2330 "defPermissions": { 2331 "description": "Indicates the permissions required by the application. The callers must acquire these permissions before calling the application.", 2332 "type": "array", 2333 "items": { 2334 "type": "object", 2335 "propertyNames": { 2336 "enum": [ 2337 "mergeRule", 2338 "name", 2339 "grantMode", 2340 "availableScope", 2341 "label", 2342 "description", 2343 "group" 2344 ] 2345 }, 2346 "required": [ 2347 "name" 2348 ], 2349 "properties": { 2350 "name": { 2351 "description": "Specifies the permission name. The value is a character string.", 2352 "type": "string" 2353 }, 2354 "grantMode": { 2355 "description": "This tag identifies the permission granting mode.", 2356 "type": "string", 2357 "enum": [ 2358 "system_grant", 2359 "user_grant" 2360 ] 2361 }, 2362 "availableScope": { 2363 "description": "This tag identifies the permission scope.", 2364 "type": "array", 2365 "items": { 2366 "type": "string", 2367 "enum": [ 2368 "restricted", 2369 "signature", 2370 "privileged" 2371 ] 2372 } 2373 }, 2374 "label": { 2375 "description": "This tag identifies the short description of the permission.", 2376 "type": "string" 2377 }, 2378 "description": { 2379 "description": "This tag indicates the detailed description of the permission.", 2380 "type": "string" 2381 }, 2382 "group": { 2383 "description": "", 2384 "type": "string" 2385 }, 2386 "mergeRule": { 2387 "description": "Tags identify the rule for merging configs.", 2388 "type": "object", 2389 "propertyNames": { 2390 "enum": [ 2391 "remove", 2392 "replace" 2393 ] 2394 }, 2395 "properties": { 2396 "remove": { 2397 "description": "Attributes to Be Removed After Marking Merge", 2398 "type": "array", 2399 "uniqueItems": true, 2400 "items": { 2401 "type": "string" 2402 } 2403 }, 2404 "replace": { 2405 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2406 "type": "array", 2407 "uniqueItems": true, 2408 "items": { 2409 "type": "string" 2410 } 2411 } 2412 } 2413 } 2414 } 2415 } 2416 }, 2417 "reqPermissions": { 2418 "description": "Indicates the permissions that the application applies for from the system before its running.This label can be left blank by default.", 2419 "type": "array", 2420 "items": { 2421 "type": "object", 2422 "propertyNames": { 2423 "enum": [ 2424 "mergeRule", 2425 "name", 2426 "reason", 2427 "usedScene" 2428 ] 2429 }, 2430 "required": [ 2431 "name" 2432 ], 2433 "properties": { 2434 "name": { 2435 "description": "Specifies the permission name to be used.", 2436 "type": "string" 2437 }, 2438 "reason": { 2439 "description": "Describe the reason for applying for the permission.", 2440 "type": "string" 2441 }, 2442 "usedScene": { 2443 "description": "This section describes the scenarios and timing of permission usage.", 2444 "type": "object", 2445 "propertyNames": { 2446 "enum": [ 2447 "ability", 2448 "when" 2449 ] 2450 }, 2451 "properties": { 2452 "ability": { 2453 "description": "This tag identifies the abilities that need the permission.", 2454 "type": "array", 2455 "items": { 2456 "type": "string" 2457 } 2458 }, 2459 "when": { 2460 "description": "This tag identifies the time when the permission is used.", 2461 "type": "string", 2462 "enum": [ 2463 "inuse", 2464 "always" 2465 ] 2466 } 2467 } 2468 }, 2469 "mergeRule": { 2470 "description": "Tags identify the rule for merging configs.", 2471 "type": "object", 2472 "propertyNames": { 2473 "enum": [ 2474 "remove", 2475 "replace" 2476 ] 2477 }, 2478 "properties": { 2479 "remove": { 2480 "description": "Attributes to Be Removed After Marking Merge", 2481 "type": "array", 2482 "uniqueItems": true, 2483 "items": { 2484 "type": "string" 2485 } 2486 }, 2487 "replace": { 2488 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2489 "type": "array", 2490 "uniqueItems": true, 2491 "items": { 2492 "type": "string" 2493 } 2494 } 2495 } 2496 } 2497 } 2498 } 2499 }, 2500 "definePermissions": { 2501 "description": "Indicates the permissions required by the application. The callers must acquire these permissions before calling the application.", 2502 "type": "array", 2503 "items": { 2504 "type": "object", 2505 "propertyNames": { 2506 "enum": [ 2507 "name", 2508 "grantMode", 2509 "availableLevel", 2510 "provisionEnable", 2511 "distributedSceneEnable", 2512 "label", 2513 "description" 2514 ] 2515 }, 2516 "required": [ 2517 "name" 2518 ], 2519 "properties": { 2520 "name": { 2521 "description": "Specifies the permission name. The value is a character string.", 2522 "type": "string", 2523 "minLength": 1, 2524 "maxLength": 255 2525 }, 2526 "grantMode": { 2527 "description": "This tag identifies the permission granting mode.", 2528 "type": "string", 2529 "enum": [ 2530 "system_grant", 2531 "user_grant" 2532 ] 2533 }, 2534 "availableLevel": { 2535 "description": "This tag identifies the permission available level.", 2536 "type": "string", 2537 "enum": [ 2538 "normal", 2539 "system_basic", 2540 "system_core" 2541 ] 2542 }, 2543 "provisionEnable": { 2544 "description": "This tag identifies whether the permission can be applied for by provision certificate.", 2545 "type": "boolean" 2546 }, 2547 "distributedSceneEnable": { 2548 "description": "This tag identifies whether the permission can be used in distributed scene.", 2549 "type": "boolean" 2550 }, 2551 "label": { 2552 "description": "This tag identifies the short description of the permission.", 2553 "type": "string", 2554 "minLength": 0, 2555 "maxLength": 255 2556 }, 2557 "description": { 2558 "description": "This tag indicates the detailed description of the permission.", 2559 "type": "string", 2560 "minLength": 0, 2561 "maxLength": 255 2562 } 2563 } 2564 } 2565 }, 2566 "reqCapabilities": { 2567 "description": "indicates the device capabilities required to run the application. The value is an array of strings, each of which represents a device capability. Device capabilities are defined by the device OS.", 2568 "type": "array", 2569 "items": { 2570 "type": "string" 2571 } 2572 }, 2573 "commonEvents": { 2574 "description": "This tag and subtag are not supported on lightweight devices.", 2575 "type": "array", 2576 "items": { 2577 "type": "object", 2578 "required": [ 2579 "name", 2580 "events" 2581 ], 2582 "propertyNames": { 2583 "enum": [ 2584 "mergeRule", 2585 "name", 2586 "permission", 2587 "data", 2588 "type", 2589 "events" 2590 ] 2591 }, 2592 "properties": { 2593 "mergeRule": { 2594 "description": "Tags identify the rule for merging configs.", 2595 "type": "object", 2596 "propertyNames": { 2597 "enum": [ 2598 "remove", 2599 "replace" 2600 ] 2601 }, 2602 "properties": { 2603 "remove": { 2604 "description": "Attributes to Be Removed After Marking Merge", 2605 "type": "array", 2606 "uniqueItems": true, 2607 "items": { 2608 "type": "string" 2609 } 2610 }, 2611 "replace": { 2612 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2613 "type": "array", 2614 "uniqueItems": true, 2615 "items": { 2616 "type": "string" 2617 } 2618 } 2619 } 2620 }, 2621 "name": { 2622 "description": "This tag specifies the class name corresponding to the current static public event year. The class name must be specified in the capability field.", 2623 "type": "string", 2624 "maxLength": 127, 2625 "pattern": "^[.].*" 2626 }, 2627 "permission": { 2628 "description": "This tag identifies the permission that needs to be applied for to implement the static public event. It is a character string indicating a permission name.", 2629 "type": "string", 2630 "maxLength": 255 2631 }, 2632 "data": { 2633 "description": "This tag configures the additional data array to be carried by the current static public event. The array type is string array. Each array element is an additional data to be carried.", 2634 "type": "array", 2635 "items": { 2636 "type": "string" 2637 } 2638 }, 2639 "type": { 2640 "description": "This tag is used to configure the category array of the current static public event. It is a string array. Each array element is a category name.", 2641 "type": "array", 2642 "items": { 2643 "type": "string" 2644 } 2645 }, 2646 "events": { 2647 "description": "This tag identifies a set of event values of intentions that can be received. The value is generally predefined by the system or can be customized.", 2648 "type": "array", 2649 "items": { 2650 "type": "string" 2651 } 2652 } 2653 } 2654 } 2655 }, 2656 "supportedModes": { 2657 "description": "Indicates the running mode supported by the application. Currently, the drive mode is supported.This attribute is not supported by devices running the OHOS.", 2658 "type": "array", 2659 "items": { 2660 "type": "string", 2661 "enum": [ 2662 "drive" 2663 ] 2664 } 2665 }, 2666 "shortcuts": { 2667 "description": "Indicates the shortcut information of the application. The value is an array, in which each element represents a shortcut object.", 2668 "type": "array", 2669 "items": { 2670 "type": "object", 2671 "propertyNames": { 2672 "enum": [ 2673 "shortcutId", 2674 "label", 2675 "icon", 2676 "intents" 2677 ] 2678 }, 2679 "required": [ 2680 "shortcutId" 2681 ], 2682 "properties": { 2683 "shortcutId": { 2684 "description": "Identifies a shortcut. The value is a string with a maximum of 63 bytes.", 2685 "type": "string", 2686 "maxLength": 63 2687 }, 2688 "label": { 2689 "description": "Indicates the label of the shortcut, that is, the text description displayed by the shortcut. The value can be a string or a resource index to description. A string can contain a maximum of 63 bytes. If the value exceeds 63 bytes, use the resource index.", 2690 "type": "string", 2691 "maxLength": 63 2692 }, 2693 "icon": { 2694 "description": "Indicates the icon of the shortcut. The value is the index to the resource file.", 2695 "type": "string" 2696 }, 2697 "intents": { 2698 "description": "Indicates the intents to which the shortcut points. The attribute consists of the targetClass and targetBundle sub-attributes.", 2699 "type": "array", 2700 "items": { 2701 "type": "object", 2702 "propertyNames": { 2703 "enum": [ 2704 "targetClass", 2705 "targetBundle" 2706 ] 2707 }, 2708 "properties": { 2709 "targetClass": { 2710 "description": "Indicates the class name for the target ability of the shortcut.", 2711 "type": "string" 2712 }, 2713 "targetBundle": { 2714 "description": "Indicates the application bundle name for the target ability of the shortcut.", 2715 "type": "string" 2716 } 2717 } 2718 } 2719 } 2720 } 2721 } 2722 }, 2723 "defPermissionGroups": { 2724 "description": "Indicates the permission groups defined by the .hap file. The permission groups are used in setting the defPermissions attribute.This attribute is not supported by devices running the OHOS.", 2725 "type": "array", 2726 "items": { 2727 "type": "object", 2728 "propertyNames": { 2729 "enum": [ 2730 "mergeRule", 2731 "name", 2732 "order", 2733 "icon", 2734 "label", 2735 "description", 2736 "request" 2737 ] 2738 }, 2739 "required": [ 2740 "name" 2741 ], 2742 "properties": { 2743 "mergeRule": { 2744 "description": "Tags identify the rule for merging configs.", 2745 "type": "object", 2746 "propertyNames": { 2747 "enum": [ 2748 "remove", 2749 "replace" 2750 ] 2751 }, 2752 "properties": { 2753 "remove": { 2754 "description": "Attributes to Be Removed After Marking Merge", 2755 "type": "array", 2756 "uniqueItems": true, 2757 "items": { 2758 "type": "string" 2759 } 2760 }, 2761 "replace": { 2762 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 2763 "type": "array", 2764 "uniqueItems": true, 2765 "items": { 2766 "type": "string" 2767 } 2768 } 2769 } 2770 }, 2771 "name": { 2772 "description": "This label indicates the name of the permission group.", 2773 "type": "string" 2774 }, 2775 "order": { 2776 "description": "This tag indicates the group priority, which is used for sorting permission groups on the UI. This label is an integer.", 2777 "type": "integer", 2778 "minimum": 0, 2779 "maximum": 10000 2780 }, 2781 "icon": { 2782 "description": "Indicates the UI icon of the permission group. The value is the resource index of the icon.", 2783 "type": "string" 2784 }, 2785 "label": { 2786 "description": "This label represents a short description of the permission group.", 2787 "type": "string" 2788 }, 2789 "description": { 2790 "description": "Indicates the detailed description of the permission group.", 2791 "type": "string" 2792 }, 2793 "request": { 2794 "description": "This tag indicates a question when an application dynamically applies for permissions from a user.", 2795 "type": "string" 2796 } 2797 } 2798 } 2799 }, 2800 "allowClassMap": { 2801 "description": "Indicates the meta information about the HAP. The tag value is true or false. If the tag value is true, the hap uses the Java object proxy mechanism provided by the Harmony framework. The default value is false.", 2802 "type": "boolean" 2803 }, 2804 "colorMode": { 2805 "description": "This tag identifies the card hue. The value can be auto, dark, or light. dark indicates that the card supports the dark color mode, light indicates that the card does not support the dark color mode, and auto indicates that the card hue is the same as the system hue.", 2806 "type": "string", 2807 "enum": [ 2808 "auto", 2809 "dark", 2810 "light" 2811 ] 2812 }, 2813 "theme": { 2814 "description": "This tag identifies the hap topic. The tag value can be the index of a user-defined theme resource or the index of a system theme resource.", 2815 "type": "string" 2816 }, 2817 "mainAbility": { 2818 "description": "This tag identifies the hap topic. The tag value can be the index of a user-defined theme resource or the index of a system theme resource.", 2819 "type": "string" 2820 }, 2821 "srcPath": { 2822 "description": "This tag indicates the JS component code path corresponding to the module. The tag value is a character string (a maximum of 127 bytes)", 2823 "type": "string", 2824 "maxLength": 127 2825 }, 2826 "resizeable": { 2827 "description": "Indicates whether the application supports the multi-window feature.", 2828 "type": "boolean" 2829 }, 2830 "entryTheme": { 2831 "description": "This tag indicates the keyword of the Harmony internal topic. Set the tag value to the resource index of the name.", 2832 "type": "string", 2833 "pattern": "^[$](.*):(.*)+$" 2834 }, 2835 "distroFilter": { 2836 "description": "This tag is used for precise matching during cloud distribution in the AppGallery and defines the HAP distribution policy.", 2837 "type": "object", 2838 "propertyNames": { 2839 "enum": [ 2840 "apiVersion", 2841 "screenShape", 2842 "screenWindow", 2843 "screenDensity", 2844 "countryCode" 2845 ] 2846 }, 2847 "properties": { 2848 "apiVersion": { 2849 "description": "Indicates the supported apiVersion range.This label is optional.", 2850 "type": "object", 2851 "propertyNames": { 2852 "enum": [ 2853 "policy", 2854 "value" 2855 ] 2856 }, 2857 "required": [ 2858 "policy", 2859 "value" 2860 ], 2861 "properties": { 2862 "policy": { 2863 "description": "The policy tag indicates the list rule of the value of the sublabel. Either exclude or include can be used.", 2864 "type": "string", 2865 "enum": [ 2866 "include", 2867 "exclude" 2868 ] 2869 }, 2870 "value": { 2871 "description": "Indicates the value range of the sublabel.", 2872 "type": "array", 2873 "items": { 2874 "type": "integer", 2875 "minimum": 3 2876 }, 2877 "uniqueItems": true 2878 } 2879 } 2880 }, 2881 "screenShape": { 2882 "description": "Indicates the screen shape enumeration. The value can be circle or rect, indicating a circle or rectangle screen.", 2883 "type": "object", 2884 "propertyNames": { 2885 "enum": [ 2886 "policy", 2887 "value" 2888 ] 2889 }, 2890 "required": [ 2891 "policy", 2892 "value" 2893 ], 2894 "properties": { 2895 "policy": { 2896 "description": "The policy tag indicates the list rule of the value of the sublabel. Either exclude or include can be used.", 2897 "type": "string", 2898 "enum": [ 2899 "include", 2900 "exclude" 2901 ] 2902 }, 2903 "value": { 2904 "description": "Indicates the value range of the sublabel.", 2905 "type": "array", 2906 "items": { 2907 "type": "string", 2908 "enum": [ 2909 "circle", 2910 "rect" 2911 ] 2912 }, 2913 "uniqueItems": true 2914 } 2915 } 2916 }, 2917 "screenWindow": { 2918 "description": "Indicates the resolution of the window when the application is running. This parameter can be configured only for liteWearable devices. This field is optional. If this field is configured, the value must be valid. The tag value type is a string array.", 2919 "type": "object", 2920 "propertyNames": { 2921 "enum": [ 2922 "policy", 2923 "value" 2924 ] 2925 }, 2926 "required": [ 2927 "policy", 2928 "value" 2929 ], 2930 "properties": { 2931 "policy": { 2932 "description": "The policy tag indicates the list rule of the value of the sublabel. Either exclude or include can be used.", 2933 "type": "string", 2934 "enum": [ 2935 "include" 2936 ] 2937 }, 2938 "value": { 2939 "description": "Indicates the value range of the sublabel.", 2940 "type": "array", 2941 "items": { 2942 "type": "string", 2943 "pattern": "^([1-9][0-9]*)\\*([1-9][0-9]*)$" 2944 }, 2945 "uniqueItems": true 2946 } 2947 } 2948 }, 2949 "screenDensity": { 2950 "description": "This label indicates the pixel density of the screen (dpi: Dots Per Inch). This field is optional. If this field is configured, the value must be valid. The tag value is a string array.", 2951 "type": "object", 2952 "propertyNames": { 2953 "enum": [ 2954 "policy", 2955 "value" 2956 ] 2957 }, 2958 "required": [ 2959 "policy", 2960 "value" 2961 ], 2962 "properties": { 2963 "policy": { 2964 "description": "The policy tag indicates the list rule of the value of the sublabel. Either exclude or include can be used.", 2965 "type": "string", 2966 "enum": [ 2967 "include", 2968 "exclude" 2969 ] 2970 }, 2971 "value": { 2972 "description": "Indicates the value range of the sublabel.", 2973 "type": "array", 2974 "items": { 2975 "type": "string", 2976 "enum": [ 2977 "sdpi", 2978 "mdpi", 2979 "ldpi", 2980 "xldpi", 2981 "xxldpi", 2982 "xxxldpi" 2983 ] 2984 }, 2985 "uniqueItems": true 2986 } 2987 } 2988 }, 2989 "countryCode": { 2990 "description": "This label indicates the country code to be distributed to the application. The specific value is subject to the ISO-3166 -1 standard. Multiple country and region enumeration definitions are supported. This field is optional. If this field is configured, the value must be valid. The tag value is astring array. The substring indicates the supported country or region and consists of two uppercase letters.", 2991 "type": "object", 2992 "propertyNames": { 2993 "enum": [ 2994 "policy", 2995 "value" 2996 ] 2997 }, 2998 "required": [ 2999 "policy", 3000 "value" 3001 ], 3002 "properties": { 3003 "policy": { 3004 "description": "The policy tag indicates the list rule of the value of the sublabel. Either exclude or include can be used.", 3005 "type": "string", 3006 "enum": [ 3007 "include", 3008 "exclude" 3009 ] 3010 }, 3011 "value": { 3012 "description": "Indicates the value range of the sublabel.", 3013 "type": "array", 3014 "items": { 3015 "type": "string" 3016 }, 3017 "uniqueItems": true 3018 } 3019 } 3020 } 3021 } 3022 }, 3023 "metaData": { 3024 "description": "Indicates the metadata of the ability.", 3025 "type": "object", 3026 "propertyNames": { 3027 "enum": [ 3028 "parameters", 3029 "results", 3030 "customizeData" 3031 ] 3032 }, 3033 "properties": { 3034 "parameters": { 3035 "description": "Indicates the metadata of the parameters to be passed for calling the ability. The metadata of each parameter consists of the description, name, and type sub-attributes.", 3036 "type": "array", 3037 "items": { 3038 "type": "object", 3039 "propertyNames": { 3040 "enum": [ 3041 "description", 3042 "name", 3043 "type", 3044 "mergeRule" 3045 ] 3046 }, 3047 "required": [ 3048 "name", 3049 "type" 3050 ], 3051 "properties": { 3052 "name": { 3053 "description": "Indicates the name of the parameter.", 3054 "type": "string", 3055 "maxLength": 255 3056 }, 3057 "type": { 3058 "description": "Indicates the type of the parameter, for example, Integer.", 3059 "type": "string" 3060 }, 3061 "description": { 3062 "description": "Describes the parameter. The value can be a string or a resource index to descriptions in multiple languages.", 3063 "type": "string", 3064 "maxLength": 255 3065 }, 3066 "mergeRule": { 3067 "description": "Tags identify the rule for merging configs.", 3068 "type": "object", 3069 "propertyNames": { 3070 "enum": [ 3071 "remove", 3072 "replace" 3073 ] 3074 }, 3075 "properties": { 3076 "remove": { 3077 "description": "Attributes to Be Removed After Marking Merge", 3078 "type": "array", 3079 "uniqueItems": true, 3080 "items": { 3081 "type": "string" 3082 } 3083 }, 3084 "replace": { 3085 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 3086 "type": "array", 3087 "uniqueItems": true, 3088 "items": { 3089 "type": "string" 3090 } 3091 } 3092 } 3093 } 3094 } 3095 } 3096 }, 3097 "results": { 3098 "description": "Indicates the metadata of the ability return value. The metadata of each return value consists of the description, name, and type sub-attributes.", 3099 "type": "array", 3100 "items": { 3101 "type": "object", 3102 "propertyNames": { 3103 "enum": [ 3104 "description", 3105 "name", 3106 "type", 3107 "mergeRule" 3108 ] 3109 }, 3110 "required": [ 3111 "type" 3112 ], 3113 "properties": { 3114 "name": { 3115 "description": "Indicates the name of the return value.", 3116 "type": "string", 3117 "maxLength": 255 3118 }, 3119 "type": { 3120 "description": "Indicates the type of the return value, for example, Integer.", 3121 "type": "string" 3122 }, 3123 "description": { 3124 "description": "Describes the return value. The value can be a string or a resource index to descriptions in multiple languages.", 3125 "type": "string", 3126 "maxLength": 255 3127 }, 3128 "mergeRule": { 3129 "description": "Tags identify the rule for merging configs.", 3130 "type": "object", 3131 "propertyNames": { 3132 "enum": [ 3133 "remove", 3134 "replace" 3135 ] 3136 }, 3137 "properties": { 3138 "remove": { 3139 "description": "Attributes to Be Removed After Marking Merge", 3140 "type": "array", 3141 "uniqueItems": true, 3142 "items": { 3143 "type": "string" 3144 } 3145 }, 3146 "replace": { 3147 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 3148 "type": "array", 3149 "uniqueItems": true, 3150 "items": { 3151 "type": "string" 3152 } 3153 } 3154 } 3155 } 3156 } 3157 } 3158 }, 3159 "customizeData": { 3160 "description": "Indicates the custom metadata of the parent component. The parameters and results attributes are not configurable in the module tag.", 3161 "type": "array", 3162 "items": { 3163 "type": "object", 3164 "propertyNames": { 3165 "enum": [ 3166 "name", 3167 "value", 3168 "extra", 3169 "mergeRule" 3170 ] 3171 }, 3172 "properties": { 3173 "name": { 3174 "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.", 3175 "type": "string", 3176 "maxLength": 255 3177 }, 3178 "value": { 3179 "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.", 3180 "type": "string", 3181 "maxLength": 255 3182 }, 3183 "extra": { 3184 "description": "Indicates the custom format of the data element. The value is an index to the resource that identifies the data.", 3185 "type": "string" 3186 }, 3187 "mergeRule": { 3188 "description": "Tags identify the rule for merging configs.", 3189 "type": "object", 3190 "propertyNames": { 3191 "enum": [ 3192 "remove", 3193 "replace" 3194 ] 3195 }, 3196 "properties": { 3197 "remove": { 3198 "description": "Attributes to Be Removed After Marking Merge", 3199 "type": "array", 3200 "uniqueItems": true, 3201 "items": { 3202 "type": "string" 3203 } 3204 }, 3205 "replace": { 3206 "description": "Marks the label that needs to be replaced for merge conflicts, and always retains the value of the highest priority.", 3207 "type": "array", 3208 "uniqueItems": true, 3209 "items": { 3210 "type": "string" 3211 } 3212 } 3213 } 3214 } 3215 } 3216 } 3217 } 3218 } 3219 }, 3220 "uiSyntax": { 3221 "description": "Indicates the syntax type of JS Component.Default is hml", 3222 "type": "string", 3223 "enum": [ 3224 "js", 3225 "ets", 3226 "hml" 3227 ], 3228 "default": "js" 3229 }, 3230 "testRunner": { 3231 "description": "This tag is used for configure the test properties.", 3232 "type":"object", 3233 "required": [ 3234 "name", 3235 "srcPath" 3236 ], 3237 "propertyNames": { 3238 "enum": [ 3239 "name", 3240 "srcPath" 3241 ] 3242 }, 3243 "properties":{ 3244 "name": { 3245 "description": "Indicates the name of testRunner, The value is a string with a maximum of 255 bytes", 3246 "type": "string", 3247 "maxLength": 255 3248 }, 3249 "srcPath": { 3250 "description": "Indicates the srcPath testRunner, The value is a string with a maximum of 255 bytes", 3251 "type": "string", 3252 "maxLength": 255 3253 } 3254 } 3255 } 3256 }, 3257 "allOf": [ 3258 { 3259 "if": { 3260 "properties": { 3261 "distro": { 3262 "properties": { 3263 "moduleType": { 3264 "const": "feature" 3265 } 3266 } 3267 } 3268 } 3269 }, 3270 "then": { 3271 "propertyNames": { 3272 "enum": [ 3273 "commonEvents", 3274 "description", 3275 "abilities", 3276 "js", 3277 "reqPermissions", 3278 "definePermissions", 3279 "deviceType", 3280 "distro", 3281 "reqCapabilities", 3282 "metaData", 3283 "package", 3284 "name", 3285 "supportedModes", 3286 "shortcuts", 3287 "defPermissions", 3288 "defPermissionGroups", 3289 "allowClassMap", 3290 "colorMode", 3291 "theme", 3292 "mainAbility", 3293 "srcPath", 3294 "resizeable", 3295 "entryTheme", 3296 "testRunner" 3297 ] 3298 } 3299 } 3300 }, 3301 { 3302 "if": { 3303 "properties": { 3304 "distro": { 3305 "properties": { 3306 "moduleType": { 3307 "const": "entry" 3308 } 3309 } 3310 } 3311 } 3312 }, 3313 "then": { 3314 "propertyNames": { 3315 "enum": [ 3316 "commonEvents", 3317 "description", 3318 "abilities", 3319 "js", 3320 "reqPermissions", 3321 "definePermissions", 3322 "deviceType", 3323 "distro", 3324 "reqCapabilities", 3325 "metaData", 3326 "package", 3327 "name", 3328 "supportedModes", 3329 "shortcuts", 3330 "defPermissions", 3331 "defPermissionGroups", 3332 "allowClassMap", 3333 "colorMode", 3334 "theme", 3335 "mainAbility", 3336 "srcPath", 3337 "resizeable", 3338 "entryTheme", 3339 "distroFilter", 3340 "testRunner" 3341 ] 3342 } 3343 } 3344 } 3345 ] 3346 } 3347 }, 3348 "if": { 3349 "properties": { 3350 "app": { 3351 "properties": { 3352 "type": { 3353 "const": "normal" 3354 } 3355 } 3356 } 3357 } 3358 }, 3359 "then": { 3360 "module": { 3361 "properties": { 3362 "abilities": { 3363 "items": { 3364 "properties": { 3365 "type": { 3366 "enum": [ 3367 "service", 3368 "data", 3369 "CA", 3370 "page" 3371 ] 3372 } 3373 } 3374 } 3375 } 3376 } 3377 } 3378 }, 3379 "else": { 3380 "properties": { 3381 "deviceConfig": { 3382 "properties": { 3383 "default": { 3384 "properties": { 3385 "keepAlive": { 3386 "const": false 3387 } 3388 } 3389 }, 3390 "tv": { 3391 "properties": { 3392 "keepAlive": { 3393 "const": false 3394 } 3395 } 3396 }, 3397 "wearable": { 3398 "properties": { 3399 "keepAlive": { 3400 "const": false 3401 } 3402 } 3403 }, 3404 "tablet": { 3405 "properties": { 3406 "keepAlive": { 3407 "const": false 3408 } 3409 } 3410 }, 3411 "car": { 3412 "properties": { 3413 "keepAlive": { 3414 "const": false 3415 } 3416 } 3417 } 3418 } 3419 }, 3420 "module": { 3421 "properties": { 3422 "abilities": { 3423 "items": { 3424 "properties": { 3425 "type": { 3426 "enum": [ 3427 "service", 3428 "data", 3429 "CA" 3430 ] 3431 } 3432 } 3433 } 3434 } 3435 } 3436 } 3437 } 3438 } 3439} 3440