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