1# @ohos.app.ability.quickFixManager (quickFixManager) 2 3quickFixManager模块提供快速修复的能力,快速修复是OpenHarmony提供给开发者的一种技术手段,支持开发者以远快于(小时级、分钟级)应用升级的方式进行缺陷修复。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import quickFixManager from '@ohos.app.ability.quickFixManager'; 13``` 14 15## HapModuleQuickFixInfo 16 17hap级别的快速修复信息。 18 19**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 20 21**系统API**: 此接口为系统接口,三方应用不支持调用。 22 23| 名称 | 类型 | 必填 | 说明 | 24| ----------- | -------------------- | ---- | ------------------------------------------------------------ | 25| moduleName | string | 是 | hap包的名称。 | 26| originHapHash | string | 是 | 指示hap的哈希值。 | 27| quickFixFilePath | string | 是 | 指示快速修复文件的安装路径。 | 28 29## ApplicationQuickFixInfo 30 31应用级别的快速修复信息。 32 33**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 34 35**系统API**: 此接口为系统接口,三方应用不支持调用。 36 37| 名称 | 类型 | 必填 | 说明 | 38| ----------- | -------------------- | ---- | ------------------------------------------------------------ | 39| bundleName | string | 是 | 应用的包名。 | 40| bundleVersionCode | number | 是 | 应用的版本号。 | 41| bundleVersionName | string | 是 | 应用版本号的文字描述。 | 42| quickFixVersionCode | number | 是 | 快速修复补丁包的版本号。 | 43| quickFixVersionName | string | 是 | 快速修复补丁包版本号的文字描述。 | 44| hapModuleQuickFixInfo | Array\<[HapModuleQuickFixInfo](#hapmodulequickfixinfo)> | 是 | hap级别的快速修复信息。 | 45 46## quickFixManager.applyQuickFix 47 48applyQuickFix(hapModuleQuickFixFiles: Array\<string>, callback: AsyncCallback\<void>): void; 49 50快速修复的补丁安装接口。 51 52**需要权限**: ohos.permission.INSTALL_BUNDLE 53 54**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 55 56**系统API**: 此接口为系统接口,三方应用不支持调用。 57 58**参数:** 59 60 | 参数名 | 类型 | 必填 | 说明 | 61 | -------- | -------- | -------- | -------- | 62 | hapModuleQuickFixFiles | Array\<string> | 是 | 快速修复补丁文件(补丁文件需包含有效的文件路径)。 | 63 | callback | AsyncCallback\<void> | 是 | 表示指定的回调方法。 | 64 65**错误码**: 66 67| 错误码ID | 错误信息 | 68| ------- | -------- | 69| 18500002 | The specified quick fix is invalid. It may not exist or inaccessible. | 70| 18500008 | Internal error. | 71 72在打补丁过程中发生的错误,其错误码及错误信息通过公共事件[COMMON_EVENT_QUICK_FIX_APPLY_RESULT](commonEventManager-definitions.md#common_event_quick_fix_apply_result-9)的参数返回给应用开发者。这部分错误码及错误信息如下: 73 74| 错误码ID | 错误信息 | 75| ------- | -------- | 76| 18500003 | Deploy hqf failed. | 77| 18500004 | Switch hqf failed. | 78| 18500005 | Delete hqf failed. | 79| 18500006 | Load patch failed. | 80| 18500007 | Unload patch failed. | 81 82以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 83 84> 说明:调用applyQuickFix接口时,补丁文件所在路径为应用沙箱路径。沙箱路径的获取参考[获取应用的沙箱路径](js-apis-bundle-BundleInstaller.md#获取应用的沙箱路径),映射到设备上的路径为/proc/<应用进程Id>/root/沙箱路径。 85 86**示例:** 87 88```ts 89 import quickFixManager from '@ohos.app.ability.quickFixManager'; 90 91 try { 92 let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf']; 93 quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => { 94 if (error) { 95 console.info( `applyQuickFix failed with error + ${error}`); 96 } else { 97 console.info( 'applyQuickFix success'); 98 } 99 }); 100 } catch (paramError) { 101 console.log('error: ' + paramError.code + ', ' + paramError.message); 102 } 103``` 104 105## quickFixManager.applyQuickFix 106 107applyQuickFix(hapModuleQuickFixFiles: Array\<string>): Promise\<void>; 108 109快速修复的补丁安装接口。 110 111**需要权限**: ohos.permission.INSTALL_BUNDLE 112 113**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 114 115**系统API**: 此接口为系统接口,三方应用不支持调用。 116 117**参数:** 118 119 | 参数名 | 类型 | 必填 | 说明 | 120 | -------- | -------- | -------- | -------- | 121 | hapModuleQuickFixFiles | Array\<string> | 是 | 快速修复补丁文件(补丁文件需包含有效的文件路径)。 | 122 123**返回值:** 124 125 | 类型 | 说明 | 126 | -------- | -------- | 127 | Promise\<void> | 返回相应结果。 | 128 129**错误码**: 130 131| 错误码ID | 错误信息 | 132| ------- | -------- | 133| 18500002 | The specified quick fix is invalid. It may not exist or inaccessible. | 134| 18500008 | Internal error. | 135 136在打补丁过程中发生的错误,其错误码及错误信息通过公共事件[COMMON_EVENT_QUICK_FIX_APPLY_RESULT](commonEventManager-definitions.md#common_event_quick_fix_apply_result-9)的参数返回给应用开发者。这部分错误码及错误信息如下: 137 138| 错误码ID | 错误信息 | 139| ------- | -------- | 140| 18500003 | Deploy hqf failed. | 141| 18500004 | Switch hqf failed. | 142| 18500005 | Delete hqf failed. | 143| 18500006 | Load patch failed. | 144| 18500007 | Unload patch failed. | 145 146以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 147 148**示例:** 149 150```ts 151 import quickFixManager from '@ohos.app.ability.quickFixManager'; 152 153 let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf']; 154 try { 155 quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => { 156 console.info('applyQuickFix success'); 157 }).catch((error) => { 158 console.info(`applyQuickFix err: + ${error}`); 159 }); 160 } catch (paramError) { 161 console.log('error: ' + paramError.code + ', ' + paramError.message); 162 } 163``` 164 165## quickFixManager.getApplicationQuickFixInfo 166 167getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback\<ApplicationQuickFixInfo>): void; 168 169获取应用的快速修复信息。 170 171**需要权限**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 172 173**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 174 175**系统API**: 此接口为系统接口,三方应用不支持调用。 176 177**参数:** 178 179 | 参数名 | 类型 | 必填 | 说明 | 180 | -------- | -------- | -------- | -------- | 181 | bundleName | string | 是 |应用的包名。 | 182 | callback | AsyncCallback\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | 是 | 应用的快速修复信息。 | 183 184**错误码**: 185 186| 错误码ID | 错误信息 | 187| ------- | -------- | 188| 18500001 | The specified bundleName is invalid. | 189| 18500008 | Internal error. | 190 191以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 192 193**示例:** 194 195```ts 196 import quickFixManager from '@ohos.app.ability.quickFixManager'; 197 198 try { 199 let bundleName = 'bundleName' 200 quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => { 201 if (error) { 202 console.info(`getApplicationQuickFixInfo error: + ${error}`); 203 } else { 204 console.info(`getApplicationQuickFixInfo success: + ${data}`); 205 } 206 }); 207 } catch (paramError) { 208 console.log('error: ' + paramError.code + ', ' + paramError.message); 209 } 210``` 211 212## quickFixManager.getApplicationQuickFixInfo 213 214getApplicationQuickFixInfo(bundleName: string): Promise\<ApplicationQuickFixInfo>; 215 216获取应用的快速修复信息。 217 218**需要权限**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 219 220**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix 221 222**系统API**: 此接口为系统接口,三方应用不支持调用。 223 224**参数:** 225 226 | 参数名 | 类型 | 必填 | 说明 | 227 | -------- | -------- | -------- | -------- | 228 | bundleName | string | 是 | 应用的包名。 | 229 230**返回值:** 231 232 | 类型 | 说明 | 233 | -------- | -------- | 234 | Promise\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | 返回应用的快速修复信息。 | 235 236**错误码**: 237 238| 错误码ID | 错误信息 | 239| ------- | -------- | 240| 18500001 | The specified bundleName is invalid. | 241| 18500008 | Internal error. | 242 243以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 244 245**示例:** 246 247 ```ts 248 import quickFixManager from '@ohos.app.ability.quickFixManager'; 249 250 try { 251 let bundleName = 'bundleName'; 252 quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => { 253 console.info(`getApplicationQuickFixInfo success: + ${data}`); 254 }).catch((error) => { 255 console.info(`getApplicationQuickFixInfo err: + ${error}`); 256 }); 257 } catch (paramError) { 258 console.log('error: ' + paramError.code + ', ' + paramError.message); 259 } 260``` 261