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