• Home
Name Date Size #Lines LOC

..--

META-INF/22-Oct-2025-2520

adapter/22-Oct-2025-30,33520,995

configcheck/22-Oct-2025-4,5264,520

img/22-Oct-2025-

jar/22-Oct-2025-638534

modulecheck/22-Oct-2025-5,0585,027

ohos_packing_tool/22-Oct-2025-1,161874

packing_tool/frameworks/22-Oct-2025-63,15546,595

.gitignoreD22-Oct-20256 22

BUILD.gnD22-Oct-20252.3 KiB8170

LICENSED22-Oct-20259.9 KiB177150

OAT.xmlD22-Oct-20259.8 KiB9237

README_zh.mdD22-Oct-202571.1 KiB851667

build.pyD22-Oct-20259.5 KiB236191

build.pydepsD22-Oct-20258 11

bundle.jsonD22-Oct-2025982 3938

checkTool.shD22-Oct-20253.5 KiB11389

haptobin.shD22-Oct-20252.2 KiB7454

packingTool.shD22-Oct-20253.9 KiB12298

packingtool.gniD22-Oct-20251.6 KiB5552

unpackingTool.shD22-Oct-20252.5 KiB8062

README_zh.md

1# 打包拆包工具使用说明
2
3## 简介
4
5packing_tool子系统用于生成打包工具和拆包工具,其中打包工具用于hap,app,hqf,appqf,hsp包的生成,拆包工具用于对hap,app,hqf,appqf,har,hsp包的拆包及对hap,hsp,app,appqf的解析。具体的功能介绍如下:
6
7打包工具子系统架构图如下:
8
9![](https://gitee.com/openharmony/developtools_packing_tool/raw/master/img/%E6%89%93%E5%8C%85%E5%B7%A5%E5%85%B7%E6%9E%B6%E6%9E%84%E5%9B%BE.webp)
10
11## 1. 打包指令说明
12
13### 1.1 hap包模式打包指令
14
15#### 1.1.1 示例
16
17- Stage模型的打包命令示例:
18
19
20```
21java -jar app_packing_tool.jar --mode hap --json-path <option> --resources-path <option> --ets-path <option> --index-path <option> --pack-info-path <option> --out-path path\out\srcEntrance.hap --force true --compress-level 5 --pkg-context-path <option>
22```
23
24- FA模型的打包命令示例:
25
26
27```
28java -jar app_packing_tool.jar --mode hap --json-path <option> --maple-so-path [option] --profile-path [option] --maple-so-dir [option] --dex-path [option] --lib-path [option] --resources-path [option] --index-path [option] --out-path <option> --force [option] --compress-level 5
29```
30
31#### 1.1.2 参数含义及规范
32
33| 指令               | 是否必选项 | 选项                   | 描述                                                        | 备注         |
34|------------------|-------|----------------------|-----------------------------------------------------------|------------|
35| --mode           | 是     | hap                  | 打包类型。                                                     | NA         |
36| --json-path      | 是     | NA                   | .json文件路径,FA模型文件名必须为config.json;stage模型文件名必须为module.json。 | NA         |
37| --profile-path   | 否     | NA                   | CAPABILITY.profile文件路径。                                   | NA         |
38| --maple-so-path  | 否     | NA                   | maple so文件输入路径,so文件路径,文件名必须以.so为后缀。如果是多个so需要用“,”分隔。       | NA         |
39| --maple-so-dir   | 否     | NA                   | maple so目录输入路径。                                           | NA         |
40| --dex-path       | 否     | NA                   | 1.dex文件路径,文件名必须以.dex为后缀。如果是多个dex需要用“,”分隔。2.dex文件路径也可以为目录。 | NA         |
41| --lib-path       | 否     | NA                   | lib库文件路径。                                                 | NA         |
42| --resources-path | 否     | NA                   | resources资源包路径。                                           | NA         |
43| --index-path     | 否     | NA                   | .index文件路径,文件名必须为resources.index。                         | NA         |
44| --pack-info-path | 否     | NA                   | pack.info文件路径,文件名必须为pack.info。                            | NA         |
45| --rpcid-path     | 否     | NA                   | rpcid.sc文件路径,文件名必须为rpcid.sc。                              | NA         |
46| --js-path        | 否     | NA                   | 存放js文件目录路径。                                               | 仅stage模型生效 |
47| --ets-path       | 否     | NA                   | 存放ets文件目录路径。                                              | 仅stage模型生效 |
48| --out-path       | 是     | NA                   | 目标文件路径,文件名必须以.hap为后缀。                                     | NA         |
49| --force          | 否     | true或者false          | 默认值为false,如果为true,表示当目标文件存在时,强制删除。                        | NA         |
50| --an-path        | 否     | NA                   | 存放an文件的路径。                                                | 仅stage模型生效 |
51| --ap-path        | 否     | NA                   | 存放ap文件的路径。                                                | 仅stage模型生效 |
52| --dir-list       | 否     | NA                   | 可指定目标文件夹列表,将其打入hap包内。                                   | NA         |
53| --compress-level | 否     | number               | 压缩等级,默认值1,可选等级1-9。在应用配置compressNativeLibs参数为true的情况下生效,数值越大压缩率越高、压缩速度越慢。  | NA    |
54| --pkg-context-path      | 否         | NA            | 可指定语境信息表文件路径,文件名必须为pkgContextInfo.json。 | 仅stage模型生效              |
55| --hnp-path | 否 | NA | 指定native软件包文件路径,将native软件包打入hap包内。 | NA |
56
57### 1.2 res模式打包指令
58
59#### 1.2.1 示例
60
61```
62java -jar app_packing_tool.jar --mode res --entrycard-path [option] --pack-info-path [option] --out-path [option] --force [option]
63```
64
65#### 1.2.2 参数含义及规范
66
67| 指令               | 是否必选项 | 选项            | 描述                                 |
68|------------------|-------|---------------|------------------------------------|
69| --mode           | 是     | res           | 命令类型。                              |
70| --entrycard-path | 是     | NA            | 快照目录的路径。                           |
71| --pack-info-path | 是     | NA            | pack.info文件路径,包含卡片信息。              |
72| --out-path       | 是     | NA            | 目标文件路径,文件名必须以.res为后缀。              |
73| --force          | 否     | true或者false   | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
74
75### 1.3 app包模式打包指令
76
77#### 1.3.1 示例
78
79```
80java -jar app_packing_tool.jar --mode app [--hap-path <path>] [--hsp-path <path>] --out-path <path> [--signature-path <path>] [--certificate-path <path>] [--pack-info-path <path>] --force <option> [--encrypt-path <path>] [--pac-json-path <path>]
81```
82
83#### 1.3.2 参数含义及规范
84
85| 指令                 | 是否必选项 | 选项          | 描述                                                           |
86|--------------------|-------|-------------|--------------------------------------------------------------|
87| --mode             | 是     | app         | 多个hap需满足hap的合法性校验。                                           |
88| --hap-path         | 否     | NA          | 1.hap包文件路径,文件名必须以.hap为后缀。如果时多个hap包需要用“,”分隔。2.hap包文件路径也可以是目录。 |
89| --hsp-path         | 否     | NA          | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果时多个hsp包需要用“,”分隔。2.hsp包文件路径也可以是目录。 |
90| --pack-info-path   | 是     | NA          | 文件名必须为pack.info。                                             |
91| --out-path         | 是     | NA          | 目标文件路径,文件名必须以.app为后缀。                                        |
92| --signature-path   | 否     | NA          | 签名路径。                                                        |
93| --certificate-path | 否     | NA          | 证书路径。                                                        |
94| --pack-res-path    | 否     | NA          | 打包res的目标文件路径,文件名需要为pack.res。                                 |
95| --force            | 否     | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。                           |
96| --encrypt-path     | 否     | NA          | 文件名必须为encrypt.json。                                          |
97| --pac-json-path    | 否     | NA          | 文件名必须为pac.json。                                              |
98
99#### 1.3.3 打包app时hap的合法性校验
100
101在打包生成App包时,需要保证被打包的每个HAP和HSP在pack.info/module.json文件中配置的bundleName、bundleType、versionCode、debug相同,moduleName唯一。所有HAP的minCompatibleVersionCode、targetAPIVersion、minAPIVersion保持一致,且分别不低于所有HSP对应字段的最大值。
102
103从API version 12开始,App打包不再对versionName校验。
104在API version 16之前,App打包时要求所有HAP/HSP的minCompatibleVersionCode、targetAPIVersion一致。
105在API version 20之前,App打包时要求所有HAP/HSP的minAPIVersion一致。
106#### 1.3.4 打包app时的压缩规则
107
108打包app时,对release模式的hap、hsp包会进行压缩,对debug模式的hap、hsp包不会压缩。
109
110### 1.4 多工程打包
111
112#### 1.4.1 示例
113
114```
115java -jar app_packing_tool.jar --mode multiApp --hap-list <1.hap,2.hap> --hsp-list <1.hsp,2.hsp> --app-list <1.app,2.app> --out-path <final.app> [--encrypt-path <path>] [--pac-json-path <path>]
116```
117
118#### 1.4.2 参数含义及规范
119
120| 指令             | 是否必选项 | 选项              | 描述                                                                                                |
121|----------------|-------|-----------------|---------------------------------------------------------------------------------------------------|
122| --mode         | 是     | multiApp        | 打包类型,在将多个hap打入同一个app时,需保证每个hap满足合法性校验规则。                                                          |
123| --hap-list     | 否     | hap的路径          | 1.hap包文件路径,文件名必须以.hap为后缀。如果是多个hap包需要”,“分隔。2.hap文件路径也可以是目录。                                        |
124| --hsp-list     | 否     | hsp的路径          | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果是多个hsp包需要”,“分隔。2.hsp文件路径也可以是目录。                                        |
125| --app-list     | 否     | app的路径          | 1.app文件路径,文件名必须以.app为后缀。如果是多个app包需要用”,“分隔。2.app文件路径也可以是目录。3.--hap-list,--hsp-list,--app-list不可以都不传。 |
126| --out-path     | 是     | NA              | 目标文件路径,文件名必须以.app为后缀。            |
127| --force        | 否     | 默认值为false       | 默认值为false,如果为true,表示当目标文件存在时,强制删除。                                                                |
128| --encrypt-path | 否     | encrypt.json的路径 | 文件名必须为encrypt.json。                                                                |
129| --pac-json-path    | 否     | NA          | 文件名必须为pac.json。最终app产物中pac.json文件只来源于该参数,不配置的话,最终app产物不包含该文件。--app-list参数指定的app包中的pac.json不会打包进最终app。  |
130
131#### 1.4.3 多工程打包hap合法性校验
132
133在打包生成App包时,需要保证被打包的每个HAP和HSP在pack.info/module.json文件中配置的bundleName、bundleType、versionCode、debug相同,moduleName唯一。
134
135从API version 12开始,多工程打包不再对versionName校验。
136在API version 16之前,App打包时要求所有HAP/HSP的minCompatibleVersionCode、targetAPIVersion一致。
137在API version 20之前,App打包时要求所有HAP/HSP的minAPIVersion一致。
138### 1.5 hqf模式打包指令
139
140#### 1.5.1 示例
141
142```
143java -jar app_packing_tool.jar --mode hqf --json-path <option> --lib-path <option> --ets-path <option> --resources-path <option> --out-path <option>
144```
145
146#### 1.5.2 参数含义及规范
147
148| 指令          | 是否必选项 | 选项          | 描述                                 |
149|-------------|-------|-------------|------------------------------------|
150| --mode      | 是     | hqf         | 打包类型。                              |
151| --json-path | 是     | NA          | .json文件路径,文件名必须为patch.json。        |
152| --lib-path  | 否     | NA          | lib库文件的路径。                         |
153| --ets-path  | 否     | NA          | 存放ets文件目录路径。                       |
154| --resources-path  | 否     | NA          | resources资源包路径。                       |
155| --out-path  | 是     | NA          | 目标文件路径,文件名必须以.hqf为后缀。              |
156| --force     | 否     | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
157
158### 1.6 appqf模式打包指令
159
160#### 1.6.1 示例
161
162```
163java -jar app_packing_tool.jar --mode appqf --hqf-list <option> --out-path <option>
164```
165
166#### 1.6.2 参数含义及规范
167
168| 指令         | 是否必选项 | 选项          | 描述                                 |
169|------------|-------|-------------|------------------------------------|
170| --mode     | 是     | appqf       | 打包类型。                              |
171| --hqf-list | 是     | NA          | hqf文件路径,多个hqf以英文逗号隔开。              |
172| --out-path | 是     | NA          | 目标文件路径,文件名必须以.appqf为后缀。            |
173| --force    | 否     | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
174
175
176### 1.7 hsp模式打包指令
177
178#### 1.7.1 示例
179```
180java -jar path\app_packing_tool.jar --mode hsp --json-path <option> --resources-path <option> --ets-path <option> --index-path <option> --pack-info-path <option> --out-path path\out\library.hsp --force true --compress-level 5 --pkg-context-path <option>
181```
182
183#### 1.7.2 参数含义及规范
184
185| 指令               | 是否必选项 | 选项                   | 描述                                                        |
186|------------------|-------|----------------------|-----------------------------------------------------------|
187| --mode           | 是     | hsp                  | 打包类型。                                                     |
188| --json-path      | 是     | NA                   | .json文件路径,文件名必须为module.json。                              |
189| --profile-path   | 否     | NA                   | CAPABILITY.profile文件路径。                                   |
190| --dex-path       | 否     | NA                   | 1.dex文件路径,文件名必须以.dex为后缀。如果是多个dex需要用“,”分隔。2.dex文件路径也可以为目录。 |
191| --lib-path       | 否     | NA                   | lib库文件路径。                                                 |
192| --resources-path | 否     | NA                   | resources资源包路径。                                           |
193| --index-path     | 否     | NA                   | .index文件路径,文件名必须为resources.index。                         |
194| --pack-info-path | 否     | NA                   | pack.info文件路径,文件名必须为pack.info。                            |
195| --js-path        | 否     | NA                   | 存放js文件目录路径。                                               |
196| --ets-path       | 否     | NA                   | 存放ets文件目录路径。                                              |
197| --out-path       | 是     | NA                   | 目标文件路径,文件名必须以.hsp为后缀。                                     |
198| --force          | 否     | true或者false          | 默认值为false,如果为true,表示当目标文件存在时,强制删除。                        |
199| --an-path        | 否     | NA                   | 存放an文件的路径。                                                |
200| --ap-path        | 否     | NA                   | 存放ap文件的路径。                                                |
201| --dir-list       | 否     | NA                   | 可指定目标文件夹列表,将其打入hap包内                               |
202| --compress-level | 否     | number               | 压缩等级,默认值1,可选等级1-9。在应用配置compressNativeLibs参数为true的情况下生效,数值越大压缩率越高、压缩速度越慢。  |
203| --pkg-context-path      | 否         | NA            | 可指定语境信息表文件路径,文件名必须为pkgContextInfo.json。 |
204
205### 1.8 versionNormalize模式指令
206
207如果一个应用由多个团队开发,当只有一个hap或hsp需要修改升级时,可以调用此命令,将多个hap、hsp的版本统一。本命令会修改所传入的hap、hsp的版本号和版本名称,并在指定目录生成修改后的同名hap、hsp,以及一个version_record.json文件,用于记录所有hap、hsp原有的版本号、版本名称。
208
209#### 1.8.1 示例
210```
211java -jar path\app_packing_tool.jar --mode versionNormalize --input-list 1.hap,2.hsp --version-code 1000001 --version-name 1.0.1 --out-path path\out\
212```
213
214#### 1.8.2 参数含义及规范
215
216| 指令             | 是否必选项 | 选项               | 描述                                                                |
217|----------------|-------|------------------|-------------------------------------------------------------------|
218| --mode         | 是     | versionNormalize | 命令类型。                                                             |
219| --input-list   | 是     | hap或hsp的路径       | 1.hap或hsp包文件路径,文件名必须以.hap或.hsp为后缀。如果是多个hap包需要”,“分隔。2.hap包或hsp包目录。 |
220| --version-code | 是     | 版本号              | 指定的版本号,hap、hsp的版本号会被修改为该版本。需要为整数,且不小于所有传入的hap、hsp的版本号。            |
221| --version-name | 是     | 版本名称             | 指定的版本名称,hap、hsp的版本名称会被修改为该版本名称。                                   |
222| --out-path     | 是     | NA               | 目标文件路径,需要为一个目录。                                                   |
223
224### 1.9 packageNormalize模式指令
225
226可以调用此命令,将集成态HSP的包名和版本号设置成应用侧的包名和版本号,并在指定目录生成修改后的同名HSP。
227
228#### 1.9.1 示例
229```
230java -jar path\app_packing_tool.jar --mode packageNormalize --hsp-list path\1.hsp,path\2.hsp --bundle-name com.example.myapplication --version-code 1000001 --out-path path\out\
231```
232
233#### 1.9.2 参数含义及规范
234
235| 指令             | 是否必选项 | 选项               | 描述                                                  |
236|----------------|-------|------------------|-----------------------------------------------------|
237| --mode         | 是     | packageNormalize | 命令类型。                                               |
238| --hsp-list     | 是     | HSP的路径           | 1.HSP包文件路径,文件名必须以.hsp为后缀。如果是多个HSP包需要”,“分隔。2.HSP包目录。 |
239| --bundle-name  | 是     | 包名               | 指定的包名,HSP的包名会被修改为指定的包名。                             |
240| --version-code | 是     | 版本号              | 指定的版本号,HSP的版本号会被修改为该版本号。需要为整数,且大于0。                 |
241| --out-path     | 是     | NA               | 目标文件路径,需要为一个目录。                                     |
242
243### 1.10 fastApp模式打包指令
244
245#### 1.10.1 示例
246
247```
248java -jar app_packing_tool.jar --mode fastApp --hap-path <option> --hsp-path <option> --out-path [option] --signature-path [option] --certificate-path [option] --pack-info-path [option] --force [option] [--pac-json-path <path>]
249```
250
251#### 1.10.2 参数含义及规范
252
253| 指令                 | 是否必选项 | 选项          | 描述                                                                                                    |
254|--------------------|-------|-------------|-------------------------------------------------------------------------------------------------------|
255| --mode             | 是     | fastApp     | 多个hap需满足hap的合法性校验。                                                                                    |
256| --hap-path         | 否     | NA          | hap包文件目录路径,目录内要包含一个完整的hap包的所有文件。允许传入多个路径,多个路径需要用英文“,”分隔。                                              |
257| --hsp-path         | 否     | NA          | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果时多个hsp包需要用“,”分隔。2.hsp包文件目录路径,目录内要包含一个完整的hsp包的所有文件。允许传入多个路径,多个路径需要用英文“,”分隔。 |
258| --pack-info-path   | 是     | NA          | 文件名必须为pack.info。                                                                                      |
259| --out-path         | 是     | NA          | 目标文件路径,文件名必须以.app为后缀。                                                                                 |
260| --signature-path   | 否     | NA          | 签名路径。                                                                                                 |
261| --certificate-path | 否     | NA          | 证书路径。                                                                                                 |
262| --pack-res-path    | 否     | NA          | 打包res的目标文件路径,文件名需要为pack.res。                                                                          |
263| --force            | 否     | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。                                                                    |
264| --encrypt-path     | 否     | NA          | 文件名必须为encrypt.json。                                                                    |
265| --pac-json-path    | 否     | NA          | 文件名必须为pac.json。                                              |
266
267#### 1.10.3 打包app时hap、hsp的合法性校验
268
269在打包生成App包时,需要保证被打包的每个HAP和HSP在pack.info/module.json文件中配置的bundleName、bundleType、versionCode、debug相同,moduleName唯一。所有HAP的minCompatibleVersionCode、targetAPIVersion、minAPIVersion保持一致,且分别不低于所有HSP对应字段的最大值。
270
271在API version 16之前,App打包时要求所有HAP/HSP的minCompatibleVersionCode、targetAPIVersion一致。
272在API version 20之前,App打包时要求所有HAP/HSP的minAPIVersion一致。
273## 2. 拆包指令说明
274
275### 2.1 hap包模式拆包指令
276
277#### 2.1.1 示例
278
279```
280java -jar app_unpacking_tool.jar --mode <option> --hap-path <options> --out-path [option] --force [option]
281```
282
283#### 2.1.2 参数含义及规范
284
285| 指令       | 是否必选项 | 选项          | 描述                                                         |
286| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
287| --mode     | 是         | hap           | 拆包类型。                                                   |
288| --hap-path | 是         | NA            | hap包路径。                                                  |
289| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
290| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
291| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
292
293### 2.2 har包模式拆包指令
294
295#### 2.2.1 示例
296
297```
298java -jar app_unpacking_tool.jar --mode <options> --har-path <option> --out-path [option] --force [option]
299```
300
301#### 2.2.2 参数含义及规范
302
303| 指令       | 是否必选项 | 选项          | 描述                                                        |
304| ---------- | ---------- |-------------| ----------------------------------------------------------- |
305| --mode     | 是         | har         | 拆包类型。                                                  |
306| --har-path | 是         | NA          | har包路径。                                                 |
307| --out-path | 是         | NA          | 拆包目标文件路径。                                          |
308| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
309
310### 2.3 app包模式拆包指令
311
312#### 2.3.1 示例
313
314```
315java -jar app_unpacking_tool.jar --mode <options> --app-path <option> --out-path [option] --force [option]
316```
317
318#### 2.3.2 参数含义及规范
319
320| 指令       | 是否必选项 | 选项          | 描述                                                        |
321| ---------- | ---------- |-------------| ----------------------------------------------------------- |
322| --mode     | 是         | app         | 拆包类型。                                                  |
323| --app-path | 是         | NA          | app包路径。                                                 |
324| --out-path | 是         | NA          | 拆包目标文件路径。                                          |
325| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
326
327### 2.4 从hap包中获取rpcid文件
328
329#### 2.4.1 示例
330
331```
332java -jar app_unpacking_tool.jar --mode hap --rpcid true --hap-path <option> --out-path <option> --force true
333```
334
335#### 2.4.2 参数含义及规范
336
337| 指令       | 是否必选项 | 选项          | 描述                                                         |
338| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
339| --mode     | 是         | hap           | 拆包类型                                                     |
340| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
341| --hap-path | 是         | NA            | hap包路径                                                    |
342| --out-path | 是         | NA            | 拆包rpcid目标文件路径                                        |
343| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
344
345### 2.5 hsp包模式拆包指令
346
347#### 2.5.1 示例
348
349```
350java -jar app_unpacking_tool.jar --mode <option> --hsp-path <options> --out-path [option] --force [option]
351```
352
353#### 2.5.2 参数含义及规范
354
355| 指令         | 是否必选项 | 选项          | 描述                                 |
356|------------| ---------- |-------------|------------------------------------|
357| --mode     | 是         | hsp         | 拆包类型。                              |
358| --hsp-path | 是         | NA          | hsp包路径。                            |
359| --out-path | 是         | NA          | 拆包目标文件路径。                          |
360| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
361
362### 2.6 appqf模式拆包指令
363
364#### 2.6.1 示例
365
366```
367java -jar app_unpacking_tool.jar --mode <option> --appqf-path <options> --out-path [option] --force [option]
368```
369
370#### 2.6.2 参数含义及规范
371
372| 指令           | 是否必选项 | 选项          | 描述                                 |
373|--------------| ---------- |-------------|------------------------------------|
374| --mode       | 是         | appqf       | 拆包类型。                              |
375| --appqf-path | 是         | NA          | appqf包路径。                          |
376| --out-path   | 是         | NA          | 拆包目标文件路径。                          |
377| --force      | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
378
379### 2.7 按照架构指数拆分hap/hsp380
381#### 2.7.1 示例(hap)
382
383```
384java -jar app_unpacking_tool.jar --mode <option> --hap-path <options> --out-path [option] --force [option] --libs true --cpu-abis [option]
385```
386
387#### 2.7.2 参数含义及规范(hap)
388
389| 指令       | 是否必选项 | 选项          | 描述                                                         |
390| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
391| --mode     | 是         | hap    | 拆包类型。                                                   |
392| --hap-path | 是         | NA            | hap包路径。                                             |
393| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
394| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
395| --libs     | 否         | true或者false | 是否按照包中libs目录内若干架构指数拆分,如果为true,表示按照架构进行拆分。 |
396| --cpu-abis | 否         | NA            | 指定具体要拆出libs的架构类型,支持多个,用逗号分隔。--libs配置为fasle时该参数不生效 |
397
398#### 2.7.3 示例(hsp)
399
400```
401java -jar app_unpacking_tool.jar --mode <option> --hsp-path <options> --out-path [option] --force [option] --libs true --cpu-abis [option]
402```
403
404#### 2.7.4 参数含义及规范(hsp)
405
406| 指令       | 是否必选项 | 选项          | 描述                                                         |
407| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
408| --mode     | 是         | hsp    | 拆包类型。                                                   |
409| --hsp-path | 是         | NA            | hsp包路径。                                             |
410| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
411| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
412| --libs     | 否         | true或者false | 是否按照包中libs目录内若干架构指数拆分,如果为true,表示按照架构进行拆分。 |
413| --cpu-abis | 否         | NA            | 指定具体要拆出libs的架构类型,支持多个,用逗号分隔。--libs配置为fasle时该参数不生效 |
414
415## 3. 包解析接口
416
417### 3.1 接口目录
418
419| 类名               | 接口原型                                                     | 类型     | 接口详细描述                                                            |
420| ------------------ | ------------------------------------------------------------ | -------- |-------------------------------------------------------------------|
421| UncompressEntrance | UncomperssResult parseApp(String appPath,String parseMode,String deviceType,String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app包路径,解析参数 返回值:UncomperssResult |
422| UncompressEntrance | UncomperssResult parseApp(InputStream input,String parseMode,String deviceType,String hapName,String outPath) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app文件流,解析参数 返回值:UncomperssResult |
423| UncompressEntrance | UncomperssResult parseHap(String hapPath)                    | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包路径,解析参数 返回值:UncomperssResult    |
424| UncompressEntrance | UncomperssResult parseHap(InputStream input)                 | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包文件流,解析参数 返回值:UncomperssResult   |
425
426## 4. 拆包工具信息字段
427
428### 4.1 UncomperssResult(Bundle信息)结构体信息
429
430| 字段            | 类型               | 描述                                     | 备注 |
431| ----------------| ------------------ |----------------------------------------| ---- |
432| result          | boolean            | 标识此次解析是否成功                             | NA   |
433| message         | String             | 解析失败时返回失败原因                            | NA   |
434| packInfos       | List\<PackInfo>    | bundle中pack.info文件的packages信息          | NA   |
435| profileInfos    | List\<profileInfo> | 应用的配置信息                                | NA   |
436| profileInfosStr | List\<String>      | 应用的配置信息 | NA   |
437| icon            | String             | 返回入口组件的icon路径,如果没有入口组件,则返回第一个组件的icon信息 | NA   |
438| label           | String             | 返回入口组件的label,如果没有入口组件,则返回第一个组件的label信息 | NA   |
439| packageSize     | long               | 表示app包的大小,单位字节                   |   NA  |
440
441### 4.2 PackInfo结构体信息
442
443| 字段                | 类型          | 描述                                    | 备注 |
444| ------------------- | ------------- | --------------------------------------- | ---- |
445| name                | String        | 包名                                    | NA   |
446| moduleName          | String        | Hap名称                                 | NA   |
447| moduleType          | String        | module的类型                            | NA   |
448| deviceType          | List\<String> | 表示当前hap包所支持的设备类型           | NA   |
449| deliveryWithInstall | boolean       | 标识当前hap是否在用户主动安装的时候安装 | NA   |
450
451### 4.3 ProfileInfo结构体信息
452
453| 字段         | 类型                           | 描述                                       | 备注                                                         |
454| ------------ | ------------------------------ | ------------------------------------------ | ------------------------------------------------------------ |
455| hapName      | String                         | 标识当前解析的hap包名称                    | NA                                                           |
456| appInfo      | AppInfo结构体(见下述AppInfo) | 标识APP信息的结构体(见下述AppInfo信息)   | NA                                                           |
457| deviceConfig | Map\<String,DeviceConfig>      | 标识设备信息                               | 存储类型为Map\<String,String>,存储设备类型名称及对应设备类型的信息,在stage模型中,这个字段存储在app结构体中 |
458| hapInfo      | HapInfo结构体(见下述HapInfo) | 标识hap包中module信息(见下述HapInfo信息) | NA                                                           |
459
460### 4.4 AppInfo结构体信息
461
462| 字段                             | 类型                       | 描述                                                                          | 备注          |
463|--------------------------------|--------------------------|-----------------------------------------------------------------------------|-------------|
464| bundleName                     | String                   | 标识app的包名称                                                                   | NA          |
465| vendor                         | String                   | 标识app的供应商信息                                                                 | NA          |
466| relatedBundleName              | String                   | 标识app相关bundle的包名                                                            | NA          |
467| versionName                    | String                   | 标识app中的versionName信息                                                        | NA          |
468| versionCode                    | String                   | 标识app中的versionCode信息                                                        | NA          |
469| targetApiVersion               | int                      | 标识应用运行需要的API目标版本                                                            | NA          |
470| compatibleApiVersion           | int                      | 标识应用兼容的API版本                                                                | NA          |
471| appName                        | String                   | 标识显示在桌面上的ability的label                                                      | NA          |
472| appNameEN                      | String                   | 标识显示在桌面上的ability的label                                                      | NA          |
473| releaseType                    | String                   | 标识应用运行需要的API目标版本的类型                                                         | NA          |
474| shellVersionCode               | String                   | 标识HarmonyOS中的API版本                                                          | NA          |
475| shellVersionName               | String                   | 标识HarmonyOS中的API版本名称                                                        | NA          |
476| multiFrameworkBundle           | String                   | 标识bundleName                                                                | NA          |
477| debug                          | boolean                  | 标识应用是否可调试                                                                   | NA          |
478| iconId                         | int                      | 标识应用的图标资源ID                                                                 | NA          |
479| labelId                        | int                      | 标识应用的label资源ID                                                              | NA          |
480| icon                           | String                   | 标识应用的图标路径                                                                   | NA          |
481| label                          | String                   | 标识应用的label                                                                  | NA          |
482| description                    | String                   | 标识应用的描述信息                                                                   | stage模型新增   |
483| minCompatibleVersionCode       | int                      | 标识应用能够兼容的最低版本号                                                              | NA          |
484| distributedNotificationEnabled | boolean                  | 标记该应用是否开启分布式通知                                                              | stage模型新增   |
485| bundleType                     | String                   | 标识bundle的类型,取值:<br/>- app:普通应用<br/>- atomicService:元服务 <br/>- shared:应用间共享库 | NA   |
486| compileSdkVersion              | String                   | 标识编译该应用时使用的sdk版本                                                            | stage模型新增   |
487| compileSdkType                 | String                   | 标识编译该应用时使用的sdk类别                                                            | stage模型新增   |
488| labels                         | HashMap\<String, String> | 标识多语言应用程序AppJson的标签。                                                        | NA          |
489| descriptions                   | HashMap\<String, String> | 标识多语言应用程序AppJson的说明。                                                        | NA          |
490
491### 4.5 HapInfo结构体信息
492
493| 字段                 | 类型                                          | 描述                               | 备注                                   |
494| ---------------------|-----------------------------------------------|------------------------------------| ---------------------------------------|
495| appModel             | AppModel枚举值                                | 标识应用的框架模型<br/>- FA:FA模型<br/>- STAGE:Stage模型 | NA |
496| packageStr           | String                                        | 标识应用的包信息                    | FA模型特有             |
497| name                 | String                                        | 标识当前module的名字                | NA                 |
498| description          | String                                        | 标识hap包的描述信息                 | FA模型特有                       |
499| supportedModes       | List\<String>                                 | 标识hap包的支持的模式               | NA                           |
500| abilities            | List\<AbilityInfo>                            | 标识hap包ability信息                | NA                             |
501| defPermissions       | List\<DefPermission>                          | 标识hap包DefPermission信息          | NA                             |
502| definePermissions    | List\<DefinePermission>                       | 标识hap包DefinePermission信息       | NA                             |
503| defPermissionsGroups | List\<DefPermissionsGroups>                   | 标识hap包DefPermissionsGroups 信息  | NA                             |
504| distro               | Distro结构体                                 | 标识hap包的distro信息               | NA                             |
505| reqCapabilities      | List\<String>                                 | 标识hap包reqCapabilities信息        | NA                           |
506| deviceType           | List\<String>                                 | 标识hap可以运行在哪类设备上         | 对应stage模型中的deviceTypes       |
507| metaData             | MetaData结构体(见下述metaData)              | 标识hap的自定义元信息                | NA           |
508| dependencies         | List\<DependencyItem>                         | 标识hap包DependencyItem信息         | NA                             |
509| isJs                 | boolean                                       | 标识该应用是否是js应用              | FA模型特有            |
510| reqPermissions       | list\<ReqPermission>                          | 标识应用申请的权限的集合             | 对应stage模型的requestPermissions |
511| commonEvents         | CommonEvent结构体(见下述CommentEvent)       | 标识静态事件                         | NA     |
512| shortcuts            | list\<Shortcut>                               | 标识应用的shortcuts信息              | NA                  |
513| distroFilter         | DistroFilter结构体                            | 标识应用市场按设备形态分发的信息     | NA               |
514| srcEntrance          | String                                        | 标识应用对应的入口代码路径           | stage模型新增          |
515| process              | String                                        | 标识hap的进程名                      | stage模型新增       |
516| mainElement          | String                  | 标识hap的入口ability名称或者extension名称 | stage模型新增,FA模型将mainAbility的值赋值给mainElement |
517| uiSyntax             | String                                        | 定义该ETS Component的语法类型         | stage模型新增       |
518| pages                | List\<String>                                 | 列举ETS Component中每个页面信息       | stage模型新增       |
519| extensionAbilityInfos| List\<ExtensionAbilityInfo>                   | 描述extensionAbility的配置信息       | stage模型新增        |
520| moduleAtomicService  | ModuleAtomicService结构体(见下述ModuleAtomicService) | 描述hap的元服务信息          | NA              |
521| formInfos            | List\<AbilityFormInfo>                        | 描述卡片的信息                       | NA              |
522| descriptions         | HashMap\<String, String>                      | 标识hap的说明信息                    | NA             |
523| compressedSize       | long                                          | 标识Hap包压缩后的大小,单位字节         | NA             |
524| originalSize         | long                                          | 标识Hap包的原始大小,单位字节         | NA             |
525
526### 4.6 AbilityInfo结构体信息
527
528| 字段                | 类型                       | 描述                             | 备注                        |
529|-------------------|--------------------------|--------------------------------| ------------------------------- |
530| name              | String                   | 标识当前ability的逻辑名                | NA                              |
531| description       | String                   | 标识ability的描述                   | NA                              |
532| descriptionRes    | String                   | 标识ability资源的描述                 | NA                              |
533| iconId            | int                      | 标识ability图标资源ID                | NA                              |
534| icon              | String                   | 标识ability图标                    | NA                              |
535| iconPath          | String                   | 标识ability图标路径                  | NA                              |
536| labelId           | int                      | 标识ability对用户显示的名称资源ID          | NA                              |
537| label             | String                   | 标识ability对用户显示的名称              | NA                              |
538| labelRes          | String                   | 标识ability对用户显示的名称资源            | NA                              |
539| type              | String                   | 标识ability类型                    | Stage模型下该值直接赋予page类型 |
540| formsEnabled      | boolean                  | 标识ability卡片是否使能                | NA                              |
541| formInfo          | FormInfo结构体              | 描述卡片的信息                        | NA                              |
542| uri               | String                   | 标识ability的uri信息                | FA模型支持                      |
543| launchType        | String                   | 标识ability中的launcherType信息      | NA                              |
544| orientation       | String                   | 标识ability中的orientation信息       | NA                              |
545| visible           | boolean                  | 标识ability中的visible信息           | NA                              |
546| grantPermission   | boolean                  | 标识ability中的grantPermission信息   | NA                              |
547| readPermission    | String                   | 标识ability中的readPermission信息    | NA                              |
548| writePermission   | String                   | 标识ability中的writePermission信息   | NA                              |
549| uriPermissionMode | String                   | 标识ability中的uriPermissionMode信息 | NA                              |
550| uriPermissionPath | String                   | 标识ability中的uriPermissionPath信息 | NA                              |
551| directLaunch      | boolean                  | 标识ability中的directLaunch信息      | NA                              |
552| mission           | String                   | 标识ability中的mission信息           | NA                              |
553| targetAbility     | String                   | 标识ability中的targetAbility信息     | NA                              |
554| multiUserShared   | boolean                  | 标识ability中的multiUserShared信息   | NA                              |
555| supportPipMode    | boolean                  | 标识ability中的supportPipMode信息    | NA                              |
556| srcLanguage       | String                   | 标识ability中的srcLanguage信息       | NA                              |
557| srcPath           | String                   | 标识ability中的srcPath信息           | NA                              |
558| srcEntrance       | String                   | 标识ability中的srcEntrance信息       | NA                              |
559| continuable       | boolean                  | 标识ability中的continuable信息       | NA                              |
560| metaData          | MetaData结构体(见下述MetaData) | 标识ability的自定义元信息               | NA                             |
561| configChanges     | List\<String>            | 标识ability中的configChanges信息     | NA                              |
562| formInfos         | List\<AbilityFormInfo>   | 标识ability中的forms信息             | NA                              |
563| permissions       | List\<String>            | 标识ability中的permissions信息       | NA                              |
564| skills            | List\<SkillInfo>         | 标识ability中的skills信息            | NA                              |
565| backgroundModes   | List\<String>            | 标识ability中的backgroundModes信息   | NA                              |
566| labels            | HashMap\<String, String> | 标识多语言下ability对用户显示的名称          | NA                             |
567| descriptions      | HashMap\<String, String> | 标识多语言下ability的描述               | NA                              |
568
569### 4.7 Distro结构体信息
570
571| 字段                | 类型    | 描述                                    | 备注                                                         |
572| ------------------- |---------| --------------------------------------- | ------------------------------------------------------------ |
573| moduleName          | String  | 标识当前module的名字                    | 对应Stage模型中module结构体中的moduleName字段                 |
574| moduleType          | String  | 标识当前hap的类型                       | 对应Stage模型中module结构体中的moduleType字段                 |
575| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装 | 对应Stage模型中module结构体中的deliveryWithInstall字段         |
576| installationFree    | int     | 标识当前hap是否支持免安装特性           | 对应Stage模型中module结构体中的installationFree字段,json文件中如果配置了该字段为true,返回1,配置为false,返回0,未配置返回2 |
577| virtualMachine      | String  | 标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心 | 对应Stage模型中module结构体中的virtualMachine字段 |
578
579### 4.8 MetaData结构体信息
580
581| 字段           | 类型                 | 描述                             | 备注                      |
582| -------------- |----------------------| -------------------------------- | ------------------------- |
583| parameters     | List\<MetaDataInfo>  | 标识Metadata的参数信息           | FA模型特有,stage模型废弃  |
584| results        | List\<MetaDataInfo>  | 标识Metadata的results信息        | FA模型特有,stage模型废弃  |
585| customizeDatas | List\<CustomizeData> | 标识Metadata的customizeDatas信息 | NA                         |
586
587### 4.9 MetaDataInfo结构体信息
588
589| 字段        | 类型   | 描述                              | 备注                      |
590| ----------- | ------ | --------------------------------- | ------------------------- |
591| name        | String | 标识MetaDataInfo的name信息        | FA模型特有,stage模型废弃  |
592| description | String | 标识MetaDataInfo的description信息 | FA模型特有,stage模型废弃  |
593| type        | String | 标识MetaDataInfo的type信息        | FA模型特有,stage模型废弃  |
594
595### 4.10 CustomizeData结构体信息
596
597| 字段  | 类型   | 描述                         | 备注                    |
598| ----- | ------ | ---------------------------- | ----------------------- |
599| name  | String | 标识CustomizeData的name信息  | 对应stage模型的metadata |
600| value | String | 标识CustomizeData的value信息 | 对应stage模型的metadata |
601| extra | String | 标识CustomizeData的extra信息 | 对应stage模型的metadata |
602
603### 4.11 ReqPermission结构体信息
604
605| 字段      | 类型                               | 描述                                                       | 备注 |
606| --------- | ---------------------------------- |------------------------------------------------------------| ---- |
607| name      | String                             | 标识ReqPermission的名称信息                                 | NA   |
608| reason    | String                             | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因 | NA   |
609| usedScene | UsedScene结构体(见下述UsedScene) | 描述权限使用的场景和时机。场景类型有:ability、调用时机(when),可配置多个ability | NA   |
610| reasons   | HashMap\<String, String>           | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因 | NA    |
611
612### 4.12 UsedScene结构体信息
613
614| 字段    | 类型          | 描述                                                         | 备注 |
615| ------- | ------------- | ------------------------------------------------------------ | ---- |
616| ability | List\<String> | 标识需要使用到该权限的元能力(ability),该标签值为数组形式   | NA   |
617| when    | String        | 标识使用该权限的时机,值为inuse/always,表示为仅允许前台使用和前后台都可使用 | NA   |
618
619### 4.13 Shortcut结构体信息
620
621| 字段       | 类型                   | 描述                                                         | 备注 |
622| ---------- | ---------------------- | :----------------------------------------------------------- | ---- |
623| shortcutId | String                 | 标识ShortCut的Id                                             | NA   |
624| label      | String                 | 标识ShortCut的标签信息                                       | NA   |
625| icon       | String                 | 标识ShortCut的图标信息                                       | NA   |
626| intents    | List\<IntentInfo>      | 标识快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass,targetBundle | NA   |
627| labels     | HashMap\<String, String> | 标识多语言下ShortCut对用户显示的名称                        | NA   |
628
629### 4.14 IntentInfo结构体信息
630
631| 字段         | 类型   | 描述             | 备注 |
632| ------------ | ------ | ---------------- | ---- |
633| targetClass  | String | 快捷方式目标类型 | NA   |
634| targetBundle | String | 快捷方式目标包名 | NA   |
635
636### 4.15 DistroFilter结构体信息
637
638| 字段          | 类型                | 描述                                  | 备注 |
639| ------------- | ------------------- | ------------------------------------- | ---- |
640| apiVersion    | ApiVersion结构体    | 标识DistroFilter中的apiVersion信息    | NA   |
641| screenShape   | ScreenShape结构体   | 标识DistroFilter中的screenShape信息   | NA   |
642| screenDensity | ScreenDensity结构体 | 标识DistroFilter中的screenDensity信息 | NA   |
643| screenWindow  | ScreenWindow结构体  | 标识DistroFilter中的screenWindow信息  | NA   |
644| countryCode   | CountryCode结构体   | 标识DistroFilter中的countryCode信息   | NA   |
645
646### 4.16 ApiVersion结构体信息
647
648| 字段   | 类型          | 描述                     | 备注 |
649| ------ | ------------- | ------------------------ | ---- |
650| policy | String        | 标识结构体中的policy信息 | NA   |
651| value  | List\<String> | 标识结构体中的value信息  | NA   |
652
653### 4.17 ScreenShape结构体信息
654
655| 字段   | 类型          | 描述                     | 备注 |
656| ------ | ------------- | ------------------------ | ---- |
657| policy | String        | 标识结构体中的policy信息 | NA   |
658| value  | List\<String> | 标识结构体中的value信息  | NA   |
659
660### 4.18 ScreenDensity结构体信息
661
662| 字段   | 类型          | 描述                     | 备注 |
663| ------ | ------------- | ------------------------ | ---- |
664| policy | String        | 标识结构体中的policy信息 | NA   |
665| value  | List\<String> | 标识结构体中的value信息  | NA   |
666
667### 4.19 ScreenWindow结构体信息
668
669| 字段   | 类型          | 描述                     | 备注 |
670| ------ | ------------- | ------------------------ | ---- |
671| policy | String        | 标识结构体中的policy信息 | NA   |
672| value  | List\<String> | 标识结构体中的value信息  | NA   |
673
674### 4.20 CountryCode结构体信息
675
676| 字段   | 类型          | 描述                     | 备注 |
677| ------ | ------------- | ------------------------ | ---- |
678| policy | String        | 标识结构体中的policy信息 | NA   |
679| value  | List\<String> | 标识结构体中的value信息  | NA   |
680
681### 4.21 ExtensionAbilityInfo结构体信息
682
683| 字段            | 类型                     | 描述                                                  | 备注                                |
684| --------------- | ------------------------ | ----------------------------------------------------- | ----------------------------------- |
685| name            | String                   | 标识当前extensionAbility的逻辑名                      | stage模型支持                      |
686| srcEntrance     | String                   | 标识extensionAbility所对应的js代码路径                | stage模型支持                      |
687| icon            | String                   | 标签标识extensionAbility图标                          | stage模型支持                      |
688| label           | String                   | 标识extensionAbility对用户显示的名称                  | stage模型支持                      |
689| description     | String                   | 标识extensionAbility的描述                            | stage模型支持                      |
690| type            | String                   | 标识extensionAbility的类型:form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup | stage模型支持,目前仅解析了form、staticSubscriber的信息、其他类型(如:workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup)暂未解析        |
691| permissions     | List\<String>            | 标识被其它应用的ability调用时需要申请的权限的集合       | stage模型支持                      |
692| readPermission  | String                   | 标识读取ability的数据所需的权限                         | stage模型支持                    |
693| writePermission | String                   | 标识向ability写数据所需的权限                           | stage模型支持                   |
694| visible         | boolean                  | 标识extensionAbility是否可以被其它应用调用              | stage模型支持                   |
695| skills          | List\<SkillInfo>         | 标识extensionAbility能够接收的意图的特征集              | stage模型支持                    |
696| metadataInfos   | List\<ModuleMetadataInfo>| 标识extensionAbility能够接收的元数据信息                | stage模型支持                    |
697| metadata        | MetaData结构体           | 标识extensionAbility的元信息                            | 将metadata中的信息赋值到CustomizeData中 |
698| uri             | String                   | 标识extensionAbility提供的数据uri                       | stage模型支持                           |
699| descriptions    | HashMap\<String, String> | 标识多语言下extensionAbility的描述                      | NA                              |
700| labels          | HashMap\<String, String> | 标识多语言下extensionAbility对用户显示的名称            | NA                             |
701
702### 4.22 SkillInfo结构体信息
703
704| 字段     | 类型                | 描述                   | 备注 |
705| -------- | ------------------- |----------------------| ---- |
706| actions  | List\<String>       | 标识能够接收的意图的action值的集合 | NA   |
707| entities | List\<String>       | 标识能够接收的意图的元能力的类别集合   | NA   |
708| domainVerify | boolean       | ability是否支持域校验   | NA   |
709
710### 4.23 UriInfo结构体信息
711
712| 字段          | 类型   | 描述                     | 备注 |
713| ------------- | ------ |------------------------| ---- |
714| schema        | String | 标识ModuleUriInfo的范式信息   | NA   |
715| host          | String | 标识ModuleUriInfo的宿主信息   | NA   |
716| port          | String | 标识ModuleUriInfo的端口信息   | NA   |
717| pathStartWith | String | 标识ModuleUriInfo的路径前缀   | NA   |
718| pathRegex     | String | 标识ModuleUriInfo的路径正则信息 | NA   |
719| path          | String | 标识ModuleUriInfo的路径信息   | NA   |
720| type          | String | 标识ModuleUriInfo的种类     | NA   |
721
722### 4.24 AbilityFormInfo结构体信息
723
724| 字段                | 类型                     | 描述                                                         | 备注        |
725| ------------------- | -------------------------| ------------------------------------------------------------ |-----------|
726| name                | String                   | 标识forms的名称                                              | NA        |
727| type                | String                   | 标签标识卡片的类型                                           | NA        |
728| updateEnabled       | boolean                  | 标识该卡片是否支持定时刷新                                   | NA        |
729| scheduledUpdateTime | String                   | 标签标识卡片顶点刷新的时间,采用24小时计数,精确到分钟       | NA        |
730| updateDuration      | int                      | 标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值   | NA        |
731| supportDimensions   | List\<String>            | 标识卡片外观规格,取值为”1 * 2“,”2 * 2“,”2 * 4“,”4 * 4“   | NA        |
732| defaultDimension    | String                   | 标识卡片默认外观规格,取值必须在supportDimensions配置的列表中 | NA        |
733| MetaData            | MetaData                 | 标识卡片的自定义信息                                         | NA        |
734| description         | String                   | 标识forms的描述                                              | stage模型新增 |
735| src                 | String                   | 标签JS卡片对应的UI代码                                       | NA        |
736| windowInfo          | ModuleWindowInfo结构体   | 标签能力窗体的窗口。                                       | NA        |
737| isDefault           | boolean                  | 标识该卡片是否为默认卡片,每个hap有且只能有一个默认卡片      | NA        |
738| colorMode           | String                   | 标识卡片的色调,取值为auto、dark、light其中之一              | NA        |
739| formConfigAbility   | String                   | 标识卡片调整的Ability名称                                    | NA        |
740| formVisibleNotify   | String                   | 标识卡片是否被允许使用卡片可见性通知                         | NA        |
741| providerAbility     | String                   | 卡片的提供方所在的Ability或者extension名称,1.FA模型:如果卡片配置在service类型的ability中,providerAbility配置为mainAbility 2.FA模型:如果卡片配置在Page类型的Ability中,providerAbility配置为当前Ability 3.FA模型:如果没有配置mainAbility,providerAbility配置为当前hap包中的优先使用system.home,否则第一个page的Ability 4.stage模型中(follow上述规则),providerAbility配置为mainElement | NA |
742| descriptions        | HashMap\<String, String> | 标识多语言下ability的描述                                     | NA     |
743
744
745
746### 4.25 CommonEvent结构体信息
747
748| 字段       | 类型          | 描述                                   | 备注                                             |
749| ---------- | ------------- | -------------------------------------- | ------------------------------------------------ |
750| name       | String        | 当前静态公共事件对应的类名             | Stage模型从staticSubscriber类型的Extension中获取 |
751| permission | String        | 标识实现该静态公共事件需要申请的权限   | Stage模型从staticSubscriber类型的Extension中获取 |
752| data       | List\<String> | 当前静态公共时间需要携带的额外数据数组 | Stage模型从staticSubscriber类型的Extension中获取 |
753| type       | List\<String> | 配置当前静态公共时间的类别数组         | Stage模型从staticSubscriber类型的Extension中获取 |
754| events     | List\<String> | 标识能够接收的意图的event值的集合      | Stage模型从staticSubscriber类型的Extension中获取 |
755
756### 4.26 DependencyItem结构体信息
757
758| 字段           | 类型   | 描述           | 备注 |
759|--------------| ------ |--------------| ---- |
760| bundleName   | String | 共享包的bundleName | NA   |
761| moduleName   | String | 共享包的moduleName | NA   |
762| versionCode  | String | 共享包的版本号      | NA   |
763
764### 4.27 ModuleAtomicService结构体信息
765
766| 字段         | 类型                   | 描述           | 备注 |
767|--------------|------------------------|----------------| ---- |
768| preloadItems | list\<PreloadItem>     | 预加载对象     | NA   |
769
770### 4.28 PreloadItem结构体信息
771
772| 字段         | 类型   | 描述           | 备注 |
773|--------------|--------|----------------| ---- |
774| moduleName   | String | 预加载的模块名 | NA   |
775
776### 4.29 DeviceConfig结构体信息
777
778| 字段                           | 类型    | 描述                                     | 备注 |
779|--------------------------------|-------- |------------------------------------------| ---- |
780| targetReqSdk                   | String  | 标识应用程序DeviceConfig的目标请求Sdk版本  | NA   |
781| compatibleReqSdk               | String  | 标识应用程序DeviceConfig的兼容请求Sdk版本  | NA   |
782| jointUserid                    | String  | 标识应用程序DeviceConfig的jointUserid      | NA   |
783| process                        | String  | 标识应用程序DeviceConfig的进程             | NA   |
784| arkFlag                        | String  | 标识应用程序DeviceConfig的arkFlag          | NA   |
785| targetArkVersion               | String  | 标识应用程序DeviceConfig的targetArkVersion | NA   |
786| compatibleArkVersion           | String  | 标识应用程序DeviceConfig的兼容ArkVersion   | NA   |
787| directLaunch                   | boolean | 标识应用程序DeviceConfig的直接启动         | NA   |
788| distributedNotificationEnabled | boolean | 标识应用程序AppJson的distributedNotificationEnabled | NA   |
789
790### 4.30 DefPermission结构体信息
791
792| 字段           | 类型                     | 描述                                      | 备注 |
793|----------------|--------------------------|-------------------------------------------| ---- |
794| name           | String                   | 标识指示DefPermission的名称               | NA   |
795| grantMode      | String                   | 标识DefPermission的grantMode              | NA   |
796| group          | String                   | 标识DefPermission的组                     | NA   |
797| label          | String                   | 标识DefPermission的标签                   | NA   |
798| description    | String                   | 标识DefPermission的描述                   | NA   |
799| availableScope | List\<String>            | 标识DefPermission的可用范围               | NA   |
800| labels         | HashMap\<String, String> | 标识多语言应用程序DefPermission的标签     | NA   |
801| descriptions   | HashMap\<String, String> | 标识多语言应用程序DefPermission的说明     | NA   |
802
803### 4.31 DefinePermission结构体信息
804
805| 字段                   | 类型                     | 描述                                               | 备注 |
806|------------------------|--------------------------|----------------------------------------------------| ---- |
807| name                   | String                   | 标识DefPermission的名称                         | NA   |
808| grantMode              | String                   | 标识DefPermission的grantMode                        | NA   |
809| availableLevel         | String                   | 标识DefPermission的组                               | NA   |
810| provisionEnable        | boolean                  | 标识模块定义权限的提供启用                           | NA   |
811| distributedSceneEnable | boolean                  | 标识ModuleDefinePermissions的distributedSceneEnable | NA   |
812| label                  | String                   | 标识DefPermission的标签                              | NA   |
813| description            | String                   | 标识DefPermission的描述                              | NA   |
814| descriptions           | HashMap\<String, String> | 标识多语言应用程序DefPermission的说明                | NA   |
815| labels                 | HashMap\<String, String> | 标识多语言应用程序DefPermission的标签                | NA   |
816
817### 4.32 DefPermissionsGroups结构体信息
818
819| 字段        | 类型    | 描述                         | 备注 |
820|-------------|---------|------------------------------| ---- |
821| name        | String  | 标识DefPermissionGroup的名称 | NA   |
822| order       | String  | 标识DefPermissionGrou的顺序  | NA   |
823| icon        | String  | 标识DefPermissionGroup的图标 | NA   |
824| label       | String  | 标识DefPermissionGroup的标签 | NA   |
825| description | String  | 标识DefPermissionGroup的描述 | NA   |
826| request     | boolean | 标识DefPermissionGroup的请求 | NA   |
827
828### 4.33 FormInfo结构体信息
829
830| 字段          | 类型          | 描述                     | 备注 |
831|---------------|---------------|--------------------------| ---- |
832| formEntity    | List\<String> | 标识formInfo的formEntity | NA   |
833| minHeight     | String        | 标识formInfo的最小高度   | NA   |
834| defaultHeight | String        | 标识formInfo的默认高度   | NA   |
835| minWidth      | String        | 标识formInfo的最小宽度   | NA   |
836| defaultWidth  | String        | 标识formInfo的默认宽度   | NA   |
837
838### 4.34 ModuleMetadataInfo结构体信息
839
840| 字段     | 类型    | 描述                         | 备注 |
841|----------|---------|------------------------------| ---- |
842| name     | String  | 标识ModuleMetadataInfo的名称 | NA   |
843| value    | String  | 标识ModuleMetadataInfo的值   | NA   |
844| resource | String  | 标识ModuleMetadataInfo的资源 | NA   |
845
846### 4.35 ModuleWindowInfo结构体信息
847
848| 字段            | 类型    | 描述                                | 备注 |
849|-----------------|---------|-------------------------------------| ---- |
850| designWidth     | int     | 标识模块已用场景的设计宽度           | NA   |
851| autoDesignWidth | boolean | 标识ModuleUsedScene的autoDesignWidth | NA   |