• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Internal structure of deviceConfig Tag
2
3
4The **deviceConfig** tag contains device-specific configuration of the application, including attributes such as **default**, **tv**, **car**, and **wearable**. The **default** configuration applies to all types of devices. You need to declare the peculiar configuration of a specific device type in the associated sub-tag of this type.
5
6## Internal Structure of the deviceConfig Tag
7
8**Table 1** Internal structure of the deviceConfig tag
9
10| Name| Description| Data Type| Initial Value Allowed|
11| -------- | -------- | -------- | -------- |
12| default | Application configuration specific to the OpenHarmony device that provides full access to system capabilities.| Object| Yes (initial value: left empty)|
13| tablet | Application configuration specific to tablets.| Object| Yes (initial value: left empty)|
14| tv | Application configuration specific to smart TVs.| Object| Yes (initial value: left empty)|
15| car | Application configuration specific to head units.| Object| Yes (initial value: left empty)|
16| wearable | Application configuration specific to wearables.| Object| Yes (initial value: left empty)|
17
18
19Table 2 describes the internal structure of the **deviceConfig** attributes.
20
21## Internal Structure of the deviceConfig Attributes
22
23**Table 2** Internal structure of the deviceConfig attributes
24
25| Name| Description| Data Type| Initial Value Allowed|
26| -------- | -------- | -------- | -------- |
27| process | Name of the process running the application or ability. If the **process** attribute is configured in the **deviceConfig** tag, all abilities of the application run in this process. You can set the **process** attribute for a specific ability in the **abilities** attribute, so that the ability can run in the particular process. The value can contain a maximum of 31 characters.| String| Yes (initial value: left empty)|
28| keepAlive | Whether the application is always running. This attribute applies only to system applications and does not take effect for third-party applications. The value **true** means that the application will start during the OS startup and keep alive. If the application process exits, the OS will restart it.| Boolean| Yes (initial value: **false**)|
29| supportBackup | Whether the application supports backup and restoration. The value **false** means that the application does not support backup or restoration.| Boolean| Yes (initial value: **false**)|
30| compressNativeLibs | Whether the **libs** libraries are packaged in the HAP file after being compressed. The value **false** means that the **libs** libraries are stored without being compressed and will be directly loaded during the installation of the HAP file.| Boolean| Yes (initial value: **false**)|
31| network | Network security configuration. You can customize the network security settings of the application in the security statement of the configuration file without modifying the application code.| Object| Yes (initial value: left empty)|
32
33## Internal Structure of the network Attribute
34
35**Table 3** Internal structure of the network attribute
36
37| Name| Description| Data Type| Initial Value Allowed|
38| -------- | -------- | -------- | -------- |
39| cleartextTraffic | Whether to allow the application to use plaintext traffic, for example, plaintext HTTP traffic.<br>**true**: The application is allowed to use plaintext traffic. **false**: The application is not allowed to use plaintext traffic.| Boolean| Yes (initial value: **false**)|
40| securityConfig | Network security configuration of the application.| Object| Yes (initial value: left empty)|
41
42## Internal Structure of the securityConfig Attribute
43
44**Table 4** Internal structure of the securityConfig attribute
45
46| Name| Description| Data Type| Initial Value Allowed|
47| -------- | -------- | -------- | -------- |
48| domainSettings | Security settings of the custom network domain. This attribute allows nested domains. That is, the **domainSettings** object of a network domain can be nested with the **domainSettings** objects of smaller network domains.| Object| Yes (initial value: left empty)|
49
50## Internal Structure of the domainSettings Attribute
51
52**Table 5** Internal structure of the domainSettings attribute
53
54| Name| Description| Data Type| Initial Value Allowed|
55| -------- | -------- | -------- | -------- |
56| cleartextPermitted | Whether plaintext traffic can be transmitted in the custom network domain. If both **cleartextTraffic** and **security** are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the **cleartextPermitted** attribute. **true**: Plaintext traffic can be transmitted. **false**: Plaintext traffic cannot be transmitted.| Boolean| Yes (initial value: left empty)|
57| domains | Domain name. This attribute consists of two sub-attributes: **subdomains** and **name**. **subdomains** (boolean): specifies whether the domain name contains subdomains. If this sub-attribute is set to **true**, the domain naming convention applies to all related domains and subdomains (including the lower-level domains of the subdomains). Otherwise, the convention applies only to exact matches. **name** (string): indicates the domain name.| Object array| Yes (initial value: left empty)|
58
59Example of the **deviceConfig** tag:
60
61```json
62"deviceConfig": {
63  "default": {
64    "process": "com.example.test.example",
65    "supportBackup": false,
66    "network": {
67      "cleartextTraffic": true,
68      "securityConfig": {
69        "domainSettings": {
70          "cleartextPermitted": true,
71          "domains": [
72            {
73              "subdomains": true,
74              "name": "example.ohos.com"
75            }
76          ]
77        }
78      }
79    }
80  }
81}
82```
83