• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 打包拆包工具使用说明
2
3## 简介
4
5packing_tool子系统用于生成打包工具和拆包工具,其中打包工具用于hap,app,hqf,appqf,har包的生成,拆包工具用于对hap,app,hqf,appqf,har包的拆包及对hap,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 path\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| --dir-list       | 否         | 可指定目标文件夹列表,将其打入hap包内 | NA                                                           | NA              |
51
52### 1.2 har包模式打包指令
53
54#### 1.2.1 示例
55
56```
57java -jar app_packing_tool.jar --mode har --json-path [option] --jar-path [option>]--lib-path [option] --resources-path [option] --out-path [option] --force [option]
58```
59
60#### 1.2.2 参数含义及规范
61
62| 指令        | 是否必选项 | 选项          | 描述                                                         |
63| ----------- | ---------- | ------------- | ------------------------------------------------------------ |
64| --mode      | 是         | har           | 打包类型。                                                   |
65| --json-path | 是         | NA            | .json文件路径,文件名必须为config.json。                     |
66| --jar-path  | 否         | NA            | 1.jar文件路径,文件名必须以.jar为后缀。如果是多个jar需要用“,”分隔。2.jar文件路径也可以为目录。 |
67| --lib-path  | 否         | NA            | lib库文件路径。                                              |
68| --res-path  | 否         | NA            | resources资源包路径。                                        |
69| --out-path  | 是         | NA            | 目标文件路径,文件名必须以.hap为后缀。                       |
70| --force     | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
71
72### 1.3 app包模式打包指令
73
74#### 1.3.1 示例
75
76```
77java -jar app_packing_tool.jar --mode app --hap-path <option> --out-path [option] --signature-path [option] --certificate-path [option] --pack-info [option]--force [option]
78```
79
80#### 1.3.2 参数含义及规范
81
82| 指令               | 是否必选项 | 选项          | 描述                                                         |
83| ------------------ | ---------- | ------------- | ------------------------------------------------------------ |
84| --mode             | 是         | app           | 多个hap需满足hap的合法性校验。                               |
85| --hap-path         | 是         | NA            | 1.hap包文件路径,文件名必须以.hap为后缀。如果时多个hap包需要用“,”分隔。2.hap包文件路径也可以是目录。 |
86| --pack-info-path   | 是         | NA            | 文件名必须为pack.info                                        |
87| --out-path         | 否         | NA            | 目标文件路径,文件名必须以.app为后缀。                       |
88| --signature-path   | 否         | NA            | 签名路径。                                                   |
89| --certificate-path | 否         | NA            | 证书路径。                                                   |
90| --force            | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
91
92#### 1.3.3 打包app时hap的合法性校验
93
94在对工程内的hap包打包生成app包时,需要保证被打包的每个hap在json文件中配置的bundleName,versionCode和versionName,minCompatibleVersionCode相同,minAPIVersion,targetAPIVersion,apiReleaseType相同,moduleName唯一,对于fa模型,还需要保证json文件中配置的package唯一。
95
96### 1.4 多工程打包
97
98#### 1.4.1 示例
99
100```
101java -jar app_packing_tool.jar --mode multiApp --hap-list 1.hap,2.hap --app-list 1.app,2.app --out-path final.app
102```
103
104#### 1.4.2 参数含义及规范
105
106| 指令       | 是否必选项 | 选项          | 描述                                                         |
107| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
108| --mode     | 是         | multiApp      | 打包类型,在将多个hap打入同一个app时,需保证每个hap满足合法性校验规则。 |
109| --hap-list | 否         | hap的路径     | 1.hap包文件路径,文件名必须以.hap为后缀。如果是多个hap包需要”,“分隔。2.hap文件路径也可以是目录。 |
110| --app-list | 否         | app的路径     | 1.app文件路径,文件名必须以.app为后缀。如果是多个hap包需要用”,“分隔。2.app文件路径也可以是目录。3.--hap-list命令与--app-list不可以都不传。 |
111| --force    | 否         | 默认值为false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
112
113#### 1.4.3 多工程打包hap合法性校验
114
115需要保证被打包的每个hap在json文件中配置的bundleName,versionCode和versionName,minCompatibleVersionCode相同,minAPIVersion,targetAPIVersion,apiReleaseType相同,moduleName唯一,同一设备entry唯一,对于fa模型,还需要保证json文件中配置的package唯一。
116
117## 2. 拆包指令说明
118
119### 2.1 hap包模式拆包指令
120
121#### 2.1.1 示例
122
123```
124java -jar app_unpacking_tool.jar --mode <option> --hap-path <options> --out-path [option] --force [option]
125```
126
127#### 2.1.2 参数含义及规范
128
129| 指令       | 是否必选项 | 选项          | 描述                                                         |
130| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
131| --mode     | 是         | hap           | 拆包类型。                                                   |
132| --hap-path | 是         | NA            | hap包路径。                                                  |
133| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
134| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
135| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
136
137### 2.2 har包模式拆包指令
138
139#### 2.2.1 示例
140
141```
142java -jar app_unpacking_tool.jar --mode <options> --har-path <option> --out-path [option] --force [option]
143```
144
145#### 2.2.2 参数含义及规范
146
147| 指令       | 是否必选项 | 选项          | 描述                                                        |
148| ---------- | ---------- |-------------| ----------------------------------------------------------- |
149| --mode     | 是         | har         | 拆包类型。                                                  |
150| --har-path | 是         | NA          | har包路径。                                                 |
151| --out-path | 是         | NA          | 拆包目标文件路径。                                          |
152| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
153
154### 2.3 app包模式拆包指令
155
156#### 2.3.1 示例
157
158```
159java -jar app_unpacking_tool.jar --mode <options> --app-path <option> --out-path [option] --force [option]
160```
161
162#### 2.3.2 参数含义及规范
163
164| 指令       | 是否必选项 | 选项          | 描述                                                        |
165| ---------- | ---------- |-------------| ----------------------------------------------------------- |
166| --mode     | 是         | app         | 拆包类型。                                                  |
167| --app-path | 是         | NA          | app包路径。                                                 |
168| --out-path | 是         | NA          | 拆包目标文件路径。                                          |
169| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
170
171### 2.4 从hap包中获取rpcid文件
172
173#### 2.4.1 示例
174
175```
176java -jar app_unpacking_tool.jar --mode hap --rpcid true --hap-path <option> --out-path <option> --force true
177```
178
179#### 2.4.2 参数含义及规范
180
181| 指令       | 是否必选项 | 选项          | 描述                                                         |
182| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
183| --mode     | 是         | hap           | 拆包类型                                                     |
184| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
185| --hap-path | 是         | NA            | hap包路径                                                    |
186| --out-path | 是         | NA            | 拆包rpcid目标文件路径                                        |
187| --force    | 否         | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。  |
188
189## 3. 包解析接口
190
191### 3.1 接口目录
192
193| 类名               | 接口原型                                                     | 类型     | 接口详细描述                                                 |
194| ------------------ | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
195| UncompressEntrance | UncomperssResult parseApp(String appPath,String parseMode,String deviceType,String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app包路径,解析参数 返回值:UncomperssResult |
196| UncompressEntrance | UncomperssResult parseApp(InputStream input,String parseMode,String deviceType,String hapName,String outPath) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app文件流,解析参数 返回值:UncomperssResult |
197| UncompressEntrance | UncomperssResult parseHap(String hapPath)                    | Java接口 | 接口功能:根据参数解析app包的config.json信息 输入参数:hap包路径,解析参数 返回值:UncomperssResult |
198| UncompressEntrance | UncomperssResult parseHap(InputStream input)                 | Java接口 | 接口功能:根据参数解析app包的config.json信息 输入参数:hap包文件流,解析参数 返回值:UncomperssResult |
199
200## 4. 拆包工具信息字段
201
202### 4.1 UncomperssResult(Bundle信息)结构体信息
203
204| 字段         | 类型               | 描述                                                         | 备注 |
205| ------------ | ------------------ | ------------------------------------------------------------ | ---- |
206| result       | boolean            | 标识此次解析是否成功                                         | NA   |
207| message      | String             | 标识此次解析失败的原因或Success                              | NA   |
208| packInfos    | List\<PackInfo>    | bundle中pack.info文件的packages信息                          | NA   |
209| profileInfos | List\<profileInfo> | 一个ProfileInfo对应一个module的信息                          | NA   |
210| icon         | String             | 返回入口组件的icon路径,如果没有入口组件,则返回第一个组件的icon信息 | NA   |
211| label        | String             | 返回入口组件的label,如果没有入口组件,则返回第一个组件的label信息 | NA   |
212
213### 4.2 PackInfo结构体信息
214
215| 字段                | 类型          | 描述                                    | 备注 |
216| ------------------- | ------------- | --------------------------------------- | ---- |
217| name                | String        | 包名                                    | NA   |
218| moduleName          | String        | Hap名称                                 | NA   |
219| moduleType          | String        | module的类型                            | NA   |
220| deviceType          | List\<String> | 表示当前hap包所支持的设备类型           | NA   |
221| deliveryWithInstall | boolean       | 标识当前hap是否在用户主动安装的时候安装 | NA   |
222
223### 4.3 ProfileInfo结构体信息
224
225| 字段         | 类型                           | 描述                                       | 备注                                                         |
226| ------------ | ------------------------------ | ------------------------------------------ | ------------------------------------------------------------ |
227| hapName      | String                         | 标识当前解析的hap包名称                    | NA                                                           |
228| appInfo      | AppInfo结构体(见下述AppInfo) | 标识APP信息的结构体(见下述AppInfo信息)   | NA                                                           |
229| deviceConfig | Map\<String,DeviceConfig>      | 标识设备信息                               | 存储类型为Map\<String,String>,存储设备类型名称及对应设备类型的信息,在stage模型中,这个字段存储在app结构体中 |
230| hapInfo      | HapInfo结构体(见下述HapInfo) | 标识hap包中module信息(见下述HapInfo信息) | NA                                                           |
231
232### 4.4 AppInfo结构体信息
233
234| 字段                           | 类型    | 描述                                   | 备注          |
235| ------------------------------ | ------- | -------------------------------------- | ------------- |
236| bundleName                     | String  | 标识app的包名称                        | NA            |
237| bundleType                     | String  | 标识bundle的类型,取值:<br/>- app:普通应用<br/>- atomicService:原子化服务 | NA        |
238| vendor                         | String  | 标识app的供应商信息                    | NA            |
239| releatedBundleName             | String  | 标识app相关bundle的包名                | NA            |
240| versionName                    | String  | 标识app中的versionName信息             | NA            |
241| versionCode                    | String  | 标识app中的versionCode信息             | NA            |
242| targetApiVersion               | int     | 标识应用运行需要的API目标版本          | NA            |
243| compatibleApiVersion           | int     | 标识应用兼容的API版本                  | NA            |
244| appName                        | String  | 标识显示在桌面上的ability的label       | NA            |
245| releaseType                    | String  | 标识应用运行需要的API目标版本的类型    | NA            |
246| shellVersionCode               | String  | 标识HarmonyOS中的API版本               | NA            |
247| shellVersionName               | String  | 标识HarmonyOS中的API版本名称           | NA            |
248| multiFrameworkBundle           | String  | 标识双框架下app的bundleName            | NA            |
249| debug                          | boolean | 标识应用是否可调试                     | NA            |
250| icon                           | String  | 标识应用的图标路径                     | NA            |
251| label                          | String  | 标识应用的label                        | NA            |
252| description                    | String  | 标识App的描述信息                      | stage模型新增 |
253| minCompatibleVersionCode       | int     | 标识该app pack能够兼容的最低历史版本号 | NA            |
254| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知           | stage模型新增 |
255| jointUserid                    | String  | 标签标识一个用的共享userid             | FA模型特有    |
256| process                        | String  | 标识应用的进程名                       | FA模型特有    |
257| directLaunch                   | String  | 标识应用是否支持未解锁直接启动模式     | NA            |
258| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知           | stage模型特有 |
259
260### 4.5 HapInfo结构体信息
261
262| 字段                 | 类型                                | 描述                                          | 备注                                                    |
263|--------------------|-----------------------------------|---------------------------------------------| ------------------------------------------------------- |
264| appModel           | AppModel枚举值                       | 标识应用的框架模型<br/>- FA:FA模型<br/>- STAGE:Stage模型 | NA                               |
265| packageStr         | String                            | 标识hap包的包信息                                  | FA模型特有                                              |
266| name               | String                            | 标识当前module的名字                               | NA                                                      |
267| description        | String                            | 标识hap包的描述信息                                 | FA模型特有                                              |
268| supporteModes      | List\<String>                     | 标识hap包的支持的模式                                | NA                                                      |
269| abilities          | AbilityInfo的数组                    | 标识hap包ability信息                             | NA                                                      |
270| distro             | Distro结构体                         | 标识hap包的distro信息                             | NA                                                      |
271| deviceType         | List\<String>                     | 标识hap可以运行在哪类设备上                             | 对应stage模型中的deviceTypes                            |
272| metadata           | MetaData结构体(见下述metaData)          | 标识Hap的自定义元信息                                | NA                                                      |
273| isJs               | boolean                           | 标识该应用是否是js应用                                | FA模型特有                                              |
274| reqPermissions     | ReqPermission结构体数组(见下述ReqPermission) | 标识应用申请的权限的集合                                | 对应stage模型的requestPermissions                       |
275| commonEvents       | CommonEvent结构体(见下述CommentEvent)   | 标识静态事件                                      | NA                                                      |
276| shortcuts          | Shortcut结构体数组(见下述Shortcut)        | 标识应用的shortcuts信息                            | NA                                                      |
277| distrofilter       | Distrofilter结构体                   | 标识应用市场按设备形态分发的信息                            | NA                                                      |
278| srcEntrance        | String                            | 标识hap所对应的入口js代码路径                           | stage模型新增                                           |
279| process            | String                            | 标识应用的进程名                                    | stage模型新增                                           |
280| mainElement        | String                            | 标识hap的入口ability名称或者extension名称              | stage模型新增,FA模型将mainAbility的值赋值给mainElement |
281| pages              | List\<String>                     | 列举JS Component中每个页面信息                       | stage模型新增                                           |
282| extensionAbilities | List\<ExtensionAbilityInfo>       | 描述extensionAbility的配置信息                     | stage模型新增                                           |
283| abilityFormInfos   | List\<AbilityFormInfo>            | 描述卡片的信息                                     | NA                                                      |
284| dependencies       | List\<DependencyItem>             | 描述模块的依赖共享库列表                                | NA                                         |
285
286### 4.6 AbilityInfo结构体信息
287
288| 字段                | 类型                             | 描述                                              | 备注                            |
289|-------------------| -------------------------------- | ------------------------------------------------- | ------------------------------- |
290| name              | String                           | 标识当前ability的逻辑名                           | NA                              |
291| description       | String                           | 标识ability的描述                                 | NA                              |
292| icon              | String                           | 标识ability图标                                   | NA                              |
293| label             | String                           | 标识ability对用户显示的名称                       | NA                              |
294| type              | String                           | 标识ability类型                                   | Stage模型下该值直接赋予page类型 |
295| uri               | String                           | 标识ability的uri信息                              | FA模型支持                      |
296| launchType        | String                           | 标识ability中的launcherType信息                   | NA                              |
297| metadata          | Metadata结构体(见下述MetaData) | 描述ability的配置信息                             | NA                              |
298| orientation       | String                           | 描述ability的显示模式                             | NA                              |
299| permissions       | List\<String>                    | 标识被其它应用的ability调用时需要申请的权限的集合 | NA                              |
300| skills            | SkillInfo结构体数组              | 标识ability能够接收的意图的特征集                 | NA                              |
301| backgroundModes   | List\<String>                    | 标识ability长时任务集合                           | NA                              |
302| visible           | boolean                          | 标识ability是否可以被其它应用调用                 | NA                              |
303| grantPermission   | boolean                          | 标识ability的grantPermission                      | FA模型支持,stage模型废弃       |
304| readPermission    | String                           | 标识ability的读取权限                             | FA模型支持,stage模型废弃       |
305| writepermission   | String                           | 标识ability的写权限                               | FA模型支持,stage模型废弃       |
306| uriPermissionMode | String                           | 标识ability的uriPermissionMode                    | FA模型支持,stage模型废弃       |
307| uriPermissionPath | String                           | 标识ability的uriPermissionPath                    | FA模型支持,stage模型废弃       |
308| configChages      | List\<String>                    | 标识ability的configChanges                        | FA模型支持,stage模型废弃       |
309| directLaunch      | boolean                          | 标识ability的directLaunch                         | FA模型支持,stage模型废弃       |
310| mission           | String                           | 标识ability的mission                              | FA模型支持,stage模型废弃       |
311| targetAbility     | String                           | 标识ability的targetAbility                        | FA模型支持,stage模型废弃       |
312| mulitiUserShared  | boolean                          | 标识ability的mulitiUserShared                     | FA模型支持,stage模型废弃       |
313| supportPipMode    | boolean                          | 标识ability的supportPipMode                       | FA模型支持,stage模型废弃       |
314| srcEntrance       | String                           | 标识ability所对应的js代码路径                     | stage模型支持                   |
315| continuable       | boolean                          | 标识ability是否可以迁移                           | NA                              |
316
317### 4.7 Distro结构体信息
318
319| 字段                | 类型    | 描述                                                         | 备注                                                         |
320| ------------------- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
321| moduleName          | String  | 标识当前module的名字                                         | 对应Stage模型中module结构体中的moduleName字段                |
322| moduleType          | String  | 标识当前hap的类型                                            | 对应Stage模型中module结构体中的moduleType字段                |
323| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装                      | 对应Stage模型中module结构体中的deliveryWithInstall字段       |
324| installationFree    | 整数值  | 标识当前hap是否支持免安装特性                                | 对应Stage模型中module结构体中的installationFree字段,json文件中如果配置了该字段为true,返回1,配置为false,返回0,未配置返回2 |
325| virtualMachine      | String  | 标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心 | 对应Stage模型中module结构体中的virtualMachine字段            |
326
327### 4.8 Metadata结构体信息
328
329| 字段           | 类型                                                 | 描述                             | 备注                      |
330| -------------- | ---------------------------------------------------- | -------------------------------- | ------------------------- |
331| parameters     | MetadataInfo结构体的数组(见下述MetadataInfo信息)   | 标识Metadata的参数信息           | FA模型特有,stage模型废弃 |
332| results        | MetadataInfo结构体的数组(见下述MetadataInfo信息)   | 标识Metadata的results信息        | FA模型特有,stage模型废弃 |
333| customizeDatas | CustomizeData结构体的数组(见下述CustomizeData信息) | 标识Metadata的customizeDatas信息 | NA                        |
334
335### 4.9 MetadataInfo结构体信息
336
337| 字段        | 类型   | 描述                              | 备注                      |
338| ----------- | ------ | --------------------------------- | ------------------------- |
339| name        | String | 标识MetadataInfo的name信息        | FA模型特有,stage模型废弃 |
340| description | String | 标识MetadataInfo的description信息 | FA模型特有,stage模型废弃 |
341| type        | String | 标识MetadataInfo的type信息        | FA模型特有,stage模型废弃 |
342
343### 4.10 CustomizeData结构体信息
344
345| 字段  | 类型   | 描述                         | 备注                    |
346| ----- | ------ | ---------------------------- | ----------------------- |
347| name  | String | 标识CustomizeData的name信息  | 对应stage模型的metadata |
348| value | String | 标识CustomizeData的value信息 | 对应stage模型的metadata |
349| extra | String | 标识CustomizeData的extra信息 | 对应stage模型的metadata |
350
351### 4.11 ReqPermission结构体信息
352
353| 字段      | 类型                               | 描述                                                         | 备注 |
354| --------- | ---------------------------------- | ------------------------------------------------------------ | ---- |
355| name      | String                             | 标识ReqPermission的名称信息                                  | NA   |
356| reason    | String                             | 当申请的权限为user_grant权限时此字段必填。描述申请权限的原因 | NA   |
357| usedScene | UsedScene结构体(见下述UsedScene) | 描述权限使用的场景和时机。场景类型有:ability、调用时机(when)。可配置多个ability | NA   |
358
359### 4.12 UsedScene结构体信息
360
361| 字段    | 类型          | 描述                                                         | 备注 |
362| ------- | ------------- | ------------------------------------------------------------ | ---- |
363| ability | List\<String> | 标识需要使用到该权限的元能力(ability),该标签值为数组形式  | NA   |
364| when    | String        | 标识使用该权限的时机,值为inuse/always,表示为仅允许前台使用和前后台都可使用 | NA   |
365
366### 4.13 ShortCut结构体信息
367
368| 字段       | 类型                   | 描述                                                         | 备注 |
369| ---------- | ---------------------- | :----------------------------------------------------------- | ---- |
370| shortcutId | String                 | 标识ShortCut的Id                                             | NA   |
371| label      | String                 | 标识ShortCut的标签信息                                       | NA   |
372| icon       | String                 | 标识ShortCut的图标信息                                       | NA   |
373| intents    | IntentInfo结构体的列表 | 标识快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass,targetBundle | NA   |
374
375### 4.14 IntentInfo结构体信息
376
377| 字段         | 类型   | 描述             | 备注 |
378| ------------ | ------ | ---------------- | ---- |
379| targetClass  | String | 快捷方式目标类型 | NA   |
380| targetBundle | String | 快捷方式目标包名 | NA   |
381
382### 4.15 DistroFilter结构体信息
383
384| 字段          | 类型                | 描述                                  | 备注 |
385| ------------- | ------------------- | ------------------------------------- | ---- |
386| apiVersion    | ApiVersion结构体    | 标识DistroFilter中的apiVersion信息    | NA   |
387| screenShape   | ScreenShape结构体   | 标识DistroFilter中的screenShape信息   | NA   |
388| screenDensity | ScreenDensity结构体 | 标识DistroFilter中的screenDensity信息 | NA   |
389| screenWindow  | ScreenWindow结构体  | 标识DistroFilter中的screenWindow信息  | NA   |
390| countryCode   | CountryCode结构体   | 标识DistroFilter中的countryCode信息   | NA   |
391
392### 4.16 ApiVersion结构体信息
393
394| 字段   | 类型          | 描述                     | 备注 |
395| ------ | ------------- | ------------------------ | ---- |
396| policy | String        | 标识结构体中的policy信息 | NA   |
397| value  | List\<String> | 标识结构体中的value信息  | NA   |
398
399### 4.17 ScreenShape结构体信息
400
401| 字段   | 类型          | 描述                     | 备注 |
402| ------ | ------------- | ------------------------ | ---- |
403| policy | String        | 标识结构体中的policy信息 | NA   |
404| value  | List\<String> | 标识结构体中的value信息  | NA   |
405
406### 4.18 ScreenDensity结构体信息
407
408| 字段   | 类型          | 描述                     | 备注 |
409| ------ | ------------- | ------------------------ | ---- |
410| policy | String        | 标识结构体中的policy信息 | NA   |
411| value  | List\<String> | 标识结构体中的value信息  | NA   |
412
413### 4.19 ScreenWindow结构体信息
414
415| 字段   | 类型          | 描述                     | 备注 |
416| ------ | ------------- | ------------------------ | ---- |
417| policy | String        | 标识结构体中的policy信息 | NA   |
418| value  | List\<String> | 标识结构体中的value信息  | NA   |
419
420### 4.20 CountryCode结构体信息
421
422| 字段   | 类型          | 描述                     | 备注 |
423| ------ | ------------- | ------------------------ | ---- |
424| policy | String        | 标识结构体中的policy信息 | NA   |
425| value  | List\<String> | 标识结构体中的value信息  | NA   |
426
427### 4.21 ExtensionAbilityInfo结构体信息
428
429| 字段            | 类型              | 描述                                                         | 备注                                                         |
430| --------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
431| name            | String            | 标识当前extensionAbility的逻辑名                             | stage模型支持                                                |
432| srcEntrance     | String            | 标识extensionAbility所对应的js代码路径                       | stage模型支持                                                |
433| icon            | String            | 标签标识extensionAbility图标                                 | stage模型支持                                                |
434| label           | String            | 标识extensionAbility对用户显示的名称                         | stage模型支持                                                |
435| description     | String            | 标识extensionAbility的描述                                   | stage模型支持                                                |
436| type            | String            | 标识extensionAbility的类型:form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup | stage模型支持,目前仅解析了form、staticSubscriber的信息、其他类型(如:workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup)暂未解析 |
437| permissions     | List\<String>     | 标识被其它应用的ability调用时需要申请的权限的集合            | stage模型支持                                                |
438| readPermission  | String            | 标识读取ability的数据所需的权限                              | stage模型支持                                                |
439| writePermission | String            | 标识向ability写数据所需的权限                                | stage模型支持                                                |
440| visible         | boolean           | 标识extensionAbility是否可以被其它应用调用                   | stage模型支持                                                |
441| skills          | SkillInfo数组     | 标识extensionAbility能够接收的意图的特征集                   | stage模型支持                                                |
442| metadata        | CustomizeData信息 | 标识extensionAbility的元信息                                 | 将metadata中的信息赋值到CustomizeData中                      |
443| uri             | String            | 标识extensionAbility提供的数据uri                            | stage模型支持                                                |
444
445### 4.22 SkillInfo结构体信息
446
447| 字段     | 类型                | 描述                                   | 备注 |
448| -------- | ------------------- | -------------------------------------- | ---- |
449| actions  | List\<String>       | 标识能够接收的意图的action值的集合     | NA   |
450| entities | List\<String>       | 标识能够接收的Intent的元能力的类别集合 | NA   |
451| uriInfos | UriInfo结构体的数组 | 标识向want过滤器添加数据规范集合       | NA   |
452
453### 4.23 UriInfo结构体信息
454
455| 字段          | 类型   | 描述                                 | 备注 |
456| ------------- | ------ | ------------------------------------ | ---- |
457| schema        | String | 标识ModuleUriInfo的schema信息        | NA   |
458| host          | String | 标识ModuleUriInfo的host信息          | NA   |
459| port          | String | 标识ModuleUriInfo的port信息          | NA   |
460| pathStartWith | String | 标识ModuleUriInfo的pathStartWith信息 | NA   |
461| pathRegex     | String | 标识ModuleUriInfo的pathStartWith信息 | NA   |
462| path          | String | 标识ModuleUriInfo的path信息          | NA   |
463| type          | String | 标识ModuleUriInfo的type信息          | NA   |
464
465### 4.24 AbilityFormInfo结构体信息
466
467| 字段                | 类型          | 描述                                                         | 备注           |
468| ------------------- | ------------- | ------------------------------------------------------------ | -------------- |
469| name                | String        | 标识forms的名称                                              | NA             |
470| description         | String        | 标识forms的描述                                              | stage模型新增  |
471| type                | String        | 标签标识卡片的类型                                           | NA             |
472| src                 | String        | 标签JS卡片对应的UI代码                                       | NA             |
473| isDefault           | boolean       | 标识该卡片是否为默认卡片,每个hap有且只能有一个默认卡片      | NA             |
474| colorMode           | String        | 标识卡片的色调,取值为auto、dark、light其中之一              | NA             |
475| updateEnabled       | boolean       | 标识该卡片是否支持定时刷新                                   | NA             |
476| scheduledUpdateTime | String        | 标签标识卡片顶点刷新的时间,采用24小时计数,精确到分钟       | NA             |
477| updateDuration      | int           | 标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值   | NA             |
478| supportDimensions   | List\<String> | 标识卡片外观规格,取值为”1 * 2“,”2 * 2“,”2 * 4“,”4 * 4“   | NA             |
479| defaultDimension    | String        | 标识卡片默认外观规格,取值必须在supportDimensions配置的列表中 | NA             |
480| formConfigAbility   | String        | 标识卡片调整的Ability名称                                    | NA             |
481| formVisibleNotify   | String        | 标识卡片是否被允许使用卡片可见性通知                         | NA             |
482| MetaData            | MetaData      | 标识卡片的自定义信息                                         | 只有CustomData |
483| 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             |
484
485### 4.25 CommonEvent结构体信息
486
487| 字段       | 类型          | 描述                                   | 备注                                             |
488| ---------- | ------------- | -------------------------------------- | ------------------------------------------------ |
489| name       | String        | 当前静态公共事件对应的类名             | Stage模型从staticSubscriber类型的Extension中获取 |
490| permission | String        | 标识实现该静态公共事件需要申请的权限   | Stage模型从staticSubscriber类型的Extension中获取 |
491| data       | List\<String> | 当前静态公共时间需要携带的额外数据数组 | Stage模型从staticSubscriber类型的Extension中获取 |
492| type       | List\<String> | 配置当前静态公共时间的类别数组         | Stage模型从staticSubscriber类型的Extension中获取 |
493| events     | List\<String> | 标识能够接收的意图的event值的集合      | Stage模型从staticSubscriber类型的Extension中获取 |
494
495### 4.26 DependencyItem结构体信息
496
497| 字段           | 类型   | 描述             | 备注 |
498|--------------| ------ |----------------| ---- |
499| bundleName   | String | 共享包的bundleName | NA   |
500| moduleName   | String | 共享包的moduleName | NA   |
501
502
503
504
505
506
507
508
509
510