• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 拆包工具
2<!--Kit: Ability Kit-->
3<!--Subsystem: BundleManager-->
4<!--Owner: @jsjzju-->
5<!--Designer: @jsjzju-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @Brilliantry_Rui-->
8
9拆包工具是OpenHarmony提供的一种调测工具,支持通过命令行方式将HAP、HSP、App等文件解压成文件夹,并且提供Java接口对HAP、HSP、App等文件进行解析。
10
11
12拆包所用的app_unpacking_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。
13
14
15## 约束与限制
16
17拆包工具需要运行在Java8及其以上环境。
18
19
20## 拆包指令说明
21
22### HAP包模式拆包指令
23
24开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将HAP包解压出来。
25
26**示例**
27
28```
29java -jar app_unpacking_tool.jar --mode hap --hap-path <path> --out-path <path> [--force true]
30```
31
32**参数含义及规范**
33
34| 指令       | 是否必选项 | 选项          | 描述                                                         |
35| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
36| --mode     | 是         | hap           | 拆包类型。                                                   |
37| --hap-path | 是         | NA            | HAP包路径。                                                  |
38| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从HAP包中提取到指定目录。如果为true,将仅提取rpcid文件,不对HAP包进行拆包。 |
39| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
40| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。  |
41
42### App包模式拆包指令
43
44开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将App包解压出来。
45
46**示例**
47
48```
49java -jar app_unpacking_tool.jar --mode app --app-path <path> --out-path <path> [--force true]
50```
51
52**参数含义及规范**
53
54| 指令       | 是否必选项 | 选项          | 描述                                                        |
55| ---------- | ---------- |-------------| ----------------------------------------------------------- |
56| --mode     | 是         | app         | 拆包类型。                                                  |
57| --app-path | 是         | NA          | App包路径。                                                 |
58| --out-path | 是         | NA          | 拆包目标文件路径。                                          |
59| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。 |
60
61### 从HAP包中获取rpcid文件
62
63开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,获取应用的rpcid。
64
65**示例**
66
67```
68java -jar app_unpacking_tool.jar --mode hap --rpcid true --hap-path <path> --out-path <path> [--force true]
69```
70
71**参数含义及规范**
72
73| 指令       | 是否必选项 | 选项          | 描述                                                         |
74| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
75| --mode     | 是         | hap           | 拆包类型。                                                     |
76| --rpcid    | 否         | true或者false | 是否单独将rpcid文件从HAP包中提取到指定目录。如果为true,将仅提取rpcid文件,不对HAP包进行拆包。 |
77| --hap-path | 是         | NA            | HAP包路径。                                                    |
78| --out-path | 是         | NA            | 拆包rpcid目标文件路径。                                        |
79| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。  |
80
81### 按照架构指数拆分HAP包
82
83开发者可以使用拆包工具将hap包按照libs包含的架构类型拆包再打包,得到若干仅包含单架构类型库的hap包。
84
85**示例**
86
87```
88java -jar app_unpacking_tool.jar --mode hap --hap-path <path> --out-path <path> [--force true] [--libs true] [--cpu-abis option]
89```
90
91**参数含义及规范**
92
93| 指令       | 是否必选项 | 选项          | 描述                                                         |
94| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
95| --mode     | 是         | hap    | 拆包类型。                                                   |
96| --hap-path | 是         | NA            | HAP包路径。                                             |
97| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
98| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。  |
99| --libs     | 否         | true或者false | 是否按照包中libs目录内若干架构指数拆分。如果为true,表示按照架构进行拆分。 |
100| --cpu-abis | 否         | NA            | 指定具体要拆出libs的架构类型,支持多个,用逗号分隔。--libs配置为false时该参数不生效。 |
101
102### HSP包模式拆包指令
103
104开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将HSP包解压出来。
105
106**示例**
107
108```
109java -jar app_unpacking_tool.jar --mode hsp --hsp-path <path> --out-path <path> [--force true]
110```
111
112**参数含义及规范**
113
114| 指令         | 是否必选项 | 选项          | 描述                                 |
115|------------| ---------- | ------------- |------------------------------------|
116| --mode     | 是         | hsp           | 拆包类型。                              |
117| --hsp-path | 是         | NA            | HSP包路径。                            |
118| --out-path | 是         | NA            | 拆包目标文件路径。                          |
119| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。 |
120
121### 按照架构指数拆分HSP包
122
123开发者可以使用拆包工具将hsp包按照libs包含的架构类型拆包再打包,得到若干仅包含单架构类型库的hsp包。
124
125**示例**
126
127```
128java -jar app_unpacking_tool.jar --mode hsp --hsp-path <path> --out-path <path> [--force true] [--libs true] [--cpu-abis option]
129```
130
131**参数含义及规范**
132
133| 指令       | 是否必选项 | 选项          | 描述                                                         |
134| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
135| --mode     | 是         | hsp    | 拆包类型。                                                   |
136| --hsp-path | 是         | NA            | HSP包路径。                                             |
137| --out-path | 是         | NA            | 拆包目标文件路径。                                           |
138| --force    | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。  |
139| --libs     | 否         | true或者false | 是否按照包中libs目录内若干架构指数拆分。如果为true,表示按照架构进行拆分。 |
140| --cpu-abis | 否         | NA            | 指定具体要拆出libs的架构类型,支持多个,用逗号分隔。--libs配置为false时该参数不生效。 |
141
142### APPQF模式拆包指令
143
144开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将APPQF包解压出来。
145
146**示例**
147
148```
149java -jar app_unpacking_tool.jar --mode appqf --appqf-path <path> --out-path <path> [--force true]
150```
151
152**参数含义及规范**
153
154| 指令           | 是否必选项 | 选项          | 描述                                 |
155|--------------| ---------- |-------------|------------------------------------|
156| --mode       | 是         | appqf       | 拆包类型。                              |
157| --appqf-path | 是         | NA          | APPQF包路径。                          |
158| --out-path   | 是         | NA          | 拆包目标文件路径。                          |
159| --force      | 否         | true或者false | 默认值为false。如果为true,表示当目标文件存在时,强制删除。 |
160
161## 包解析接口
162
163包解析接口仅用于应用市场对打好的HAP、HSP、App等包进行解析,获取其中配置文件等信息。
164
165### 接口目录
166
167| 类名               | 接口原型                                                     | 类型     | 接口详细描述                                                            |
168| ------------------ | ------------------------------------------------------------ | -------- |-------------------------------------------------------------------|
169| UncompressEntrance | UncompressResult parseApp(String appPath, ParseAppMode parseMode, String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息。<br/>输入参数:appPath app包路径,parseMode 解析模式枚举(ALL/HAP_LIST/HAP_INFO),hapName hap包名(parseMode为HAP_INFO时需要配置)。<br/>返回值:UncompressResult。 |
170| UncompressEntrance | UncompressResult parseApp(InputStream input, ParseAppMode parseMode, String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息。<br/>输入参数:input app文件流,parseMode 解析模式枚举(ALL/HAP_LIST/HAP_INFO),hapName hap包名(parseMode为HAP_INFO时需要配置)。<br/>返回值:UncompressResult。 |
171| UncompressEntrance | UncompressResult parseHap(String hapPath)                    | Java接口 | 接口功能:根据参数解析app包的json配置文件。<br/>输入参数:hapPath HAP包路径。<br/>返回值:UncompressResult。    |
172| UncompressEntrance | UncompressResult parseHap(InputStream input)                 | Java接口 | 接口功能:根据参数解析app包的json配置文件。<br/>输入参数:input HAP包文件流。<br/>返回值:UncompressResult。   |
173
174## 拆包工具信息字段
175
176### UncompressResult(Bundle信息)结构体信息
177
178| 字段            | 类型               | 描述                                     | 备注 |
179| ----------------| ------------------ |----------------------------------------| ---- |
180| result          | boolean            | 标识此次解析是否成功。true表示解析成功,false表示解析失败。                             | NA   |
181| message         | String             | 解析失败时返回失败原因。                            | NA   |
182| packInfos       | List\<PackInfo>    | bundle中pack.info文件的packages信息。          | NA   |
183| profileInfos    | List\<profileInfo> | 应用的配置信息。                                | NA   |
184| profileInfosStr | List\<String>      | 应用的配置信息。 | NA   |
185| icon            | String             | 返回入口组件的icon路径,如果没有入口组件,则返回第一个组件的icon信息。 | NA   |
186| label           | String             | 返回入口组件的label,如果没有入口组件,则返回第一个组件的label信息。 | NA   |
187| packageSize     | long               | 表示App包的大小,单位字节。 | NA   |
188
189### PackInfo结构体信息
190
191| 字段                | 类型          | 描述                                    | 备注 |
192| ------------------- | ------------- | --------------------------------------- | ---- |
193| name                | String        | 包名。                                    | NA   |
194| moduleName          | String        | HAP名称。                                 | NA   |
195| moduleType          | String        | module的类型。                            | NA   |
196| deviceType          | List\<String> | 表示当前HAP包所支持的设备类型。           | NA   |
197| deliveryWithInstall | boolean       | 标识当前HAP是否在用户主动安装的时候安装。true表示安装,false表示不安装。 | NA   |
198
199### ProfileInfo结构体信息
200
201| 字段         | 类型                           | 描述                                        | 备注            |
202| ------------ | ------------------------------ | ------------------------------------------ | --------------- |
203| hapName      | String                         | 标识当前解析的HAP包名称。                    | NA                                                           |
204| appInfo      | AppInfo结构体(见下述AppInfo)   | 标识App信息的结构体(见下述AppInfo信息)。   | NA                                                           |
205| deviceConfig | Map\<String,DeviceConfig>      | 标识设备信息。                               | 存储类型为Map\<String,String>,存储设备类型名称及对应设备类型的信息,在stage模型中,这个字段存储在app结构体中。 |
206| hapInfo      | HapInfo结构体(见下述HapInfo)   | 标识HAP包中module信息(见下述HapInfo信息)。 | NA                                                           |
207
208### AppInfo结构体信息
209
210| 字段                           | 类型     | 描述                      | 备注         |
211|--------------------------------|---------|---------------------------|-------------|
212| bundleName                     | String  | 标识App的包名称。          | NA          |
213| vendor                         | String  | 标识App的供应商信息。       | NA          |
214| relatedBundleName              | String  | 标识App相关bundle的包名。   | NA          |
215| versionName                    | String  | 标识App中的versionName信息。       | NA          |
216| versionCode                    | String  | 标识App中的versionCode信息。  | NA          |
217| targetApiVersion               | int     | 标识应用运行需要的API目标版本。    | NA          |
218| compatibleApiVersion           | int     | 标识应用兼容的API版本。    | NA          |
219| appName                        | String  | 标识显示在桌面上的ability的label。      | NA          |
220| appNameEN                      | String  | 标识显示在桌面上的ability的label。    | NA          |
221| releaseType                    | String  | 标识应用运行需要的API目标版本的类型。 | NA          |
222| shellVersionCode               | String  | 标识应用的API版本号。 | NA          |
223| shellVersionName               | String  | 标识应用的API版本名称。  | NA          |
224| multiFrameworkBundle           | boolean | 标识应用框架。true表示混合打包,false表示非混合打包。   | NA          |
225| debug                          | boolean | 标识应用是否可调试。true表示可调试,false表示不可调试。     | NA          |
226| iconId                         | int     | 标识应用的图标资源ID。 | NA          |
227| labelId                        | int     | 标识应用的label资源ID。  | NA          |
228| icon                           | String  | 标识应用的图标。 | NA          |
229| label                          | String  | 标识应用的label。  | NA          |
230| description                    | String  | 标识应用的描述信息。    | stage模型新增。   |
231| minCompatibleVersionCode       | int     | 标识应用能够兼容的最低版本号。  | NA          |
232| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知。true表示开启,false表示不开启。   | stage模型新增。   |
233| bundleType                     | String  | 标识bundle的类型,取值:<br/>- app:应用。<br/>- atomicService:原子化服务。 <br/>- shared:应用间共享库。 | NA   |
234| compileSdkVersion              | String  | 标识编译该应用时使用的sdk版本。   | 仅限API10及以后的应用。   |
235| compileSdkType                 | String  | 标识编译该应用时使用的sdk类别。   | 仅限API10及以后的应用。   |
236| labels                         | HashMap\<String, String> | 标识多语言应用程序AppJson的标签。 | NA          |
237| descriptions                   | HashMap\<String, String> | 标识多语言应用程序AppJson的说明。 | NA          |
238
239### HapInfo结构体信息
240
241| 字段                 | 类型                        | 描述                               | 备注       |
242| ---------------------|----------------------------|------------------------------------| -----------|
243| appModel             | AppModel枚举值              | 标识应用的框架模型。<br/>- FA:FA模型。<br/>- STAGE:Stage模型。 | NA |
244| packageStr           | String                      | 标识应用的包信息。     | FA模型特有。             |
245| name                 | String                      | 标识当前module的名字。                | NA                 |
246| description          | String                      | 标识HAP包的描述信息。                 | FA模型特有。                  |
247| supportedModes       | List\<String>               | 标识HAP包的支持的模式。               | NA                           |
248| abilities            | List\<AbilityInfo>          | 标识HAP包ability信息。                | NA                             |
249| defPermissions       | List\<DefPermission>        | 标识HAP包DefPermission信息。          | NA                             |
250| definePermissions    | List\<DefinePermission>     | 标识HAP包DefinePermission信息。       | NA                             |
251| defPermissionsGroups | List\<DefPermissionsGroups> | 标识HAP包DefPermissionsGroups 信息。  | NA                             |
252| distro               | Distro结构体                 | 标识HAP包的distro信息。               | NA                      |
253| reqCapabilities      | List\<String>               | 标识HAP包reqCapabilities信息。        | NA                           |
254| deviceType           | List\<String>               | 标识HAP可以运行在哪类设备上。   对应stage模型中的deviceTypes。       |
255| metaData             | MetaData结构体(见下述metaData)| 标识HAP的自定义元信息。                | NA           |
256| dependencies         | List\<DependencyItem>       | 标识HAP包DependencyItem信息。         | NA                   |
257| isJs                 | boolean                     | 标识该应用是否是js应用。true表示是js应用,false表示不是js应用。              | FA模型特有。            |
258| reqPermissions       | list\<ReqPermission>        | 标识应用申请的权限的集合。      | 对应stage模型的requestPermissions。 |
259| commonEvents         | CommonEvent结构体(见下述CommonEvent)       | 标识静态事件。                         | NA     |
260| shortcuts            | list\<Shortcut>             | 标识应用的shortcuts信息。              | NA                  |
261| distroFilter         | DistroFilter结构体           | 标识应用市场按设备形态分发的信息。     | NA               |
262| srcEntrance          | String                      | 标识应用对应的入口代码路径。           | stage模型新增。          |
263| process              | String                      | 标识HAP的进程名。                      | stage模型新增。       |
264| mainElement          | String                      | 标识HAP的入口ability名称或者extension名称。 | stage模型新增,FA模型将mainAbility的值赋值给mainElement。 |
265| uiSyntax             | String                      | 定义该JS Component的语法类型。         | stage模型新增。       |
266| pages                | List\<String>               | 列举JS Component中每个页面信息。       | stage模型新增。       |
267| extensionAbilityInfos| List\<ExtensionAbilityInfo> | 描述extensionAbility的配置信息。       | stage模型新增。        |
268| moduleAtomicService  | ModuleAtomicService结构体(见下述ModuleAtomicService) | 描述HAP的原子化服务信息。 | NA              |
269| formInfos            | List\<AbilityFormInfo>      | 描述卡片的信息。                       | NA              |
270| descriptions         | HashMap\<String, String>    | 标识HAP的说明信息。                    | NA             |
271| compressedSize       | long                        | 标识HAP包压缩后的大小,单位字节。         | NA              |
272| originalSize         | long                        | 标识HAP包的原始大小,单位字节。         | NA             |
273
274### AbilityInfo结构体信息
275
276| 字段              | 类型                       | 描述                         | 备注                        |
277|-------------------|---------------------------| ---------------------------- | -------------------------- |
278| name              | String                    | 标识当前ability的逻辑名。        | NA                              |
279| description       | String                    | 标识ability的描述。             | NA                              |
280| descriptionRes    | String                    | 标识ability资源的描述。            | NA                              |
281| iconId            | int                       | 标识ability图标资源ID。            | NA                              |
282| icon              | String                    | 标识ability图标。            | NA                              |
283| iconPath          | String                    | 标识ability图标路径。      | NA                              |
284| labelId           | int                       | 标识ability对用户显示的名称资源ID。       | NA                              |
285| label             | String                    | 标识ability对用户显示的名称。       | NA                              |
286| labelRes          | String                    | 标识ability对用户显示的名称资源。      | NA                    |
287| type              | String                    | 标识ability类型。      | Stage模型下该值直接赋予page类型。 |
288| formsEnabled      | boolean                   | 标识ability卡片是否使能。true表示使能,false表示不使能。      | NA                              |
289| formInfo          | FormInfo结构体             | 描述卡片的信息。       | NA                              |
290| uri               | String                    | 标识ability的uri信息。      | FA模型支持。                      |
291| launchType        | String                    | 标识ability中的launcherType信息。         | NA                      |
292| orientation       | String                    | 标识ability中的orientation信息。      | NA                              |
293| visible           | boolean                   | 标识ability中的visible信息。true表示可见,false表示不可见。      | NA                              |
294| grantPermission   | boolean                   | 标识ability中的grantPermission信息。true表示可以向ability内任何数据授予权限,false表示不可以向ability内任何数据授予权限。   | NA                              |
295| readPermission    | String                    | 标识ability中的readPermission信息。  | NA                              |
296| writePermission   | String                    | 标识ability中的writePermission信息。    | NA                              |
297| uriPermissionMode | String                    | 标识ability中的uriPermissionMode信息。   | NA                              |
298| uriPermissionPath | String                    | 标识ability中的uriPermissionPath信息。 | NA                              |
299| directLaunch      | boolean                   | 标识ability中的directLaunch信息。true表示不解锁设备时可以启动应用程序,false表示不解锁设备时不可以启动应用程序。   | NA                              |
300| mission           | String                    | 标识ability中的mission信息。    | NA                              |
301| targetAbility     | String                    | 标识ability中的targetAbility信息。   | NA                              |
302| multiUserShared   | boolean                   | 标识ability中的multiUserShared信息。true表示支持多用户状态进行共享,false表示不支持多用户状态进行共享。   | NA                              |
303| supportPipMode    | boolean                   | 标识ability中的supportPipMode信息。true表示支持用户进入PIP模式,false表示不支持用户进入PIP模式。  | NA                              |
304| srcLanguage       | String                    | 标识ability中的srcLanguage信息。     | NA                              |
305| srcPath           | String                    | 标识ability中的srcPath信息。  | NA                              |
306| srcEntrance       | String                    | 标识ability中的srcEntrance信息。      | NA                              |
307| continuable       | boolean                   | 标识ability中的continuable信息。true表示ability可迁移,false表示不可迁移。 | NA                              |
308| metaData          | MetaData结构体(见下述MetaData) | 标识ability的自定义元信息。     | NA                             |
309| configChanges     | List\<String>             | 标识ability中的configChanges信息。    | NA                              |
310| formInfos         | List\<AbilityFormInfo>    | 标识ability中的forms信息。              | NA                              |
311| permissions       | List\<String>             | 标识ability中的permissions信息。           | NA                              |
312| skills            | List\<SkillInfo>          | 标识ability中的skills信息。               | NA                              |
313| backgroundModes   | List\<String>             | 标识ability中的backgroundModes信息。       | NA                              |
314| labels            | HashMap\<String, String>  | 标识多语言下ability对用户显示的名称。     | NA                             |
315| descriptions      | HashMap\<String, String>  | 标识多语言下ability的描述。              | NA                              |
316
317### Distro结构体信息
318
319| 字段                | 类型    | 描述                       | 备注                                                         |
320| ------------------- |---------| ------------------------- | ------------------------------------------------------------ |
321| moduleName          | String  | 标识当前module的名字。    | 对应Stage模型中module结构体中的moduleName字段。                 |
322| moduleType          | String  | 标识当前HAP的类型。       | 对应Stage模型中module结构体中的moduleType字段。                 |
323| deliveryWithInstall | boolean | 标识当前HAP是否在用户主动安装的时候安装。true表示安装,false表示不安装。 | 对应Stage模型中module结构体中的deliveryWithInstall字段。         |
324| installationFree    | int     | 标识当前HAP是否支持免安装特性。           | 对应Stage模型中module结构体中的installationFree字段,json文件中如果配置了该字段为true,返回1;配置为false,返回0;未配置返回2。 |
325| virtualMachine      | String  | 标识当前HAP运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心。 | 对应Stage模型中module结构体中的virtualMachine字段。 |
326
327### MetaData结构体信息
328
329| 字段           | 类型                 | 描述                             | 备注                      |
330| -------------- |----------------------| -------------------------------- | ------------------------- |
331| parameters     | List\<MetaDataInfo>  | 标识Metadata的参数信息。           | FA模型特有,stage模型废弃。  |
332| results        | List\<MetaDataInfo>  | 标识Metadata的results信息。        | FA模型特有,stage模型废弃。  |
333| customizeDatas | List\<CustomizeData> | 标识Metadata的customizeDatas信息。 | NA                         |
334
335### 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### 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### ReqPermission结构体信息
352
353| 字段      | 类型                               | 描述                                                       | 备注 |
354| --------- | ---------------------------------- |------------------------------------------------------------| ---- |
355| name      | String                             | 标识ReqPermission的名称信息。                                 | NA   |
356| reason    | String                             | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因。 | NA   |
357| usedScene | UsedScene结构体(见下述UsedScene) | 描述权限使用的场景和时机。场景类型有:ability、调用时机(when),可配置多个ability。 | NA   |
358| reasons   | HashMap\<String, String>           | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因。 | NA    |
359
360### UsedScene结构体信息
361
362| 字段    | 类型          | 描述                                                         | 备注 |
363| ------- | ------------- | ------------------------------------------------------------ | ---- |
364| ability | List\<String> | 标识需要使用到该权限的元能力(ability),该标签值为数组形式。   | NA   |
365| when    | String        | 标识使用该权限的时机,值为inuse/always,表示为仅允许前台使用和前后台都可使用。 | NA   |
366
367### Shortcut结构体信息
368
369| 字段       | 类型                   | 描述                                                         | 备注 |
370| ---------- | ---------------------- | :----------------------------------------------------------- | ---- |
371| shortcutId | String                 | 标识ShortCut的Id。                                             | NA   |
372| label      | String                 | 标识ShortCut的标签信息。                                       | NA   |
373| icon       | String                 | 标识ShortCut的图标信息。                                       | NA   |
374| intents    | List\<IntentInfo>      | 标识快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass,targetBundle。 | NA   |
375| labels     | HashMap\<String, String> | 标识多语言下ShortCut对用户显示的名称。                        | NA   |
376
377### IntentInfo结构体信息
378
379| 字段         | 类型   | 描述             | 备注 |
380| ------------ | ------ | ---------------- | ---- |
381| targetClass  | String | 快捷方式目标类型。 | NA   |
382| targetBundle | String | 快捷方式目标包名。 | NA   |
383
384### DistroFilter结构体信息
385
386| 字段          | 类型                | 描述                                  | 备注 |
387| ------------- | ------------------- | ------------------------------------- | ---- |
388| apiVersion    | ApiVersion结构体    | 标识DistroFilter中的apiVersion信息。    | NA   |
389| screenShape   | ScreenShape结构体   | 标识DistroFilter中的screenShape信息。   | NA   |
390| screenDensity | ScreenDensity结构体 | 标识DistroFilter中的screenDensity信息。 | NA   |
391| screenWindow  | ScreenWindow结构体  | 标识DistroFilter中的screenWindow信息。  | NA   |
392| countryCode   | CountryCode结构体   | 标识DistroFilter中的countryCode信息。   | NA   |
393
394### ApiVersion结构体信息
395
396| 字段   | 类型          | 描述                     | 备注 |
397| ------ | ------------- | ------------------------ | ---- |
398| policy | String        | 标识结构体中的policy信息。 | NA   |
399| value  | List\<String> | 标识结构体中的value信息。  | NA   |
400
401### ScreenShape结构体信息
402
403| 字段   | 类型          | 描述                     | 备注 |
404| ------ | ------------- | ------------------------ | ---- |
405| policy | String        | 标识结构体中的policy信息。 | NA   |
406| value  | List\<String> | 标识结构体中的value信息。  | NA   |
407
408### ScreenDensity结构体信息
409
410| 字段   | 类型          | 描述                     | 备注 |
411| ------ | ------------- | ------------------------ | ---- |
412| policy | String        | 标识结构体中的policy信息。 | NA   |
413| value  | List\<String> | 标识结构体中的value信息。  | NA   |
414
415### ScreenWindow结构体信息
416
417| 字段   | 类型          | 描述                     | 备注 |
418| ------ | ------------- | ------------------------ | ---- |
419| policy | String        | 标识结构体中的policy信息。 | NA   |
420| value  | List\<String> | 标识结构体中的value信息。  | NA   |
421
422### CountryCode结构体信息
423
424| 字段   | 类型          | 描述                     | 备注 |
425| ------ | ------------- | ------------------------ | ---- |
426| policy | String        | 标识结构体中的policy信息。 | NA   |
427| value  | List\<String> | 标识结构体中的value信息。  | NA   |
428
429### ExtensionAbilityInfo结构体信息
430
431| 字段            | 类型                     | 描述                                                  | 备注                |
432| --------------- | ------------------------ | ----------------------------------------------------- | ------------------ |
433| name            | String                   | 标识当前extensionAbility的逻辑名。       | stage模型支持。                      |
434| srcEntrance     | String                   | 标识extensionAbility所对应的js代码路径。  | stage模型支持。                   |
435| icon            | String                   | 标签标识extensionAbility图标。       | stage模型支持。                      |
436| label           | String                   | 标识extensionAbility对用户显示的名称。    | stage模型支持。           |
437| description     | String                   | 标识extensionAbility的描述。            | stage模型支持。                 |
438| type            | String                   | 标识extensionAbility的类型:form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup。 | stage模型支持,目前仅解析了form、staticSubscriber的信息、其他类型(如:workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup)暂未解析。        |
439| permissions     | List\<String>            | 标识被其它应用的ability调用时需要申请的权限的集合。 | stage模型支持。      |
440| readPermission  | String                   | 标识读取ability的数据所需的权限。                         | stage模型支持。  |
441| writePermission | String                   | 标识向ability写数据所需的权限。                           | stage模型支持。    |
442| visible         | boolean                  | 标识extensionAbility是否可以被其它应用调用。true表示可以被其他应用调用,false表示不可以被其他应用调用。              | stage模型支持。  |
443| skills          | List\<SkillInfo>         | 标识extensionAbility能够接收的意图的特征集。              | stage模型支持。   |
444| metadataInfos   | List\<ModuleMetadataInfo>| 标识extensionAbility能够接收的元数据信息。                | stage模型支持。  |
445| metadata        | MetaData结构体           | 标识extensionAbility的元信息。  | 将metadata中的信息赋值到CustomizeData中。 |
446| uri             | String                   | 标识extensionAbility提供的数据uri。                       | stage模型支持。      |
447| descriptions    | HashMap\<String, String> | 标识多语言下extensionAbility的描述。    | NA                 |
448| labels          | HashMap\<String, String> | 标识多语言下extensionAbility对用户显示的名称。  | NA                   |
449
450### SkillInfo结构体信息
451
452| 字段     | 类型                | 描述                   | 备注 |
453| -------- | ------------------- |----------------------| ---- |
454| actions  | List\<String>       | 标识能够接收的意图的action值的集合。 | NA   |
455| entities | List\<String>       | 标识能够接收的意图的元能力的类别集合。   | NA   |
456| domainVerify | boolean       | ability是否支持域校验。true表示支持,false表示不支持。   | NA   |
457
458### UriInfo结构体信息
459
460| 字段          | 类型   | 描述                     | 备注 |
461| ------------- | ------ |------------------------| ---- |
462| schema        | String | 标识ModuleUriInfo的范式信息。   | NA   |
463| host          | String | 标识ModuleUriInfo的宿主信息。   | NA   |
464| port          | String | 标识ModuleUriInfo的端口信息。   | NA   |
465| pathStartWith | String | 标识ModuleUriInfo的路径前缀。   | NA   |
466| pathRegex     | String | 标识ModuleUriInfo的路径正则信息。 | NA   |
467| path          | String | 标识ModuleUriInfo的路径信息。   | NA   |
468| type          | String | 标识ModuleUriInfo的种类。     | NA   |
469
470### AbilityFormInfo结构体信息
471
472| 字段                | 类型                     | 描述                                                         | 备注        |
473| ------------------- | -------------------------| ------------------------------------------------------------ |-----------|
474| name                | String                   | 标识forms的名称。                                              | NA        |
475| type                | String                   | 标签标识卡片的类型。                                           | NA        |
476| updateEnabled       | boolean                  | 标识该卡片是否支持定时刷新。true表示支持,false表示不支持。                                   | NA        |
477| scheduledUpdateTime | String                   | 标签标识卡片顶点刷新的时间,采用24小时计数,精确到分钟。       | NA        |
478| updateDuration      | int                      | 标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值。   | NA        |
479| supportDimensions   | List\<String>            | 标识卡片外观规格,取值为”1 * 2“,”2 * 2“,”2 * 4“,”4 * 4“。   | NA        |
480| defaultDimension    | String                   | 标识卡片默认外观规格,取值必须在supportDimensions配置的列表中。 | NA        |
481| MetaData            | MetaData                 | 标识卡片的自定义信息。                                         | NA        |
482| description         | String                   | 标识forms的描述。                             | stage模型新增。 |
483| src                 | String                   | 标签JS卡片对应的UI代码。                                       | NA        |
484| windowInfo          | ModuleWindowInfo结构体   | 标签能力窗体的窗口。                                       | NA        |
485| isDefault           | boolean                  | 标识该卡片是否为默认卡片,每个HAP有且只能有一个默认卡片。true表示默认卡片,false表示非默认卡片。      | NA        |
486| colorMode           | String                   | 标识卡片的色调,取值为auto、dark、light其中之一。              | NA        |
487| formConfigAbility   | String                   | 标识卡片调整的Ability名称。                                    | NA        |
488| formVisibleNotify   | String                   | 标识卡片是否被允许使用卡片可见性通知。                         | NA        |
489| providerAbility     | String                   | 卡片的提供方所在的Ability或者extension名称。<br/>1. FA模型:如果卡片配置在service类型的ability中,providerAbility配置为mainAbility。<br/>2. FA模型:如果卡片配置在Page类型的Ability中,providerAbility配置为当前Ability。<br/>3. FA模型:如果没有配置mainAbility,providerAbility配置为当前HAP包中的优先使用system.home,否则第一个page的Ability。<br/>4. stage模型中(follow上述规则),providerAbility配置为mainElement。 | NA |
490| descriptions        | HashMap\<String, String> | 标识多语言下ability的描述。                                     | NA     |
491
492
493### CommonEvent结构体信息
494
495| 字段       | 类型          | 描述                                   | 备注                                             |
496| ---------- | ------------- | -------------------------------------- | ------------------------------------------------ |
497| name       | String        | 当前静态公共事件对应的类名。             | Stage模型从staticSubscriber类型的Extension中获取。 |
498| permission | String        | 标识实现该静态公共事件需要申请的权限。   | Stage模型从staticSubscriber类型的Extension中获取。 |
499| data       | List\<String> | 当前静态公共时间需要携带的额外数据数组。 | Stage模型从staticSubscriber类型的Extension中获取。 |
500| type       | List\<String> | 配置当前静态公共时间的类别数组。         | Stage模型从staticSubscriber类型的Extension中获取。 |
501| events     | List\<String> | 标识能够接收的意图的event值的集合。      | Stage模型从staticSubscriber类型的Extension中获取。 |
502
503### DependencyItem结构体信息
504
505| 字段           | 类型   | 描述           | 备注 |
506|--------------| ------ |--------------| ---- |
507| bundleName   | String | 共享包的bundleName。 | NA   |
508| moduleName   | String | 共享包的moduleName。 | NA   |
509| versionCode  | String | 共享包的版本号。      | NA   |
510
511### ModuleAtomicService结构体信息
512
513| 字段         | 类型                   | 描述           | 备注 |
514|--------------|------------------------|----------------| ---- |
515| preloadItems | list\<PreloadItem>     | 预加载对象。     | NA   |
516
517### PreloadItem结构体信息
518
519| 字段         | 类型   | 描述           | 备注 |
520|--------------|--------|----------------| ---- |
521| moduleName   | String | 预加载的模块名。 | NA   |
522
523### DeviceConfig结构体信息
524
525| 字段                           | 类型    | 描述                                     | 备注 |
526|--------------------------------|-------- |------------------------------------------| ---- |
527| targetReqSdk                   | String  | 标识应用程序DeviceConfig的目标请求Sdk版本。  | NA   |
528| compatibleReqSdk               | String  | 标识应用程序DeviceConfig的兼容请求Sdk版本。  | NA   |
529| jointUserid                    | String  | 标识应用程序DeviceConfig的jointUserid。      | NA   |
530| process                        | String  | 标识应用程序DeviceConfig的进程。             | NA   |
531| arkFlag                        | String  | 标识应用程序DeviceConfig的arkFlag。          | NA   |
532| targetArkVersion               | String  | 标识应用程序DeviceConfig的targetArkVersion。 | NA   |
533| compatibleArkVersion           | String  | 标识应用程序DeviceConfig的兼容ArkVersion。   | NA   |
534| directLaunch                   | boolean | 标识应用程序DeviceConfig的直接启动。true表示不解锁设备时可以启动应用程序,false表示不解锁设备时不可以启动应用程序。         | NA   |
535| distributedNotificationEnabled | boolean | 标识应用程序AppJson的distributedNotificationEnabled。true表示开启分布式通知,false表示不开启分布式通知。 | NA   |
536
537### DefPermission结构体信息
538
539| 字段           | 类型                     | 描述                                      | 备注 |
540|----------------|--------------------------|-------------------------------------------| ---- |
541| name           | String                   | 标识指示DefPermission的名称。               | NA   |
542| grantMode      | String                   | 标识DefPermission的grantMode。              | NA   |
543| group          | String                   | 标识DefPermission的组。                     | NA   |
544| label          | String                   | 标识DefPermission的标签。                   | NA   |
545| description    | String                   | 标识DefPermission的描述。                   | NA   |
546| availableScope | List\<String>            | 标识DefPermission的可用范围。               | NA   |
547| labels         | HashMap\<String, String> | 标识多语言应用程序DefPermission的标签。     | NA   |
548| descriptions   | HashMap\<String, String> | 标识多语言应用程序DefPermission的说明。     | NA   |
549
550### DefinePermission结构体信息
551
552| 字段                   | 类型                     | 描述                                               | 备注 |
553|------------------------|--------------------------|----------------------------------------------------| ---- |
554| name                   | String                   | 标识DefinePermission的名称。                         | NA   |
555| grantMode              | String                   | 标识DefinePermission的grantMode。                        | NA   |
556| availableLevel         | String                   | 标识DefinePermission的组。                               | NA   |
557| provisionEnable        | boolean                  | 标识模块定义权限的提供启用。true表示支持证书方式申请权限,false不支持证书方式申请权限。                           | NA   |
558| distributedSceneEnable | boolean                  | 标识ModuleDefinePermissions的distributedSceneEnable。true表示支持分布式场景下使用该权限,false表示不支持分布式场景下使用该权限。 | NA   |
559| label                  | String                   | 标识DefinePermission的标签。                              | NA   |
560| description            | String                   | 标识DefinePermission的描述。                              | NA   |
561| descriptions           | HashMap\<String, String> | 标识多语言应用程序DefinePermission的说明。                | NA   |
562| labels                 | HashMap\<String, String> | 标识多语言应用程序DefinePermission的标签。                | NA   |
563
564### DefPermissionsGroups结构体信息
565
566| 字段        | 类型    | 描述                         | 备注 |
567|-------------|---------|------------------------------| ---- |
568| name        | String  | 标识DefPermissionGroup的名称。 | NA   |
569| order       | String  | 标识DefPermissionGrou的顺序。  | NA   |
570| icon        | String  | 标识DefPermissionGroup的图标。 | NA   |
571| label       | String  | 标识DefPermissionGroup的标签。 | NA   |
572| description | String  | 标识DefPermissionGroup的描述。 | NA   |
573| request     | String  | 标识DefPermissionGroup的请求。 | NA   |
574
575### FormInfo结构体信息
576
577| 字段          | 类型          | 描述                     | 备注 |
578|---------------|---------------|--------------------------| ---- |
579| formEntity    | List\<String> | 标识formInfo的formEntity | NA   |
580| minHeight     | String        | 标识formInfo的最小高度   | NA   |
581| defaultHeight | String        | 标识formInfo的默认高度   | NA   |
582| minWidth      | String        | 标识formInfo的最小宽度   | NA   |
583| defaultWidth  | String        | 标识formInfo的默认宽度   | NA   |
584
585### ModuleMetadataInfo结构体信息
586
587| 字段     | 类型    | 描述                         | 备注 |
588|----------|---------|------------------------------| ---- |
589| name     | String  | 标识ModuleMetadataInfo的名称。 | NA   |
590| value    | String  | 标识ModuleMetadataInfo的值。   | NA   |
591| resource | String  | 标识ModuleMetadataInfo的资源。 | NA   |
592
593### ModuleWindowInfo结构体信息
594
595| 字段            | 类型    | 描述                                | 备注 |
596|-----------------|---------|-------------------------------------| ---- |
597| designWidth     | int     | 标识模块已用场景的设计宽度。           | NA   |
598| autoDesignWidth | boolean | 标识ModuleUsedScene的autoDesignWidth。true表示designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出,false表示设计基准宽度为designWidth。 | NA   |