1# @ohos.app.ability.quickFixManager (quickFixManager) (System API) 2 3The **quickFixManager** module provides APIs for quick fix. With quick fix, you can fix bugs in your application by applying patches, which is more efficient than by updating the entire application. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8> The APIs of this module are system APIs and cannot be called by third-party applications. 9 10## Modules to Import 11 12```ts 13import { quickFixManager } from '@kit.AbilityKit'; 14``` 15 16## HapModuleQuickFixInfo 17 18Defines the quick fix information at the HAP file level. 19 20**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 21 22**System API**: This is a system API and cannot be called by third-party applications. 23 24| Name | Type | Read-only| Mandatory| Description | 25| ----------- | -------------------- | ---- | ---- | ------------------------------------------------------------ | 26| moduleName | string | Yes| Yes | Name of the HAP file. | 27| originHapHash | string | Yes| Yes | Hash value of the HAP file. | 28| quickFixFilePath | string | Yes| Yes | Installation path of the quick fix patch file. | 29 30## ApplicationQuickFixInfo 31 32Defines the quick fix information at the application level. 33 34**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 35 36**System API**: This is a system API and cannot be called by third-party applications. 37 38| Name | Type | Read-only| Mandatory| Description | 39| ----------- | -------------------- | ---- | ---- | ------------------------------------------------------------ | 40| bundleName | string | Yes| Yes | Bundle name. | 41| bundleVersionCode | number | Yes| Yes | Internal version number of the application. | 42| bundleVersionName | string | Yes| Yes | Version number of the application that is shown to users. | 43| quickFixVersionCode | number | Yes| Yes | Version code of the quick fix patch package. | 44| quickFixVersionName | string | Yes| Yes | Text description of the version number of the quick fix patch package. | 45| hapModuleQuickFixInfo | Array\<[HapModuleQuickFixInfo](#hapmodulequickfixinfo)> | Yes| Yes | Quick fix information at the HAP file level. | 46 47## quickFixManager.applyQuickFix 48 49applyQuickFix(hapModuleQuickFixFiles: Array\<string>, callback: AsyncCallback\<void>): void; 50 51Applies a quick fix patch. This API uses an asynchronous callback to return the result. 52 53**Required permissions**: ohos.permission.INSTALL_BUNDLE 54 55**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 56 57**System API**: This is a system API and cannot be called by third-party applications. 58 59**Parameters** 60 61 | Parameter| Type| Mandatory| Description| 62 | -------- | -------- | -------- | -------- | 63 | hapModuleQuickFixFiles | Array\<string> | Yes| Quick fix patch files, each of which must contain a valid file path.| 64 | callback | AsyncCallback\<void> | Yes| Callback used to return the result. If the quick fix patch is installed, **err** is **undefined**. Otherwise, **err** is an error object.| 65 66**Error codes** 67 68If an error occurs during patch installation, the error code and message are returned through the common event [COMMON_EVENT_QUICK_FIX_APPLY_RESULT](../apis-basic-services-kit/common_event/commonEvent-definitions.md#common_event_quick_fix_apply_result9). 69 70For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 71 72| ID| Error Message| 73| ------- | -------- | 74| 201 | Permission denied. | 75| 202 | Not system application. | 76| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 77| 18500002 | The specified quick fix is invalid. It may not exist or inaccessible. | 78| 18500008 | Internal error. | 79 80> **NOTE** 81> 82> The file path passed in the API must be an application sandbox path. For details about how to obtain the sandbox path, see [Obtaining the Sandbox Path](js-apis-bundle-BundleInstaller-sys.md#obtaining-the-sandbox-path). The path mapped to the device is **/proc/<*applicationProcessId*>/root/*sandboxPath***. 83 84**Example** 85 86```ts 87import { quickFixManager } from '@kit.AbilityKit'; 88 89try { 90 let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf']; 91 quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => { 92 if (error) { 93 console.error( `applyQuickFix failed with error: ${error}`); 94 } else { 95 console.info( 'applyQuickFix success'); 96 } 97 }); 98} catch (paramError) { 99 console.error(`error.code: ${paramError.code}, error.message: ${paramError.message}`); 100} 101``` 102 103## quickFixManager.applyQuickFix 104 105applyQuickFix(hapModuleQuickFixFiles: Array\<string>): Promise\<void>; 106 107Applies a quick fix patch. This API uses a promise to return the result. 108 109**Required permissions**: ohos.permission.INSTALL_BUNDLE 110 111**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 112 113**System API**: This is a system API and cannot be called by third-party applications. 114 115**Parameters** 116 117 | Parameter| Type| Mandatory| Description| 118 | -------- | -------- | -------- | -------- | 119 | hapModuleQuickFixFiles | Array\<string> | Yes| Quick fix patch files, each of which must contain a valid file path.| 120 121**Return value** 122 123 | Type| Description| 124 | -------- | -------- | 125 | Promise\<void> | Promise that returns no value.| 126 127**Error codes** 128 129If an error occurs during patch installation, the error code and message are returned through the common event [COMMON_EVENT_QUICK_FIX_APPLY_RESULT](../apis-basic-services-kit/common_event/commonEvent-definitions.md#common_event_quick_fix_apply_result9). 130 131For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 132 133| ID| Error Message| 134| ------- | -------- | 135| 201 | Permission denied. | 136| 202 | Not system application. | 137| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 138| 18500002 | The specified quick fix is invalid. It may not exist or inaccessible. | 139| 18500008 | Internal error. | 140 141**Example** 142 143```ts 144import { quickFixManager } from '@kit.AbilityKit'; 145import { BusinessError } from '@kit.BasicServicesKit'; 146 147let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf']; 148 149try { 150 quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => { 151 console.info('applyQuickFix success'); 152 }).catch((error: BusinessError) => { 153 console.error(`applyQuickFix err: ${error}`); 154 }); 155} catch (paramError) { 156 console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 157} 158``` 159 160## quickFixManager.getApplicationQuickFixInfo 161 162getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback\<ApplicationQuickFixInfo>): void; 163 164Obtains the quick fix information of the application. This API uses an asynchronous callback to return the result. 165 166**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 167 168**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 169 170**System API**: This is a system API and cannot be called by third-party applications. 171 172**Parameters** 173 174| Parameter| Type| Mandatory| Description| 175| -------- | -------- | -------- | -------- | 176| bundleName | string | Yes|Bundle name. | 177| callback | AsyncCallback\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Yes| Callback used to return the quick fix information.| 178 179**Error codes** 180 181For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 182 183| ID| Error Message| 184| ------- | -------- | 185| 201 | Permission denied. | 186| 202 | Not system application. | 187| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 188| 18500001 | The bundle does not exist or no patch has been applied. | 189| 18500008 | Internal error. | 190 191**Example** 192 193```ts 194import { quickFixManager } from '@kit.AbilityKit'; 195import { BusinessError } from '@kit.BasicServicesKit'; 196 197try { 198 let bundleName = 'bundleName'; 199 quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => { 200 if (error) { 201 console.error(`getApplicationQuickFixInfo error: ${error}`); 202 } else { 203 console.info(`getApplicationQuickFixInfo success: ${data}`); 204 } 205 }); 206} catch (paramError) { 207 console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 208} 209``` 210 211## quickFixManager.getApplicationQuickFixInfo 212 213getApplicationQuickFixInfo(bundleName: string): Promise\<ApplicationQuickFixInfo>; 214 215Obtains the quick fix information of the application. This API uses a promise to return the result. 216 217**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 218 219**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 220 221**System API**: This is a system API and cannot be called by third-party applications. 222 223**Parameters** 224 225| Parameter| Type| Mandatory| Description| 226| -------- | -------- | -------- | -------- | 227| bundleName | string | Yes| Bundle name.| 228 229**Return value** 230 231 | Type| Description| 232 | -------- | -------- | 233 | Promise\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Promise used to return the quick fix information.| 234 235**Error codes** 236 237For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 238 239| ID| Error Message| 240| ------- | -------- | 241| 201 | Permission denied. | 242| 202 | Not system application. | 243| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 244| 18500001 | The bundle does not exist or no patch has been applied. | 245| 18500008 | Internal error. | 246 247**Example** 248 249```ts 250import { quickFixManager } from '@kit.AbilityKit'; 251import { BusinessError } from '@kit.BasicServicesKit'; 252 253try { 254 let bundleName = 'bundleName'; 255 quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => { 256 console.info(`getApplicationQuickFixInfo success: ${data}`); 257 }).catch((error: BusinessError) => { 258 console.error(`getApplicationQuickFixInfo err: ${error}`); 259 }); 260} catch (paramError) { 261 console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 262} 263``` 264 265## quickFixManager.revokeQuickFix<sup>10+<sup> 266 267revokeQuickFix(bundleName: string, callback: AsyncCallback\<void>): void; 268 269Revokes quick fix. This API uses an asynchronous callback to return the result. 270 271**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED and ohos.permission.INSTALL_BUNDLE 272 273**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 274 275**System API**: This is a system API and cannot be called by third-party applications. 276 277**Parameters** 278 279 | Parameter| Type| Mandatory| Description| 280 | -------- | -------- | -------- | -------- | 281 | bundleName | string | Yes| Name of the bundle for which the patch needs to be revoked.| 282 | callback | AsyncCallback\<void> | Yes| Callback used to return the result. If quick fix is revoked, **err** is **undefined**. Otherwise, **err** is an error object.| 283 284**Error codes** 285 286For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 287 288| ID| Error Message| 289| ------- | -------- | 290| 201 | Permission denied. | 291| 202 | Not system application. | 292| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 293| 18500001 | The bundle does not exist or no patch has been applied. | 294| 18500009 | The application has an ongoing quick fix task. | 295 296If an error occurs during patch installation, the error code and message are returned through the common event [COMMON_EVENT_QUICK_FIX_REVOKE_RESULT](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_quick_fix_revoke_result10). 297 298**Example** 299 300```ts 301import { quickFixManager } from '@kit.AbilityKit'; 302 303let bundleName = "com.example.myapplication"; 304 305quickFixManager.revokeQuickFix(bundleName, (err) => { 306 console.info("revokeQuickFix " + bundleName + " " + JSON.stringify(err)); 307}); 308``` 309 310## quickFixManager.revokeQuickFix<sup>10+<sup> 311 312revokeQuickFix(bundleName: string): Promise\<void>; 313 314Revokes quick fix. This API uses a promise to return the result. 315 316**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED and ohos.permission.INSTALL_BUNDLE 317 318**System capability**: SystemCapability.Ability.AbilityRuntime.QuickFix 319 320**System API**: This is a system API and cannot be called by third-party applications. 321 322**Parameters** 323 324 | Parameter| Type| Mandatory| Description| 325 | -------- | -------- | -------- | -------- | 326 | bundleName | string | Yes| Name of the bundle for which the patch needs to be revoked.| 327 328**Return value** 329 330 | Type| Description| 331 | -------- | -------- | 332 | Promise\<void> | Promise that returns no value.| 333 334**Error codes** 335 336For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 337 338| ID| Error Message| 339| ------- | -------- | 340| 201 | Permission denied. | 341| 202 | Not system application. | 342| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 343| 18500001 | The bundle does not exist or no patch has been applied. | 344| 18500009 | The application has an ongoing quick fix task. | 345 346If an error occurs during patch installation, the error code and message are returned through the common event [COMMON_EVENT_QUICK_FIX_REVOKE_RESULT](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_quick_fix_revoke_result10). The table below lists the possible error codes and messages. 347 348**Example** 349 350```ts 351import { quickFixManager } from '@kit.AbilityKit'; 352import { BusinessError } from '@kit.BasicServicesKit'; 353 354let bundleName = "com.example.myapplication"; 355 356quickFixManager.revokeQuickFix(bundleName).then(() => { 357 console.info("revokeQuickFix " + bundleName +" ok"); 358}).catch((err: BusinessError) => { 359 console.info("revokeQuickFix " + bundleName +" failed, error code is ", JSON.stringify((err))); 360}); 361``` 362