244 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			244 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2022 Huawei Device Co., Ltd.
							 | 
						||
| 
								 | 
							
								 * Licensed under the Apache License, Version 2.0 (the "License");
							 | 
						||
| 
								 | 
							
								 * you may not use this file except in compliance with the License.
							 | 
						||
| 
								 | 
							
								 * You may obtain a copy of the License at
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *     http://www.apache.org/licenses/LICENSE-2.0
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Unless required by applicable law or agreed to in writing, software
							 | 
						||
| 
								 | 
							
								 * distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						||
| 
								 | 
							
								 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						||
| 
								 | 
							
								 * See the License for the specific language governing permissions and
							 | 
						||
| 
								 | 
							
								 * limitations under the License.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import { AsyncCallback } from './basic';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Support install, upgrade, remove and recover bundles on the devices.
							 | 
						||
| 
								 | 
							
								 * @namespace installer
							 | 
						||
| 
								 | 
							
								 * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								 * @systemapi
							 | 
						||
| 
								 | 
							
								 * @since 9
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								declare namespace installer {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Obtains the interface used to install bundle.
							 | 
						||
| 
								 | 
							
								   * @param { AsyncCallback } callback - The callback of BundleInstaller object.
							 | 
						||
| 
								 | 
							
								   * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								   * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								   * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								   * @systemapi
							 | 
						||
| 
								 | 
							
								   * @since 9
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  function getBundleInstaller(callback: AsyncCallback<BundleInstaller>): void
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Obtains the interface used to install bundle.
							 | 
						||
| 
								 | 
							
								   * @param { AsyncCallback } callback - The callback of getting a list of BundleInstaller objects.
							 | 
						||
| 
								 | 
							
								   * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								   * @returns { Promise<BundleInstaller> } BundleInstaller object.
							 | 
						||
| 
								 | 
							
								   * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								   * @systemapi
							 | 
						||
| 
								 | 
							
								   * @since 9
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  function getBundleInstaller(): Promise<BundleInstaller>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Bundle installer interface, include install uninstall recover.
							 | 
						||
| 
								 | 
							
								   * @interface BundleInstaller
							 | 
						||
| 
								 | 
							
								   * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								   * @systemapi
							 | 
						||
| 
								 | 
							
								   * @since 9
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  interface BundleInstaller {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Install haps for an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { Array<string> } hapFilePaths - Indicates the path where the hap of the application is stored.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the installation.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of installing haps result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified user ID is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700010 - Failed to install the HAP because the HAP fails to be parsed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700011 - Failed to install the HAP because the HAP signature fails to be verified.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700012 - Failed to install the HAP because the HAP path is invalid or the HAP is too large.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700015 - Failed to install the HAPs because they have different configuration information.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700016 - Failed to install the HAP because of insufficient system disk space.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700017 - Failed to install the HAP since the version of the HAP to install is too early.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700018 - Failed to install because the dependent module does not exist.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    install(hapFilePaths: Array<string>, installParam: InstallParam, callback: AsyncCallback<void>) : void;
							 | 
						||
| 
								 | 
							
								    install(hapFilePaths: Array<string>, callback: AsyncCallback<void>) : void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Install haps for an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { Array<string> } hapFilePaths - Indicates the path where the hap of the application is stored.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the installation.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of installing haps result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified user ID is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700010 - Failed to install the HAP because the HAP fails to be parsed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700011 - Failed to install the HAP because the HAP signature fails to be verified.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700012 - Failed to install the HAP because the HAP path is invalid or the HAP is too large.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700015 - Failed to install the HAPs because they have different configuration information.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700016 - Failed to install the HAP because of insufficient system disk space.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700017 - Failed to install the HAP since the version of the HAP to install is too early.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700018 - Failed to install because the dependent module does not exist.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    install(hapFilePaths: Array<string>, installParam?: InstallParam) : Promise<void>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Uninstall an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { string } bundleName - Indicates the bundle name of the application to be uninstalled.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the uninstall.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of uninstalling application result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700001 - The specified bundle name is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified user ID is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700020 - The specified bundle is pre-installed bundle which cannot be uninstalled.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    uninstall(bundleName: string, installParam: InstallParam, callback : AsyncCallback<void>) : void;
							 | 
						||
| 
								 | 
							
								    uninstall(bundleName: string, callback : AsyncCallback<void>) : void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Uninstall an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { string } bundleName - Indicates the bundle name of the application to be uninstalled.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the uninstall.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of uninstalling application result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700001 - The specified bundle name is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified userId is not existed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700020 - The specified bundle is pre-installed bundle which cannot be uninstalled.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    uninstall(bundleName: string, installParam?: InstallParam) : Promise<void>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Recover an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { string } bundleName - Indicates the bundle name of the application to be recovered.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the recover.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of recovering application result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700001 - The specified bundle name is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified user ID is not found.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    recover(bundleName: string, installParam: InstallParam, callback: AsyncCallback<void>): void;
							 | 
						||
| 
								 | 
							
								    recover(bundleName: string, callback: AsyncCallback<void>): void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Recover an application.
							 | 
						||
| 
								 | 
							
								     * @permission ohos.permission.INSTALL_BUNDLE
							 | 
						||
| 
								 | 
							
								     * @param { string } bundleName - Indicates the bundle name of the application to be recovered.
							 | 
						||
| 
								 | 
							
								     * @param { InstallParam } installParam - Indicates other parameters required for the recover.
							 | 
						||
| 
								 | 
							
								     * @param { AsyncCallback } callback - The callback of recovering application result.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 401 - Input parameters check failed.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700001 - The specified bundle name is not found.
							 | 
						||
| 
								 | 
							
								     * @throws { BusinessError } 17700004 - The specified user ID is not found.
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @systemapi
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    recover(bundleName: string, installParam?: InstallParam) : Promise<void>;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Provides parameters required for hashParam.
							 | 
						||
| 
								 | 
							
								   * @typedef HashParam
							 | 
						||
| 
								 | 
							
								   * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								   * @systemapi
							 | 
						||
| 
								 | 
							
								   * @since 9
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  export interface HashParam {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the moduleName
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    moduleName: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the hash value
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    hashValue: string;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Provides parameters required for installing or uninstalling an application.
							 | 
						||
| 
								 | 
							
								   * @typedef InstallParam
							 | 
						||
| 
								 | 
							
								   * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								   * @systemapi
							 | 
						||
| 
								 | 
							
								   * @since 9
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  export interface InstallParam {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the user id
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    userId?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the install flag, which 0x00 for normal, 0x10 for freeInstall
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    installFlag?: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates whether the param has data
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    isKeepData?: boolean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the hash params
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    hashParams?: Array<HashParam>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Indicates the deadline of the crowdtesting bundle
							 | 
						||
| 
								 | 
							
								     * @syscap SystemCapability.BundleManager.BundleFramework.Core
							 | 
						||
| 
								 | 
							
								     * @since 9
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    crowdtestDeadline?: number;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default installer;
							 |