1# BundlePackInfo (System API)
2
3The **BundlePackInfo** module provides information in the **pack.info** file. The information can be obtained using [freeInstall.getBundlePackInfo](js-apis-freeInstall-sys.md#getbundlepackinfo).
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs provided by this module are system APIs.
10
11## BundlePackInfo
12
13**System API**: This is a system API.
14
15**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
16
17
18| Name    | Type                                   | Read-Only| Optional| Description                     |
19| -------- | --------------------------------------- | ---- | ---- | ------------------------- |
20| packages | Array\<[PackageConfig](#packageconfig)> | Yes  | No  | Package configuration information in the **pack.info** file.      |
21| summary  | [PackageSummary](#packagesummary)       | Yes  | No  | Package summary information in the **pack.info** file.|
22
23## PackageConfig
24
25**System API**: This is a system API.
26
27**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
28
29| Name               | Type          | Read-Only| Optional| Description                                                        |
30| ------------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
31| deviceTypes          | Array\<string> | Yes  | No  | Device types supported by the bundle.                                      |
32| name                | string         | Yes  | No  | Bundle name.                                                  |
33| moduleType          | string         | Yes  | No  | Module type of the bundle.                                            |
34| deliveryWithInstall | boolean        | Yes  | No  | Whether the HAP file will be installed when the user installs the bundle. The value **true** means that the HAP file will be automatically installed when the user installs the bundle, and **false** means the opposite.|
35
36## PackageSummary
37
38**System API**: This is a system API.
39
40**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
41
42| Name   | Type                                         | Read-Only| Optional| Description                |
43| ------- | --------------------------------------------- | ---- | ---- | -------------------- |
44| app     | [BundleConfigInfo](#bundleconfiginfo)         | Yes  | No  | Bundle configuration information.      |
45| modules | Array\<[ModuleConfigInfo](#moduleconfiginfo)> | Yes  | No  | Module configuration information of the bundle.|
46
47## BundleConfigInfo
48
49**System API**: This is a system API.
50
51**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
52
53| Name      | Type               | Read-Only| Optional| Description                                  |
54| ---------- | ------------------- | ---- | ---- | -------------------------------------- |
55| bundleName | string              | Yes  | No  | Bundle name. It uniquely identifies an application.|
56| version    | [Version](#version) | Yes  | No  | Bundle version.                            |
57
58## ModuleConfigInfo
59
60**System API**: This is a system API.
61
62**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
63
64| Name              | Type                                             | Read-Only| Optional| Description                              |
65| ------------------ | ------------------------------------------------- | ---- | ---- | ---------------------------------- |
66| mainAbility | string | Yes| No| Name of the main ability.|
67| apiVersion         | [ApiVersion](#apiversion)                         | Yes  | No  | API version of the module.                 |
68| deviceTypes         | Array\<string>                                    | Yes  | No  | Device types supported by the module.                |
69| distro             | [ModuleDistroInfo](#moduledistroinfo)             | Yes  | No  | Distribution information of the module.                |
70| abilities          | Array\<[ModuleAbilityInfo](#moduleabilityinfo)>   | Yes  | No  | Ability information of the module.              |
71| extensionAbilities | Array\<[ExtensionAbility](#extensionability)> | Yes  | No  | ExtensionAbility information of the module.|
72
73## ModuleDistroInfo
74
75**System API**: This is a system API.
76
77**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
78
79| Name               | Type   | Read-Only| Optional| Description                                                        |
80| ------------------- | ------- | ---- | ---- | ------------------------------------------------------------ |
81| deliveryWithInstall | boolean | Yes  | No  | Whether the HAP file will be installed when the user installs the bundle. The value **true** means that the HAP file will be automatically installed when the user installs the bundle, and **false** means the opposite.|
82| installationFree    | boolean | Yes  | No  | Whether the HAP file supports the installation-free feature. The value **true** means that the HAP file supports the installation-free feature and meets installation-free constraints, and **false** means the opposite.|
83| moduleName          | string  | Yes  | No  | Module name.                                                |
84| moduleType          | string  | Yes  | No  | Module type.                                                |
85
86## ModuleAbilityInfo
87
88**System API**: This is a system API.
89
90**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
91
92| Name   | Type                                       | Read-Only| Optional| Description                                                        |
93| ------- | ------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
94| name    | string                                      | Yes  | No  | Name of the ability. The name must be unique in the bundle.           |
95| label   | string                                      | Yes  | No  | Name of the ability displayed to users. The value is a resource index to names in multiple languages.|
96| exported | boolean                                     | Yes  | No  | Whether the ability can be called by other bundles. The value **true** means that the ability can be called by other bundles, and **false** means the opposite.|
97| forms   | Array\<[AbilityFormInfo](#abilityforminfo)> | Yes  | No  | Widget information.                                                  |
98
99## ExtensionAbility
100
101**System API**: This is a system API.
102
103**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
104
105| Name | Type                                       | Read-Only| Optional| Description                                                        |
106| ----- | ------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
107| name | string | Yes| No| Name of the ExtensionAbility.|
108| forms | Array\<[AbilityFormInfo](#abilityforminfo)> | Yes  | No  | Widget information.|
109
110## AbilityFormInfo
111
112**System API**: This is a system API.
113
114**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
115
116| Name               | Type          | Read-Only| Optional| Description                                                        |
117| ------------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
118| name                | string         | Yes  | No  | Widget name.                                           |
119| type                | string         | Yes  | No  | Widget type.                                           |
120| updateEnabled       | boolean        | Yes  | No  | Whether the widget supports periodic update. The value **true** means that the widget supports periodic update, and **false** means the opposite.|
121| scheduledUpdateTime | string         | Yes  | No  | Scheduled time to update the widget. The value is in 24-hour format and accurate to the minute.        |
122| updateDuration      | number         | Yes  | No  | Interval to update the widget. The unit is 30 minutes. The value is a multiple of 30. A widget can be updated at a specified interval (**updateDuration**) or at the scheduled time (**scheduledUpdateTime**). If both are configured, **updateDuration** takes precedence.|
123| supportDimensions   | Array\<string> | Yes  | No  | Dimensions of the widget. The value can be **1\*2**, **2\*2**, **2\*4**, **4\*4**, or a combination of these options. At least one option must be specified when defining the widget.|
124| defaultDimension    | string         | Yes  | No  | Default dimensions of the widget. The value must be available in the **supportDimensions** array of the widget.|
125
126## ApiVersion
127
128**System API**: This is a system API.
129
130**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
131
132| Name       | Type  | Read-Only| Optional| Description                |
133| ----------- | ------ | ---- | ---- | -------------------- |
134| releaseType | string | Yes  | No  | Name of the API version.        |
135| compatible  | number | Yes  | No  | Minimum API version.|
136| target      | number | Yes  | No  | Target API version.        |
137
138## Version
139
140**System API**: This is a system API.
141
142**System capability**: SystemCapability.BundleManager.BundleFramework.FreeInstall
143
144| Name                    | Type  | Read-Only| Optional| Description                                                        |
145| ------------------------ | ------ | ---- | ---- | ------------------------------------------------------------ |
146| minCompatibleVersionCode | number | Yes  | No  | Minimum compatible version of the bundle. It is used to check whether the bundle is compatible with a version on other devices in the cross-device scenario. The value is a 32-bit non-negative integer.|
147| name                     | string | Yes  | No  | Version number of the bundle visible to users.                      |
148| code                     | number | Yes  | No  | Version number of the bundle used only for bundle management. The value is a 32-bit non-negative integer. It is used only to determine whether a version is later than another version. A larger value indicates a later version.|
149