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