提交 160c1f26 编写于 作者: X xsz233

move unpacking-tool from packing-tool & update unpacking-tool

Signed-off-by: Nxsz233 <xushizhe@huawei.com>
上级 45a63f1a
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
``` ```
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 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 <option> --force true
``` ```
- FA模型的打包命令示例: - FA模型的打包命令示例:
...@@ -78,7 +78,7 @@ java -jar app_packing_tool.jar --mode har --json-path [option] --jar-path [optio ...@@ -78,7 +78,7 @@ java -jar app_packing_tool.jar --mode har --json-path [option] --jar-path [optio
#### 示例 #### 示例
``` ```
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] 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]
``` ```
#### 参数含义及规范 #### 参数含义及规范
...@@ -87,16 +87,16 @@ java -jar app_packing_tool.jar --mode app --hap-path <option> --hsp-path <option ...@@ -87,16 +87,16 @@ java -jar app_packing_tool.jar --mode app --hap-path <option> --hsp-path <option
|--------------------|-------|-------------|--------------------------------------------------------------| |--------------------|-------|-------------|--------------------------------------------------------------|
| --mode | 是 | app | 多个hap需满足hap的合法性校验。 | | --mode | 是 | app | 多个hap需满足hap的合法性校验。 |
| --hap-path | 是 | NA | 1.hap包文件路径,文件名必须以.hap为后缀。如果时多个hap包需要用“,”分隔。<br/>2.hap包文件路径也可以是目录。 | | --hap-path | 是 | NA | 1.hap包文件路径,文件名必须以.hap为后缀。如果时多个hap包需要用“,”分隔。<br/>2.hap包文件路径也可以是目录。 |
| --hsp-path | 否 | NA | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果时多个hsp包需要用“,”分隔。<br/>2.hsp包文件路径也可以是目录。 | | --hsp-path | 否 | NA | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果时多个hsp包需要用“,”分隔。<br/>2.hsp包文件路径也可以是目录。 |
| --pack-info-path | 是 | NA | 文件名必须为pack.info。 | | --pack-info-path | 是 | NA | 文件名必须为pack.info。 |
| --out-path | | NA | 目标文件路径,文件名必须以.app为后缀。 | | --out-path | | NA | 目标文件路径,文件名必须以.app为后缀。 |
| --signature-path | 否 | NA | 签名路径。 | | --signature-path | 否 | NA | 签名路径。 |
| --certificate-path | 否 | NA | 证书路径。 | | --certificate-path | 否 | NA | 证书路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | | --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
#### 打包app时hap的合法性校验 #### 打包app时hap的合法性校验
在对工程内的hap包打包生成app包时,需要保证被打包的每个hap在json文件中配置的bundleName,versionCode,versionName,minCompatibleVersionCode,debug属性相同,minAPIVersion,targetAPIVersion,apiReleaseType相同,moduleName唯一,对于fa模型,还需要保证json文件中配置的package唯一。 在对工程内的hap包打包生成app包时,需要保证被打包的每个hap在json文件中配置的bundleName,versionCode,versionName,minCompatibleVersionCode,debug,minAPIVersion,targetAPIVersion,apiReleaseType相同,moduleName唯一,对于fa模型,还需要保证json文件中配置的package唯一。
### 多工程打包 ### 多工程打包
...@@ -105,7 +105,7 @@ java -jar app_packing_tool.jar --mode app --hap-path <option> --hsp-path <option ...@@ -105,7 +105,7 @@ java -jar app_packing_tool.jar --mode app --hap-path <option> --hsp-path <option
#### 示例 #### 示例
``` ```
java -jar app_packing_tool.jar --mode multiApp --hap-list 1.hap,2.hap --app-list 1.app,2.app --out-path final.app java -jar app_packing_tool.jar --mode multiApp --hap-list [option] --hsp-list [option] --app-list [option] --out-path <option>
``` ```
#### 参数含义及规范 #### 参数含义及规范
...@@ -116,7 +116,8 @@ java -jar app_packing_tool.jar --mode multiApp --hap-list 1.hap,2.hap --app-list ...@@ -116,7 +116,8 @@ java -jar app_packing_tool.jar --mode multiApp --hap-list 1.hap,2.hap --app-list
| --hap-list | 否 | hap的路径 | 1.hap包文件路径,文件名必须以.hap为后缀。如果是多个hap包需要”,“分隔。<br/>2.hap文件路径也可以是目录。 | | --hap-list | 否 | hap的路径 | 1.hap包文件路径,文件名必须以.hap为后缀。如果是多个hap包需要”,“分隔。<br/>2.hap文件路径也可以是目录。 |
| --hsp-list | 否 | hsp的路径 | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果是多个hsp包需要”,“分隔。<br/>2.hsp文件路径也可以是目录。 | | --hsp-list | 否 | hsp的路径 | 1.hsp包文件路径,文件名必须以.hsp为后缀。如果是多个hsp包需要”,“分隔。<br/>2.hsp文件路径也可以是目录。 |
| --app-list | 否 | app的路径 | 1.app文件路径,文件名必须以.app为后缀。如果是多个app包需要用”,“分隔。<br/>2.app文件路径也可以是目录。<br/>3.--hap-list,--hsp-list,--app-list不可以都不传。 | | --app-list | 否 | app的路径 | 1.app文件路径,文件名必须以.app为后缀。如果是多个app包需要用”,“分隔。<br/>2.app文件路径也可以是目录。<br/>3.--hap-list,--hsp-list,--app-list不可以都不传。 |
| --force | 否 | 默认值为false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | | --out-path | 是 | NA | 目标文件路径,文件名必须以.hqf为后缀。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
#### 多工程打包hap合法性校验 #### 多工程打包hap合法性校验
...@@ -139,7 +140,7 @@ java -jar app_packing_tool.jar --mode hqf --json-path <option> --lib-path <optio ...@@ -139,7 +140,7 @@ java -jar app_packing_tool.jar --mode hqf --json-path <option> --lib-path <optio
| --mode | 是 | hqf | 打包类型。 | | --mode | 是 | hqf | 打包类型。 |
| --json-path | 是 | NA | .json文件路径,文件名必须为patch.json。 | | --json-path | 是 | NA | .json文件路径,文件名必须为patch.json。 |
| --lib-path | 否 | NA | lib库文件的路径。 | | --lib-path | 否 | NA | lib库文件的路径。 |
| --ets-path | | NA | 存放ets文件目录路径。 | | --ets-path | | NA | 存放ets文件目录路径。 |
| --out-path | 是 | NA | 目标文件路径,文件名必须以.hqf为后缀。 | | --out-path | 是 | NA | 目标文件路径,文件名必须以.hqf为后缀。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | | --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
...@@ -187,431 +188,4 @@ java -jar path\app_packing_tool.jar --mode hsp --json-path <option> --resources- ...@@ -187,431 +188,4 @@ java -jar path\app_packing_tool.jar --mode hsp --json-path <option> --resources-
| --js-path | 否 | NA | 存放js文件目录路径。 | | --js-path | 否 | NA | 存放js文件目录路径。 |
| --ets-path | 否 | NA | 存放ets文件目录路径。 | | --ets-path | 否 | NA | 存放ets文件目录路径。 |
| --out-path | 是 | NA | 目标文件路径,文件名必须以.hsp为后缀。 | | --out-path | 是 | NA | 目标文件路径,文件名必须以.hsp为后缀。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | | --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
\ No newline at end of file
## 拆包指令说明
### hap包模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将hap包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <option> --hap-path <options> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
| --mode | 是 | hap | 拆包类型。 |
| --hap-path | 是 | NA | hap包路径。 |
| --rpcid | 否 | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### har包模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将har包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <options> --har-path <option> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- |-------------| ----------------------------------------------------------- |
| --mode | 是 | har | 拆包类型。 |
| --har-path | 是 | NA | har包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### app包模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将app包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <options> --app-path <option> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- |-------------| ----------------------------------------------------------- |
| --mode | 是 | app | 拆包类型。 |
| --app-path | 是 | NA | app包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### 从hap包中获取rpcid文件
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,获取应用的rpcid。
#### 示例
```
java -jar app_unpacking_tool.jar --mode hap --rpcid true --hap-path <option> --out-path <option> --force true
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
| --mode | 是 | hap | 拆包类型 |
| --rpcid | 否 | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
| --hap-path | 是 | NA | hap包路径 |
| --out-path | 是 | NA | 拆包rpcid目标文件路径 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### hsp包模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将hsp包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <option> --hsp-path <options> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
|------------| ---------- | ------------- |------------------------------------|
| --mode | 是 | hsp | 拆包类型。 |
| --hsp-path | 是 | NA | hsp包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### appqf模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将appqf包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <option> --appqf-path <options> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
|--------------| ---------- |-------------|------------------------------------|
| --mode | 是 | appqf | 拆包类型。 |
| --appqf-path | 是 | NA | appqf包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
## 包解析接口
包解析接口用于对打好的hap包等进行解析,获取其中的配置文件等信息。
### 接口目录
| 类名 | 接口原型 | 类型 | 接口详细描述 |
| ------------------ | ------------------------------------------------------------ | -------- |-------------------------------------------------------------------|
| UncompressEntrance | UncomperssResult parseApp(String appPath,String parseMode,String deviceType,String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app包路径,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseApp(InputStream input,String parseMode,String deviceType,String hapName,String outPath) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app文件流,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseHap(String hapPath) | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包路径,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseHap(InputStream input) | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包文件流,解析参数 返回值:UncomperssResult |
## 拆包工具信息字段
### UncomperssResult(Bundle信息)结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------ | ------------------ |----------------------------------------| ---- |
| result | boolean | 标识此次解析是否成功 | NA |
| message | String | 解析失败时返回失败原因 | NA |
| packInfos | List\<PackInfo> | bundle中pack.info文件的packages信息 | NA |
| profileInfos | List\<profileInfo> | 应用的配置信息 | NA |
| icon | String | 返回入口组件的icon路径,如果没有入口组件,则返回第一个组件的icon信息 | NA |
| label | String | 返回入口组件的label,如果没有入口组件,则返回第一个组件的label信息 | NA |
### PackInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- | ------------- | --------------------------------------- | ---- |
| name | String | 包名 | NA |
| moduleName | String | Hap名称 | NA |
| moduleType | String | module的类型 | NA |
| deviceType | List\<String> | 表示当前hap包所支持的设备类型 | NA |
| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装 | NA |
### ProfileInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------ | ------------------------------ | ------------------------------------------ | ------------------------------------------------------------ |
| hapName | String | 标识当前解析的hap包名称 | NA |
| appInfo | AppInfo结构体(见下述AppInfo) | 标识APP信息的结构体(见下述AppInfo信息) | NA |
| deviceConfig | Map\<String,DeviceConfig> | 标识设备信息 | 存储类型为Map\<String,String>,存储设备类型名称及对应设备类型的信息,在stage模型中,这个字段存储在app结构体中 |
| hapInfo | HapInfo结构体(见下述HapInfo) | 标识hap包中module信息(见下述HapInfo信息) | NA |
### AppInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------------------------|---------|-----------------------------------------------------------------------------|-----------|
| bundleName | String | 标识app的包名称 | NA |
| bundleType | String | 标识bundle的类型,取值:<br/>- app:普通应用<br/>- atomicService:元服务 <br/>- shared:应用间共享库 | NA |
| vendor | String | 标识app的供应商信息 | NA |
| releatedBundleName | String | 标识app相关bundle的包名 | NA |
| versionName | String | 标识app中的versionName信息 | NA |
| versionCode | String | 标识app中的versionCode信息 | NA |
| targetApiVersion | int | 标识应用运行需要的API目标版本 | NA |
| compatibleApiVersion | int | 标识应用兼容的API版本 | NA |
| appName | String | 标识显示在桌面上的ability的label | NA |
| releaseType | String | 标识应用运行需要的API目标版本的类型 | NA |
| shellVersionCode | String | 标识HarmonyOS中的API版本 | NA |
| shellVersionName | String | 标识HarmonyOS中的API版本名称 | NA |
| multiFrameworkBundle | String | 标识双框架下app的bundleName | NA |
| debug | boolean | 标识应用是否可调试 | NA |
| icon | String | 标识应用的图标路径 | NA |
| label | String | 标识应用的label | NA |
| description | String | 标识应用的描述信息 | stage模型新增 |
| minCompatibleVersionCode | int | 标识应用能够兼容的最低版本号 | NA |
| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知 | stage模型新增 |
| jointUserid | String | 标签标识一个用的共享userid | FA模型特有 |
| process | String | 标识应用的进程名 | FA模型特有 |
| directLaunch | String | 标识应用是否支持未解锁直接启动模式 | NA |
| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知 | stage模型特有 |
### HapInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------ |------------------------------------------------|--------------------------------| ------------------------------------------------------- |
| packageStr | String | 标识应用的包信息 | FA模型特有 |
| name | String | 标识当前module的名字 | NA |
| description | String | 标识hap包的描述信息 | FA模型特有 |
| supporteModes | List\<String> | 标识hap包的支持的模式 | NA |
| abilities | AbilityInfo的数组 | 标识hap包ability信息 | NA |
| distro | Distro结构体 | 标识hap包的distro信息 | NA |
| deviceType | List\<String> | 标识hap可以运行在哪类设备上 | 对应stage模型中的deviceTypes |
| metadata | MetaData结构体(见下述metaData) | 标识hap的自定义元信息 | NA |
| isJs | boolean | 标识该应用是否是js应用 | FA模型特有 |
| reqPermissions | ReqPermission结构体数组(见下述ReqPermission) | 标识应用申请的权限的集合 | 对应stage模型的requestPermissions |
| commonEvents | CommonEvent结构体(见下述CommentEvent) | 标识静态事件 | NA |
| shortcuts | Shortcut结构体数组(见下述Shortcut) | 标识应用的shortcuts信息 | NA |
| distrofilter | Distrofilter结构体 | 标识应用市场按设备形态分发的信息 | NA |
| srcEntrance | String | 标识应用对应的入口代码路径 | stage模型新增 |
| process | String | 标识hap的进程名 | stage模型新增 |
| mainElement | String | 标识hap的入口ability名称或者extension名称 | stage模型新增,FA模型将mainAbility的值赋值给mainElement |
| unSyntax | String | 定义该JS Component的语法类型 | stage模型新增 |
| pages | List\<String> | 列举JS Component中每个页面信息 | stage模型新增 |
| extensionAbilities | List\<ExtensionAbilityInfo> | 描述extensionAbility的配置信息 | stage模型新增 |
| abilityFormInfos | List\<AbilityFormInfo> | 描述卡片的信息 | NA |
| moduleAtomicService| ModuleAtomicService结构体(见下述ModuleAtomicService) | 描述hap的元服务信息 | NA |
### AbilityInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|-------------------|--------------------------| ------------------------------------------------- | ------------------------------- |
| name | String | 标识当前ability的逻辑名 | NA |
| description | String | 标识ability的描述 | NA |
| icon | String | 标识ability图标 | NA |
| label | String | 标识ability对用户显示的名称 | NA |
| type | String | 标识ability类型 | Stage模型下该值直接赋予page类型 |
| uri | String | 标识ability的uri信息 | FA模型支持 |
| launchType | String | 标识ability中的launcherType信息 | NA |
### Distro结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- |---------| ------------------------------------------------------------ | ------------------------------------------------------------ |
| moduleName | String | 标识当前module的名字 | 对应Stage模型中module结构体中的moduleName字段 |
| moduleType | String | 标识当前hap的类型 | 对应Stage模型中module结构体中的moduleType字段 |
| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装 | 对应Stage模型中module结构体中的deliveryWithInstall字段 |
| installationFree | int | 标识当前hap是否支持免安装特性 | 对应Stage模型中module结构体中的installationFree字段,json文件中如果配置了该字段为true,返回1,配置为false,返回0,未配置返回2 |
| virtualMachine | String | 标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心 | 对应Stage模型中module结构体中的virtualMachine字段 |
### Metadata结构体信息
| 字段 | 类型 | 描述 | 备注 |
| -------------- |---------------------| -------------------------------- | ------------------------- |
| parameters | List\<MetadataInfo> | 标识Metadata的参数信息 | FA模型特有,stage模型废弃 |
| results | List\<MetadataInfo> | 标识Metadata的results信息 | FA模型特有,stage模型废弃 |
| customizeDatas | List\<CustomizeData> | 标识Metadata的customizeDatas信息 | NA |
### MetadataInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ----------- | ------ | --------------------------------- | ------------------------- |
| name | String | 标识MetadataInfo的name信息 | FA模型特有,stage模型废弃 |
| description | String | 标识MetadataInfo的description信息 | FA模型特有,stage模型废弃 |
| type | String | 标识MetadataInfo的type信息 | FA模型特有,stage模型废弃 |
### CustomizeData结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ----- | ------ | ---------------------------- | ----------------------- |
| name | String | 标识CustomizeData的name信息 | 对应stage模型的metadata |
| value | String | 标识CustomizeData的value信息 | 对应stage模型的metadata |
| extra | String | 标识CustomizeData的extra信息 | 对应stage模型的metadata |
### ReqPermission结构体信息
| 字段 | 类型 | 描述 | 备注 |
| --------- | ---------------------------------- |----------------------------------------------------| ---- |
| name | String | 标识ReqPermission的名称信息 | NA |
| reason | String | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因 | NA |
| usedScene | UsedScene结构体(见下述UsedScene) | 描述权限使用的场景和时机。场景类型有:ability、调用时机(when),可配置多个ability | NA |
### UsedScene结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------- | ------------- | ------------------------------------------------------------ | ---- |
| ability | List\<String> | 标识需要使用到该权限的元能力(ability),该标签值为数组形式 | NA |
| when | String | 标识使用该权限的时机,值为inuse/always,表示为仅允许前台使用和前后台都可使用 | NA |
### ShortCut结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ---------- | ---------------------- | :----------------------------------------------------------- | ---- |
| shortcutId | String | 标识ShortCut的Id | NA |
| label | String | 标识ShortCut的标签信息 | NA |
| icon | String | 标识ShortCut的图标信息 | NA |
| intents | IntentInfo结构体的列表 | 标识快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass,targetBundle | NA |
### IntentInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------ | ------ | ---------------- | ---- |
| targetClass | String | 快捷方式目标类型 | NA |
| targetBundle | String | 快捷方式目标包名 | NA |
### DistroFilter结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------- | ------------------- | ------------------------------------- | ---- |
| apiVersion | ApiVersion结构体 | 标识DistroFilter中的apiVersion信息 | NA |
| screenShape | ScreenShape结构体 | 标识DistroFilter中的screenShape信息 | NA |
| screenDensity | ScreenDensity结构体 | 标识DistroFilter中的screenDensity信息 | NA |
| screenWindow | ScreenWindow结构体 | 标识DistroFilter中的screenWindow信息 | NA |
| countryCode | CountryCode结构体 | 标识DistroFilter中的countryCode信息 | NA |
### ApiVersion结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenShape结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenDensity结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenWindow结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### CountryCode结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ExtensionAbilityInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| --------------- | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| name | String | 标识当前extensionAbility的逻辑名 | stage模型支持 |
| srcEntrance | String | 标识extensionAbility所对应的js代码路径 | stage模型支持 |
| icon | String | 标签标识extensionAbility图标 | stage模型支持 |
| label | String | 标识extensionAbility对用户显示的名称 | stage模型支持 |
| description | String | 标识extensionAbility的描述 | stage模型支持 |
| type | String | 标识extensionAbility的类型:form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup | stage模型支持,目前仅解析了form、staticSubscriber的信息、其他类型(如:workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup)暂未解析 |
| permissions | List\<String> | 标识被其它应用的ability调用时需要申请的权限的集合 | stage模型支持 |
| readPermission | String | 标识读取ability的数据所需的权限 | stage模型支持 |
| writePermission | String | 标识向ability写数据所需的权限 | stage模型支持 |
| visible | boolean | 标识extensionAbility是否可以被其它应用调用 | stage模型支持 |
| skills | SkillInfo数组 | 标识extensionAbility能够接收的意图的特征集 | stage模型支持 |
| metadata | CustomizeData信息 | 标识extensionAbility的元信息 | 将metadata中的信息赋值到CustomizeData中 |
| uri | String | 标识extensionAbility提供的数据uri | stage模型支持 |
### SkillInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| -------- | ------------------- |----------------------| ---- |
| actions | List\<String> | 标识能够接收的意图的action值的集合 | NA |
| entities | List\<String> | 标识能够接收的意图的元能力的类别集合 | NA |
| uriInfos | List\<String> | 标识意图的uri集合 | NA |
### UriInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------- | ------ |------------------------| ---- |
| schema | String | 标识ModuleUriInfo的范式信息 | NA |
| host | String | 标识ModuleUriInfo的宿主信息 | NA |
| port | String | 标识ModuleUriInfo的端口信息 | NA |
| pathStartWith | String | 标识ModuleUriInfo的路径前缀 | NA |
| pathRegex | String | 标识ModuleUriInfo的路径正则信息 | NA |
| path | String | 标识ModuleUriInfo的路径信息 | NA |
| type | String | 标识ModuleUriInfo的种类 | NA |
### AbilityFormInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- | ------------- | ------------------------------------------------------------ |-----------|
| name | String | 标识forms的名称 | NA |
| description | String | 标识forms的描述 | stage模型新增 |
| type | String | 标签标识卡片的类型 | NA |
| src | String | 标签JS卡片对应的UI代码 | NA |
| isDefault | boolean | 标识该卡片是否为默认卡片,每个hap有且只能有一个默认卡片 | NA |
| colorMode | String | 标识卡片的色调,取值为auto、dark、light其中之一 | NA |
| updateEnabled | boolean | 标识该卡片是否支持定时刷新 | NA |
| scheduledUpdateTime | String | 标签标识卡片顶点刷新的时间,采用24小时计数,精确到分钟 | NA |
| updateDuration | int | 标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值 | NA |
| supportDimensions | List\<String> | 标识卡片外观规格,取值为”1 * 2“,”2 * 2“,”2 * 4“,”4 * 4“ | NA |
| defaultDimension | String | 标识卡片默认外观规格,取值必须在supportDimensions配置的列表中 | NA |
| formConfigAbility | String | 标识卡片调整的Ability名称 | NA |
| formVisibleNotify | String | 标识卡片是否被允许使用卡片可见性通知 | NA |
| MetaData | MetaData | 标识卡片的自定义信息 | NA |
| 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 |
### CommonEvent结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ---------- | ------------- | -------------------------------------- | ------------------------------------------------ |
| name | String | 当前静态公共事件对应的类名 | Stage模型从staticSubscriber类型的Extension中获取 |
| permission | String | 标识实现该静态公共事件需要申请的权限 | Stage模型从staticSubscriber类型的Extension中获取 |
| data | List\<String> | 当前静态公共时间需要携带的额外数据数组 | Stage模型从staticSubscriber类型的Extension中获取 |
| type | List\<String> | 配置当前静态公共时间的类别数组 | Stage模型从staticSubscriber类型的Extension中获取 |
| events | List\<String> | 标识能够接收的意图的event值的集合 | Stage模型从staticSubscriber类型的Extension中获取 |
### DependencyItem结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------| ------ |--------------| ---- |
| bundleName | String | 共享包的bundleName | NA |
| moduleName | String | 共享包的moduleName | NA |
| versionCode | String | 共享包的版本号 | NA |
### ModuleAtomicService结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------|----------------------------------------|----------------| ---- |
| preloadItems | PreloadItem对象数组 | 预加载对象 | NA |
### PreloadItem结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------|-----|---------| ---- |
| moduleName | 字符串 | 预加载的模块名 | NA |
# 拆包工具 # 拆包工具
拆包工具是OpenHarmony提供的一种调测工具,支持通过命令行方式将HAP拆分为文件夹或者将App Pack(Application Package)拆分为HAP 拆包工具是OpenHarmony提供的一种调测工具,支持通过命令行方式将hap、har、hsp、app等文件解压成文件夹,并且提供Java接口对hap、app、hsp等文件进行解析
拆包所用的app_unpacking_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。 拆包所用的app_unpacking_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。
- HAP拆包命令 ## 拆包指令说明
```bash ### hap包模式拆包指令
java -jar app_unpacking_tool.jar --mode <option> --hap-path <option> --out-path <option> --force <option>
``` 开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将hap包解压出来。
命令参数含义及规范请见下表。 #### 示例
| 指令 | 是否必选项 | 描述 | ```
| -------- | -------- | -------- | java -jar app_unpacking_tool.jar --mode <option> --hap-path <options> --out-path [option] --force [option]
| --mode | 是 | 拆包类型,此处为hap。 | ```
| --hap-path | 是 | HAP路径。 |
| --rpcid | 否 | 是否单独将rpcid文件从HAP中提取到指定目录,如果为true,将仅提取rpcid文件,不对HAP进行拆包。 | #### 参数含义及规范
| --out-path | 是 | 拆包目标文件路径。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | | 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
- App包拆包命令 | --mode | 是 | hap | 拆包类型。 |
| --hap-path | 是 | NA | hap包路径。 |
```bash | --rpcid | 否 | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
java -jar app_unpacking_tool.jar --mode <option> --app-path <option> --out-path <option> --force <option> | --out-path | 是 | NA | 拆包目标文件路径。 |
``` | --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
命令参数含义及规范请见下表。 ### har包模式拆包指令
| 指令 | 是否必选项 | 描述 | 开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将har包解压出来。
| -------- | -------- | -------- |
| --mode | 是 | 拆包类型,此处为hap。 | #### 示例
| --app-path | 是 | app包路径。 |
| --out-path | 是 | 拆包目标文件路径。 | ```
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 | java -jar app_unpacking_tool.jar --mode <options> --har-path <option> --out-path [option] --force [option]
```
- 从HAP中获取rpcid文件命令
#### 参数含义及规范
```bash
java -jar app_unpacking_tool.jar --mode <option> --rpcid <option> --hap-path <option> --out-path <option> --force <option> | 指令 | 是否必选项 | 选项 | 描述 |
``` | ---------- | ---------- |-------------| ----------------------------------------------------------- |
| --mode | 是 | har | 拆包类型。 |
命令参数含义及规范请见下表。 | --har-path | 是 | NA | har包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| 指令 | 是否必选项 | 描述 | | --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
| -------- | -------- | -------- |
| --mode | 是 | 拆包类型,此处为hap。 | ### app包模式拆包指令
| --rpcid | 否 | 是否单独将rpcid文件从HAP中提取到指定目录,如果为true,将仅提取rpcid文件,不对HAP进行拆包。 |
| --out-path | 是 | 拆包rpcid目标文件路径。 | 开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将app包解压出来。
| --hap-path | 是 | HAP路径。 |
#### 示例
```
java -jar app_unpacking_tool.jar --mode <options> --app-path <option> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- |-------------| ----------------------------------------------------------- |
| --mode | 是 | app | 拆包类型。 |
| --app-path | 是 | NA | app包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### 从hap包中获取rpcid文件
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,获取应用的rpcid。
#### 示例
```
java -jar app_unpacking_tool.jar --mode hap --rpcid true --hap-path <option> --out-path <option> --force true
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
| ---------- | ---------- | ------------- | ------------------------------------------------------------ |
| --mode | 是 | hap | 拆包类型 |
| --rpcid | 否 | true或者false | 是否单独将rpcid文件从hap包中提取到指定目录,如果为true,将仅提取rpcid文件,不对hap包进行拆包。 |
| --hap-path | 是 | NA | hap包路径 |
| --out-path | 是 | NA | 拆包rpcid目标文件路径 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### hsp包模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将hsp包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <option> --hsp-path <options> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
|------------| ---------- | ------------- |------------------------------------|
| --mode | 是 | hsp | 拆包类型。 |
| --hsp-path | 是 | NA | hsp包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
### appqf模式拆包指令
开发者可以使用拆包工具的jar包对应用进行拆包,通过传入拆包选项、文件路径,将appqf包解压出来。
#### 示例
```
java -jar app_unpacking_tool.jar --mode <option> --appqf-path <options> --out-path [option] --force [option]
```
#### 参数含义及规范
| 指令 | 是否必选项 | 选项 | 描述 |
|--------------| ---------- |-------------|------------------------------------|
| --mode | 是 | appqf | 拆包类型。 |
| --appqf-path | 是 | NA | appqf包路径。 |
| --out-path | 是 | NA | 拆包目标文件路径。 |
| --force | 否 | true或者false | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
## 包解析接口
包解析接口用于对打好的hap、app、hsp等包等进行解析,获取其中的配置文件等信息。
### 接口目录
| 类名 | 接口原型 | 类型 | 接口详细描述 |
| ------------------ | ------------------------------------------------------------ | -------- |-------------------------------------------------------------------|
| UncompressEntrance | UncomperssResult parseApp(String appPath,String parseMode,String deviceType,String hapName) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app包路径,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseApp(InputStream input,String parseMode,String deviceType,String hapName,String outPath) | Java接口 | 接口功能:根据参数解析app包的pack.info信息 输入参数:app文件流,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseHap(String hapPath) | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包路径,解析参数 返回值:UncomperssResult |
| UncompressEntrance | UncomperssResult parseHap(InputStream input) | Java接口 | 接口功能:根据参数解析app包的json配置文件 输入参数:hap包文件流,解析参数 返回值:UncomperssResult |
## 拆包工具信息字段
### UncomperssResult(Bundle信息)结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ----------------| ------------------ |----------------------------------------| ---- |
| result | boolean | 标识此次解析是否成功 | NA |
| message | String | 解析失败时返回失败原因 | NA |
| packInfos | List\<PackInfo> | bundle中pack.info文件的packages信息 | NA |
| profileInfos | List\<profileInfo> | 应用的配置信息 | NA |
| profileInfosStr | List\<String> | 应用的配置信息 | NA |
| icon | String | 返回入口组件的icon路径,如果没有入口组件,则返回第一个组件的icon信息 | NA |
| label | String | 返回入口组件的label,如果没有入口组件,则返回第一个组件的label信息 | NA |
### PackInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- | ------------- | --------------------------------------- | ---- |
| name | String | 包名 | NA |
| moduleName | String | Hap名称 | NA |
| moduleType | String | module的类型 | NA |
| deviceType | List\<String> | 表示当前hap包所支持的设备类型 | NA |
| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装 | NA |
### ProfileInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------ | ------------------------------ | ------------------------------------------ | ------------------------------------------------------------ |
| hapName | String | 标识当前解析的hap包名称 | NA |
| appInfo | AppInfo结构体(见下述AppInfo) | 标识APP信息的结构体(见下述AppInfo信息) | NA |
| deviceConfig | Map\<String,DeviceConfig> | 标识设备信息 | 存储类型为Map\<String,String>,存储设备类型名称及对应设备类型的信息,在stage模型中,这个字段存储在app结构体中 |
| hapInfo | HapInfo结构体(见下述HapInfo) | 标识hap包中module信息(见下述HapInfo信息) | NA |
### AppInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------------------------|---------|-------------------------------------------------------------------------------|-------------|
| bundleName | String | 标识app的包名称 | NA |
| vendor | String | 标识app的供应商信息 | NA |
| relatedBundleName | String | 标识app相关bundle的包名 | NA |
| versionName | String | 标识app中的versionName信息 | NA |
| versionCode | String | 标识app中的versionCode信息 | NA |
| targetApiVersion | int | 标识应用运行需要的API目标版本 | NA |
| compatibleApiVersion | int | 标识应用兼容的API版本 | NA |
| appName | String | 标识显示在桌面上的ability的label | NA |
| appNameEN | String | 标识显示在桌面上的ability的label | NA |
| releaseType | String | 标识应用运行需要的API目标版本的类型 | NA |
| shellVersionCode | String | 标识HarmonyOS中的API版本 | NA |
| shellVersionName | String | 标识HarmonyOS中的API版本名称 | NA |
| multiFrameworkBundle | String | 标识双框架下app的bundleName | NA |
| debug | boolean | 标识应用是否可调试 | NA |
| icon | String | 标识应用的图标路径 | NA |
| label | String | 标识应用的label | NA |
| description | String | 标识应用的描述信息 | stage模型新增 |
| minCompatibleVersionCode | int | 标识应用能够兼容的最低版本号 | NA |
| distributedNotificationEnabled | boolean | 标记该应用是否开启分布式通知 | stage模型新增 |
| bundleType | String | 标识bundle的类型,取值:<br/>- app:普通应用<br/>- atomicService:元服务 <br/>- shared:应用间共享库 | NA |
| compileSdkVersion | String | 标识编译该应用时使用的sdk版本 | 仅限API10及以后的应用 |
| compileSdkType | String | 标识编译该应用时使用的sdk类别 | 仅限API10及以后的应用 |
| labels | HashMap\<String, String> | 标识多语言应用程序AppJson的标签。 | NA |
| descriptions | HashMap\<String, String> | 标识多语言应用程序AppJson的说明。 | NA |
### HapInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ---------------------|-----------------------------------------------|------------------------------------| ---------------------------------------|
| appModel | AppModel枚举值 | 标识应用的框架模型<br/>- FA:FA模型<br/>- STAGE:Stage模型 | NA |
| packageStr | String | 标识应用的包信息 | FA模型特有 |
| name | String | 标识当前module的名字 | NA |
| description | String | 标识hap包的描述信息 | FA模型特有 |
| supportedModes | List\<String> | 标识hap包的支持的模式 | NA |
| abilities | List\<AbilityInfo> | 标识hap包ability信息 | NA |
| defPermissions | List\<DefPermission> | 标识hap包DefPermission信息 | NA |
| definePermissions | List\<DefinePermission> | 标识hap包DefinePermission信息 | NA |
| defPermissionsGroups | List\<DefPermissionsGroups> | 标识hap包DefPermissionsGroups 信息 | NA |
| distro | Distro结构体 | 标识hap包的distro信息 | NA |
| reqCapabilities | List\<String> | 标识hap包reqCapabilities信息 | NA |
| deviceType | List\<String> | 标识hap可以运行在哪类设备上 | 对应stage模型中的deviceTypes |
| metaData | MetaData结构体(见下述metaData) | 标识hap的自定义元信息 | NA |
| dependencies | List\<DependencyItem> | 标识hap包DependencyItem信息 | NA |
| isJs | boolean | 标识该应用是否是js应用 | FA模型特有 |
| reqPermissions | list\<ReqPermission> | 标识应用申请的权限的集合 | 对应stage模型的requestPermissions |
| commonEvents | CommonEvent结构体(见下述CommentEvent) | 标识静态事件 | NA |
| shortcuts | list\<Shortcut> | 标识应用的shortcuts信息 | NA |
| distroFilter | DistroFilter结构体 | 标识应用市场按设备形态分发的信息 | NA |
| srcEntrance | String | 标识应用对应的入口代码路径 | stage模型新增 |
| process | String | 标识hap的进程名 | stage模型新增 |
| mainElement | String | 标识hap的入口ability名称或者extension名称 | stage模型新增,FA模型将mainAbility的值赋值给mainElement |
| uiSyntax | String | 定义该JS Component的语法类型 | stage模型新增 |
| pages | List\<String> | 列举JS Component中每个页面信息 | stage模型新增 |
| extensionAbilityInfos| List\<ExtensionAbilityInfo> | 描述extensionAbility的配置信息 | stage模型新增 |
| moduleAtomicService | ModuleAtomicService结构体(见下述ModuleAtomicService) | 描述hap的元服务信息 | NA |
| formInfos | List\<AbilityFormInfo> | 描述卡片的信息 | NA |
| descriptions | HashMap\<String, String> | 标识hap的说明信息 | NA |
### AbilityInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|-------------------|--------------------------| ------------------------------------------------- | ------------------------------- |
| name | String | 标识当前ability的逻辑名 | NA |
| description | String | 标识ability的描述 | NA |
| descriptionRes | String | 标识ability资源的描述 | NA |
| icon | String | 标识ability图标 | NA |
| iconPath | String | 标识ability图标路径 | NA |
| label | String | 标识ability对用户显示的名称 | NA |
| labelRes | String | 标识ability对用户显示的名称资源 | NA |
| type | String | 标识ability类型 | Stage模型下该值直接赋予page类型 |
| formsEnabled | boolean | 标识ability卡片是否使能 | NA |
| formInfo | FormInfo结构体 | 描述卡片的信息 | NA |
| uri | String | 标识ability的uri信息 | FA模型支持 |
| launchType | String | 标识ability中的launcherType信息 | NA |
| orientation | String | 标识ability中的orientation信息 | NA |
| visible | boolean | 标识ability中的visible信息 | NA |
| grantPermission | boolean | 标识ability中的grantPermission信息 | NA |
| readPermission | String | 标识ability中的readPermission信息 | NA |
| writePermission | String | 标识ability中的writePermission信息 | NA |
| uriPermissionMode | String | 标识ability中的uriPermissionMode信息 | NA |
| uriPermissionPath | String | 标识ability中的uriPermissionPath信息 | NA |
| directLaunch | boolean | 标识ability中的directLaunch信息 | NA |
| mission | String | 标识ability中的mission信息 | NA |
| targetAbility | String | 标识ability中的targetAbility信息 | NA |
| multiUserShared | boolean | 标识ability中的multiUserShared信息 | NA |
| supportPipMode | boolean | 标识ability中的supportPipMode信息 | NA |
| srcLanguage | String | 标识ability中的srcLanguage信息 | NA |
| srcPath | String | 标识ability中的srcPath信息 | NA |
| srcEntrance | String | 标识ability中的srcEntrance信息 | NA |
| continuable | boolean | 标识ability中的continuable信息 | NA |
| metaData | MetaData结构体(见下述MetaData) | 标识ability的自定义元信息 | NA |
| configChanges | List\<String> | 标识ability中的configChanges信息 | NA |
| formInfos | List\<AbilityFormInfo> | 标识ability中的forms信息 | NA |
| permissions | List\<String> | 标识ability中的permissions信息 | NA |
| skills | List\<SkillInfo> | 标识ability中的skills信息 | NA |
| backgroundModes | List\<String> | 标识ability中的backgroundModes信息 | NA |
| labels | HashMap\<String, String> | 标识多语言下ability对用户显示的名称 | NA |
| descriptions | HashMap\<String, String> | 标识多语言下ability的描述 | NA |
### Distro结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- |---------| --------------------------------------- | ------------------------------------------------------------ |
| moduleName | String | 标识当前module的名字 | 对应Stage模型中module结构体中的moduleName字段 |
| moduleType | String | 标识当前hap的类型 | 对应Stage模型中module结构体中的moduleType字段 |
| deliveryWithInstall | boolean | 标识当前hap是否在用户主动安装的时候安装 | 对应Stage模型中module结构体中的deliveryWithInstall字段 |
| installationFree | int | 标识当前hap是否支持免安装特性 | 对应Stage模型中module结构体中的installationFree字段,json文件中如果配置了该字段为true,返回1,配置为false,返回0,未配置返回2 |
| virtualMachine | String | 标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心 | 对应Stage模型中module结构体中的virtualMachine字段 |
### MetaData结构体信息
| 字段 | 类型 | 描述 | 备注 |
| -------------- |----------------------| -------------------------------- | ------------------------- |
| parameters | List\<MetaDataInfo> | 标识Metadata的参数信息 | FA模型特有,stage模型废弃 |
| results | List\<MetaDataInfo> | 标识Metadata的results信息 | FA模型特有,stage模型废弃 |
| customizeDatas | List\<CustomizeData> | 标识Metadata的customizeDatas信息 | NA |
### MetaDataInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ----------- | ------ | --------------------------------- | ------------------------- |
| name | String | 标识MetaDataInfo的name信息 | FA模型特有,stage模型废弃 |
| description | String | 标识MetaDataInfo的description信息 | FA模型特有,stage模型废弃 |
| type | String | 标识MetaDataInfo的type信息 | FA模型特有,stage模型废弃 |
### CustomizeData结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ----- | ------ | ---------------------------- | ----------------------- |
| name | String | 标识CustomizeData的name信息 | 对应stage模型的metadata |
| value | String | 标识CustomizeData的value信息 | 对应stage模型的metadata |
| extra | String | 标识CustomizeData的extra信息 | 对应stage模型的metadata |
### ReqPermission结构体信息
| 字段 | 类型 | 描述 | 备注 |
| --------- | ---------------------------------- |------------------------------------------------------------| ---- |
| name | String | 标识ReqPermission的名称信息 | NA |
| reason | String | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因 | NA |
| usedScene | UsedScene结构体(见下述UsedScene) | 描述权限使用的场景和时机。场景类型有:ability、调用时机(when),可配置多个ability | NA |
| reasons | HashMap\<String, String> | 当申请的权限为user_grant权限时此字段必填,描述申请权限的原因 | NA |
### UsedScene结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------- | ------------- | ------------------------------------------------------------ | ---- |
| ability | List\<String> | 标识需要使用到该权限的元能力(ability),该标签值为数组形式 | NA |
| when | String | 标识使用该权限的时机,值为inuse/always,表示为仅允许前台使用和前后台都可使用 | NA |
### Shortcut结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ---------- | ---------------------- | :----------------------------------------------------------- | ---- |
| shortcutId | String | 标识ShortCut的Id | NA |
| label | String | 标识ShortCut的标签信息 | NA |
| icon | String | 标识ShortCut的图标信息 | NA |
| intents | List\<IntentInfo> | 标识快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass,targetBundle | NA |
| labels | HashMap\<String, String> | 标识多语言下ShortCut对用户显示的名称 | NA |
### IntentInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------ | ------ | ---------------- | ---- |
| targetClass | String | 快捷方式目标类型 | NA |
| targetBundle | String | 快捷方式目标包名 | NA |
### DistroFilter结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------- | ------------------- | ------------------------------------- | ---- |
| apiVersion | ApiVersion结构体 | 标识DistroFilter中的apiVersion信息 | NA |
| screenShape | ScreenShape结构体 | 标识DistroFilter中的screenShape信息 | NA |
| screenDensity | ScreenDensity结构体 | 标识DistroFilter中的screenDensity信息 | NA |
| screenWindow | ScreenWindow结构体 | 标识DistroFilter中的screenWindow信息 | NA |
| countryCode | CountryCode结构体 | 标识DistroFilter中的countryCode信息 | NA |
### ApiVersion结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenShape结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenDensity结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ScreenWindow结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### CountryCode结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------ | ------------- | ------------------------ | ---- |
| policy | String | 标识结构体中的policy信息 | NA |
| value | List\<String> | 标识结构体中的value信息 | NA |
### ExtensionAbilityInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| --------------- | ------------------------ | ----------------------------------------------------- | ----------------------------------- |
| name | String | 标识当前extensionAbility的逻辑名 | stage模型支持 |
| srcEntrance | String | 标识extensionAbility所对应的js代码路径 | stage模型支持 |
| icon | String | 标签标识extensionAbility图标 | stage模型支持 |
| label | String | 标识extensionAbility对用户显示的名称 | stage模型支持 |
| description | String | 标识extensionAbility的描述 | stage模型支持 |
| type | String | 标识extensionAbility的类型:form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup | stage模型支持,目前仅解析了form、staticSubscriber的信息、其他类型(如:workScheduler、inputMethod、service、accessibility、dataShare、fileShare、wallpaper、backup)暂未解析 |
| permissions | List\<String> | 标识被其它应用的ability调用时需要申请的权限的集合 | stage模型支持 |
| readPermission | String | 标识读取ability的数据所需的权限 | stage模型支持 |
| writePermission | String | 标识向ability写数据所需的权限 | stage模型支持 |
| visible | boolean | 标识extensionAbility是否可以被其它应用调用 | stage模型支持 |
| skills | List\<SkillInfo> | 标识extensionAbility能够接收的意图的特征集 | stage模型支持 |
| metadataInfos | List\<ModuleMetadataInfo>| 标识extensionAbility能够接收的元数据信息 | stage模型支持 |
| metadata | MetaData结构体 | 标识extensionAbility的元信息 | 将metadata中的信息赋值到CustomizeData中 |
| uri | String | 标识extensionAbility提供的数据uri | stage模型支持 |
| descriptions | HashMap\<String, String> | 标识多语言下extensionAbility的描述 | NA |
| labels | HashMap\<String, String> | 标识多语言下extensionAbility对用户显示的名称 | NA |
### SkillInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| -------- | ------------------- |----------------------| ---- |
| actions | List\<String> | 标识能够接收的意图的action值的集合 | NA |
| entities | List\<String> | 标识能够接收的意图的元能力的类别集合 | NA |
### UriInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------- | ------ |------------------------| ---- |
| schema | String | 标识ModuleUriInfo的范式信息 | NA |
| host | String | 标识ModuleUriInfo的宿主信息 | NA |
| port | String | 标识ModuleUriInfo的端口信息 | NA |
| pathStartWith | String | 标识ModuleUriInfo的路径前缀 | NA |
| pathRegex | String | 标识ModuleUriInfo的路径正则信息 | NA |
| path | String | 标识ModuleUriInfo的路径信息 | NA |
| type | String | 标识ModuleUriInfo的种类 | NA |
### AbilityFormInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ------------------- | -------------------------| ------------------------------------------------------------ |-----------|
| name | String | 标识forms的名称 | NA |
| type | String | 标签标识卡片的类型 | NA |
| updateEnabled | boolean | 标识该卡片是否支持定时刷新 | NA |
| scheduledUpdateTime | String | 标签标识卡片顶点刷新的时间,采用24小时计数,精确到分钟 | NA |
| updateDuration | int | 标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值 | NA |
| supportDimensions | List\<String> | 标识卡片外观规格,取值为”1 * 2“,”2 * 2“,”2 * 4“,”4 * 4“ | NA |
| defaultDimension | String | 标识卡片默认外观规格,取值必须在supportDimensions配置的列表中 | NA |
| MetaData | MetaData | 标识卡片的自定义信息 | NA |
| description | String | 标识forms的描述 | stage模型新增 |
| src | String | 标签JS卡片对应的UI代码 | NA |
| windowInfo | ModuleWindowInfo结构体 | 标签能力窗体的窗口。 | NA |
| isDefault | boolean | 标识该卡片是否为默认卡片,每个hap有且只能有一个默认卡片 | NA |
| colorMode | String | 标识卡片的色调,取值为auto、dark、light其中之一 | NA |
| formConfigAbility | String | 标识卡片调整的Ability名称 | NA |
| formVisibleNotify | String | 标识卡片是否被允许使用卡片可见性通知 | NA |
| 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 |
| descriptions | HashMap\<String, String> | 标识多语言下ability的描述 | NA |
### CommonEvent结构体信息
| 字段 | 类型 | 描述 | 备注 |
| ---------- | ------------- | -------------------------------------- | ------------------------------------------------ |
| name | String | 当前静态公共事件对应的类名 | Stage模型从staticSubscriber类型的Extension中获取 |
| permission | String | 标识实现该静态公共事件需要申请的权限 | Stage模型从staticSubscriber类型的Extension中获取 |
| data | List\<String> | 当前静态公共时间需要携带的额外数据数组 | Stage模型从staticSubscriber类型的Extension中获取 |
| type | List\<String> | 配置当前静态公共时间的类别数组 | Stage模型从staticSubscriber类型的Extension中获取 |
| events | List\<String> | 标识能够接收的意图的event值的集合 | Stage模型从staticSubscriber类型的Extension中获取 |
### DependencyItem结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------| ------ |--------------| ---- |
| bundleName | String | 共享包的bundleName | NA |
| moduleName | String | 共享包的moduleName | NA |
| versionCode | String | 共享包的版本号 | NA |
### ModuleAtomicService结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------|------------------------|----------------| ---- |
| preloadItems | list\<PreloadItem> | 预加载对象 | NA |
### PreloadItem结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------|--------|----------------| ---- |
| moduleName | String | 预加载的模块名 | NA |
### DeviceConfig结构体信息
| 字段 | 类型 | 描述 | 备注 |
|--------------------------------|-------- |------------------------------------------| ---- |
| targetReqSdk | String | 标识应用程序DeviceConfig的目标请求Sdk版本 | NA |
| compatibleReqSdk | String | 标识应用程序DeviceConfig的兼容请求Sdk版本 | NA |
| jointUserid | String | 标识应用程序DeviceConfig的jointUserid | NA |
| process | String | 标识应用程序DeviceConfig的进程 | NA |
| arkFlag | String | 标识应用程序DeviceConfig的arkFlag | NA |
| targetArkVersion | String | 标识应用程序DeviceConfig的targetArkVersion | NA |
| compatibleArkVersion | String | 标识应用程序DeviceConfig的兼容ArkVersion | NA |
| directLaunch | boolean | 标识应用程序DeviceConfig的直接启动 | NA |
| distributedNotificationEnabled | boolean | 标识应用程序AppJson的distributedNotificationEnabled | NA |
### DefPermission结构体信息
| 字段 | 类型 | 描述 | 备注 |
|----------------|--------------------------|-------------------------------------------| ---- |
| name | String | 标识指示DefPermission的名称 | NA |
| grantMode | String | 标识DefPermission的grantMode | NA |
| group | String | 标识DefPermission的组 | NA |
| label | String | 标识DefPermission的标签 | NA |
| description | String | 标识DefPermission的描述 | NA |
| availableScope | List\<String> | 标识DefPermission的可用范围 | NA |
| labels | HashMap\<String, String> | 标识多语言应用程序DefPermission的标签 | NA |
| descriptions | HashMap\<String, String> | 标识多语言应用程序DefPermission的说明 | NA |
### DefinePermission结构体信息
| 字段 | 类型 | 描述 | 备注 |
|------------------------|--------------------------|----------------------------------------------------| ---- |
| name | String | 标识DefPermission的名称 | NA |
| grantMode | String | 标识DefPermission的grantMode | NA |
| availableLevel | String | 标识DefPermission的组 | NA |
| provisionEnable | boolean | 标识模块定义权限的提供启用 | NA |
| distributedSceneEnable | boolean | 标识ModuleDefinePermissions的distributedSceneEnable | NA |
| label | String | 标识DefPermission的标签 | NA |
| description | String | 标识DefPermission的描述 | NA |
| descriptions | HashMap\<String, String> | 标识多语言应用程序DefPermission的说明 | NA |
| labels | HashMap\<String, String> | 标识多语言应用程序DefPermission的标签 | NA |
### DefPermissionsGroups结构体信息
| 字段 | 类型 | 描述 | 备注 |
|-------------|---------|------------------------------| ---- |
| name | String | 标识DefPermissionGroup的名称 | NA |
| order | String | 标识DefPermissionGrou的顺序 | NA |
| icon | String | 标识DefPermissionGroup的图标 | NA |
| label | String | 标识DefPermissionGroup的标签 | NA |
| description | String | 标识DefPermissionGroup的描述 | NA |
| request | boolean | 标识DefPermissionGroup的请求 | NA |
### FormInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|---------------|---------------|--------------------------| ---- |
| formEntity | List\<String> | 标识formInfo的formEntity | NA |
| minHeight | String | 标识formInfo的最小高度 | NA |
| defaultHeight | String | 标识formInfo的默认高度 | NA |
| minWidth | String | 标识formInfo的最小宽度 | NA |
| defaultWidth | String | 标识formInfo的默认宽度 | NA |
### ModuleMetadataInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|----------|---------|------------------------------| ---- |
| name | String | 标识ModuleMetadataInfo的名称 | NA |
| value | String | 标识ModuleMetadataInfo的值 | NA |
| resource | String | 标识ModuleMetadataInfo的资源 | NA |
### ModuleWindowInfo结构体信息
| 字段 | 类型 | 描述 | 备注 |
|-----------------|---------|-------------------------------------| ---- |
| designWidth | int | 标识模块已用场景的设计宽度 | NA |
| autoDesignWidth | boolean | 标识ModuleUsedScene的autoDesignWidth | NA |
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册