openharmony 鸿蒙 js-apis-installer-sys

2025-06-12 浏览 (1)

@ohos.bundle.installer (installer) (System API)

The bundle.installer module provides APIs for you to install, uninstall, and recover bundles on devices.

NOTE

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.

The APIs provided by this module are system APIs.

Modules to Import

import installer from '@ohos.bundle.installer';

Required Permissions

PermissionAPLDescription
ohos.permission.INSTALL_BUNDLEsystem_corePermission to install or uninstall other applications except enterprise applications, including enterprise InHouse, mobile device management (MDM), and Normal applications.
ohos.permission.INSTALL_ENTERPRISE_BUNDLEsystem_corePermission to install enterprise InHouse applications.
ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLEsystem_corePermission to install enterprise MDM applications.
ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLEsystem_corePermission to install enterprise Normal applications.
ohos.permission.UNINSTALL_BUNDLEsystem_coreAllows an application to uninstall applications.
ohos.permission.RECOVER_BUNDLEsystem_coreAllows an application to restore pre-installed applications.
ohos.permission.INSTALL_SELF_BUNDLEsystem_coreAllows automatic updates of the enterprise MDM applications on enterprise devices.
ohos.permission.INSTALL_INTERNALTESTING_BUNDLEsystem_coreAllows an application to install beta applications.

For details about the APL, see Basic Concepts in the Permission Mechanism.

BundleInstaller.getBundleInstaller

getBundleInstaller(callback: AsyncCallback<BundleInstaller>): void

Obtains a BundleInstaller object. This API uses an asynchronous callback to return the result.

System API: This is a system API.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<BundleInstaller>YesCallback used to return the result. If the operation is successful, err is null and data is the BundleInstaller object obtained; otherwise, err is an error object.

Error codes

For details about the error codes, see Bundle Error Codes.

IDError Message
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Incorrect parameter types.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

try {
    installer.getBundleInstaller((err: BusinessError, data: installer.BundleInstaller) => {
        if (err) {
            console.error('getBundleInstaller failed:' + err.message);
        } else {
            console.info('getBundleInstaller successfully');
        }
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed:' + message);
}

BundleInstaller.getBundleInstaller

getBundleInstaller(): Promise<BundleInstaller>

Obtains a BundleInstaller object. This API uses an asynchronous callback to return the result.

System API: This is a system API.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Return value

TypeDescription
Promise<BundleInstaller>Promise used to return the BundleInstaller object obtained.

Error codes

For details about the error codes, see Bundle Error Codes.

IDError Message
202Permission verification failed. A non-system application calls a system API.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        console.info('getBundleInstaller successfully.');
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.getBundleInstallerSync10+

getBundleInstallerSync(): BundleInstaller

Obtains a BundleInstaller object. This API is a synchronous API.

System API: This is a system API.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Return value

TypeDescription
BundleInstallerBundleInstaller object.

Error codes

For details about the error codes, see Bundle Error Codes.

IDError Message
202Permission verification failed. A non-system application calls a system API.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

try {
    installer.getBundleInstallerSync();
    console.info('getBundleInstallerSync successfully.');
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstallerSync failed. Cause: ' + message);
}

BundleInstaller.install

install(hapFilePaths: Array<string>, installParam: InstallParam, callback: AsyncCallback<void>): void

Installs a bundle. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_BUNDLE10+, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE10+, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE10+

NOTE

From API version 10, this API can be called with the permission ohos.permission.INSTALL_ENTERPRISE_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE.

To install an enterprise application, you must have the ohos.permission.INSTALL_ENTERPRISE_BUNDLE permission.

To install an enterprise Normal application, you must have the ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install an enterprise MDM application, you must have the ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install a common application, you must have the ohos.permission.INSTALL_BUNDLE permission.

To install a beta application, you must have the ohos.permission.INSTALL_INTERNALTESTING_BUNDLE permission.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
installParamInstallParamYesParameters required for the installation.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter hapFiles is needed for code signature; 4. The size of specifiedDistributionType is greater than 128; 5. The size of additionalInfo is greater than 3000.
17700004The specified user ID is not found.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700031Failed to install the HAP because the overlay check of the HAP failed.
17700036Failed to install the HSP due to the lack of required permission.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700052Failed to install the HAP because a debug bundle can be installed only in developer mode.
17700054Failed to install the HAP because the HAP requests wrong permissions.
17700058Failed to install the HAP because the device has been controlled.
17700066Failed to install the HAP because installing the native package failed.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.
17700076Failed to install the HAP or HSP because the app distribution type is not allowed.
17700077Failed to install the HAP and restore to preinstalled bundle.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.install(hapFilePaths, installParam, (err: BusinessError) => {
            if (err) {
                console.error('install failed:' + err.message);
            } else {
                console.info('install successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.install

install(hapFilePaths: Array<string>, callback: AsyncCallback<void>): void

Installs a bundle. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_BUNDLE10+, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE10+, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE10+

NOTE

From API version 10, this API can be called with the permission ohos.permission.INSTALL_ENTERPRISE_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE.

To install an enterprise application, you must have the ohos.permission.INSTALL_ENTERPRISE_BUNDLE permission.

To install an enterprise Normal application, you must have the ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install an enterprise MDM application, you must have the ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install a common application, you must have the ohos.permission.INSTALL_BUNDLE permission.

To install a beta application, you must have the ohos.permission.INSTALL_INTERNALTESTING_BUNDLE permission.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700031Failed to install the HAP because the overlay check of the HAP failed.
17700036Failed to install the HSP due to the lack of required permission.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700052Failed to install the HAP because a debug bundle can be installed only in developer mode.
17700054Failed to install the HAP because the HAP requests wrong permissions.
17700058Failed to install the HAP because the device has been controlled.
17700066Failed to install the HAP because installing the native package failed.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.
17700076Failed to install the HAP or HSP because the app distribution type is not allowed.
17700077Failed to install the HAP and restore to preinstalled bundle.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.install(hapFilePaths, (err: BusinessError) => {
            if (err) {
                console.error('install failed:' + err.message);
            } else {
                console.info('install successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.install

install(hapFilePaths: Array<string>, installParam?: InstallParam) : Promise<void>

Installs a bundle. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_BUNDLE10+, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE10+, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE10+

NOTE

From API version 10, this API can be called with the permission ohos.permission.INSTALL_ENTERPRISE_BUNDLE, ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE, or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE.

To install an enterprise application, you must have the ohos.permission.INSTALL_ENTERPRISE_BUNDLE permission.

To install an enterprise Normal application, you must have the ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE or ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install an enterprise MDM application, you must have the ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE permission.

To install a common application, you must have the ohos.permission.INSTALL_BUNDLE permission.

To install a beta application, you must have the ohos.permission.INSTALL_INTERNALTESTING_BUNDLE permission.

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
installParamInstallParamNoParameters required for the installation. For details about their default values, see InstallParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE' or 'ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter hapFiles is needed for code signature; 4. The size of specifiedDistributionType is greater than 128; 5. The size of additionalInfo is greater than 3000.
17700004The specified user ID is not found.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700031Failed to install the HAP because the overlay check of the HAP failed.
17700036Failed to install the HSP due to the lack of required permission.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700052Failed to install the HAP because a debug bundle can be installed only in developer mode.
17700054Failed to install the HAP because the HAP requests wrong permissions.
17700058Failed to install the HAP because the device has been controlled.
17700066Failed to install the HAP because installing the native package failed.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.
17700076Failed to install the HAP or HSP because the app distribution type is not allowed.
17700077Failed to install the HAP and restore to preinstalled bundle.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.install(hapFilePaths, installParam)
            .then((data: void) => {
                console.info('install successfully: ' + JSON.stringify(data));
        }).catch((error: BusinessError) => {
            console.error('install failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstall

uninstall(bundleName: string, installParam: InstallParam, callback: AsyncCallback<void>): void

Uninstalls a bundle. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
installParamInstallParamYesParameters required for the installation.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700004The specified user ID is not found.
17700020The specified bundle is pre-installed bundle which cannot be uninstalled.
17700040The specified bundle is a shared bundle which cannot be uninstalled.
17700045Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management.
17700060The specified application cannot be uninstalled.
17700062Failed to uninstall the app because the app is locked.
17700067Failed to uninstall the HAP because uninstalling the native package failed.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstall(bundleName, installParam, (err: BusinessError) => {
            if (err) {
                console.error('uninstall failed:' + err.message);
            } else {
                console.info('uninstall successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstall

uninstall(bundleName: string, callback: AsyncCallback<void>): void

Uninstalls a bundle. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700020The specified bundle is pre-installed bundle which cannot be uninstalled.
17700040The specified bundle is a shared bundle which cannot be uninstalled.
17700045Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management.
17700060The specified application cannot be uninstalled.
17700067Failed to uninstall the HAP because uninstalling the native package failed.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstall(bundleName, (err: BusinessError) => {
            if (err) {
                console.error('uninstall failed:' + err.message);
            } else {
                console.info('uninstall successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstall

uninstall(bundleName: string, installParam?: InstallParam) : Promise<void>

Uninstalls a bundle. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
installParamInstallParamNoParameters required for the installation. For details about their default values, see InstallParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700004The specified user ID is not found.
17700020The specified bundle is pre-installed bundle which cannot be uninstalled.
17700040The specified bundle is a shared bundle which cannot be uninstalled.
17700045Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management.
17700060The specified application cannot be uninstalled.
17700062Failed to uninstall the app because the app is locked.
17700067Failed to uninstall the HAP because uninstalling the native package failed.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstall(bundleName, installParam)
            .then((data: void) => {
                console.info('uninstall successfully: ' + JSON.stringify(data));
        }).catch((error: BusinessError) => {
            console.error('uninstall failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.recover

recover(bundleName: string, installParam: InstallParam, callback: AsyncCallback<void>): void

Rolls back a bundle to the initial installation state. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.RECOVER_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
installParamInstallParamYesParameters required for the installation.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.RECOVER_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700004The specified user ID is not found.
17700058Failed to install the HAP because this application is prohibited from being installed on this device or by specified users.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.recover(bundleName, installParam, (err: BusinessError) => {
            if (err) {
                console.error('recover failed:' + err.message);
            } else {
                console.info('recover successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.recover

recover(bundleName: string, callback: AsyncCallback<void>): void

Rolls back a bundle to the initial installation state. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.RECOVER_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.RECOVER_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700058Failed to install the HAP because this application is prohibited from being installed on this device or by specified users.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.recover(bundleName, (err: BusinessError) => {
            if (err) {
                console.error('recover failed:' + err.message);
            } else {
                console.info('recover successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.recover

recover(bundleName: string, installParam?: InstallParam) : Promise<void>

Rolls back a bundle to the initial installation state. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.RECOVER_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
installParamInstallParamNoParameters required for the installation. For details about their default values, see InstallParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.RECOVER_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700004The specified user ID is not found.
17700058Failed to install the HAP because this application is prohibited from being installed on this device or by specified users.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.demo';
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.recover(bundleName, installParam)
            .then((data: void) => {
                console.info('recover successfully: ' + JSON.stringify(data));
        }).catch((error: BusinessError) => {
            console.error('recover failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstall10+

uninstall(uninstallParam: UninstallParam, callback : AsyncCallback<void>) : void

Uninstalls a shared package. This API uses an asynchronous callback to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
uninstallParamUninstallParamYesParameters required for the uninstall.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700020The specified bundle is pre-installed bundle which cannot be uninstalled.
17700037The version of the shared bundle is dependent on other applications.
17700038The specified shared bundle does not exist.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let uninstallParam: installer.UninstallParam = {
    bundleName: "com.ohos.demo",
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstall(uninstallParam, (err: BusinessError) => {
            if (err) {
                console.error('uninstall failed:' + err.message);
            } else {
                console.info('uninstall successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstall10+

uninstall(uninstallParam: UninstallParam) : Promise<void>

Uninstalls a shared package. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
uninstallParamUninstallParamYesParameters required for the uninstall.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700020The specified bundle is pre-installed bundle which cannot be uninstalled.
17700037The version of the shared bundle is dependent on other applications.
17700038The specified shared bundle does not exist.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let uninstallParam: installer.UninstallParam = {
    bundleName: "com.ohos.demo",
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstall(uninstallParam, (err: BusinessError) => {
            if (err) {
                console.error('uninstall failed:' + err.message);
            } else {
                console.info('uninstall successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.addExtResource12+

addExtResource(bundleName: string, filePaths: Array<string>): Promise<void>;

Adds extended resources based on the specified bundle name and HSP file path. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application to which extended resources are to be added.
filePathsArray<string>YesPath of the extended resources to be added.

Return value

TypeDescription
Promise<void>that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Permission denied.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName is not found.
17700301Failed to add extended resources.

Example

import installer from '@ohos.bundle.installer';
import hilog from '@ohos.hilog';
import { BusinessError } from '@ohos.base';

let bundleName : string = 'com.ohos.demo';
let filePaths : Array<string> = ['/data/storage/el2/base/a.hsp'];
try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.addExtResource(bundleName, filePaths).then((data) => {
            hilog.info(0x0000, 'testTag', 'addExtResource successfully');
        }).catch((err: BusinessError) => {
            hilog.error(0x0000, 'testTag', 'addExtResource failed. Cause: %{public}s', err.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.removeExtResource12+

removeExtResource(bundleName: string, moduleNames: Array<string>): Promise<void>;

Removes extended resources based on the specified bundle name and HSP file path. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.UNINSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application for which extended resources are to be removed.
moduleNamesArray<string>YesNames of the modules whose extended resources are to be removed.

Return value

TypeDescription
Promise<void>that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Permission denied.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName is not found.
17700302Failed to remove extended resources.

Example

import installer from '@ohos.bundle.installer';
import hilog from '@ohos.hilog';
import { BusinessError } from '@ohos.base';

let bundleName : string = 'com.ohos.demo';
let moduleNames : Array<string> = ['moduleTest'];
try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.removeExtResource(bundleName, moduleNames).then((data) => {
            hilog.info(0x0000, 'testTag', 'removeExtResource successfully');
        }).catch((err: BusinessError) => {
            hilog.error(0x0000, 'testTag', 'removeExtResource failed. Cause: %{public}s', err.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.updateBundleForSelf10+

updateBundleForSelf(hapFilePaths: Array<string>, installParam: InstallParam, callback: AsyncCallback<void>): void

Updates the current bundle. This API uses an asynchronous callback to return the result. It can be called only by enterprise MDM applications on enterprise devices, and the HAPs in hapFilePaths must belong to the current application.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_SELF_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
installParamInstallParamYesParameters required for the installation.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_SELF_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter hapFiles is needed for code signature; 4. The size of specifiedDistributionType is greater than 128; 5. The size of additionalInfo is greater than 3000.
17700004The specified user ID is not found.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700049Failed to install the HAP because the bundleName is different from the bundleName of the caller application.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700051Failed to install the HAP because the distribution type of the caller application is not enterprise_mdm.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.updateBundleForSelf(hapFilePaths, installParam, (err: BusinessError) => {
            if (err) {
                console.error('updateBundleForSelf failed:' + err.message);
            } else {
                console.info('updateBundleForSelf successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.updateBundleForSelf10+

updateBundleForSelf(hapFilePaths: Array<string>, callback: AsyncCallback<void>): void

Updates the current bundle. This API uses an asynchronous callback to return the result. It can be called only by enterprise MDM applications on enterprise devices, and the HAPs in hapFilePaths must belong to the current application.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_SELF_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is null; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_SELF_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700049Failed to install the HAP because the bundleName is different from the bundleName of the caller application.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700051Failed to install the HAP because the distribution type of the caller application is not enterprise_mdm.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.updateBundleForSelf(hapFilePaths, (err: BusinessError) => {
            if (err) {
                console.error('updateBundleForSelf failed:' + err.message);
            } else {
                console.info('updateBundleForSelf successfully.');
            }
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.updateBundleForSelf10+

updateBundleForSelf(hapFilePaths: Array<string>, installParam?: InstallParam): Promise<void>

Updates the current bundle. This API uses a promise to return the result. It can be called only by enterprise MDM applications on enterprise devices, and the HAPs in hapFilePaths must belong to the current application.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_SELF_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hapFilePathsArray<string>YesPaths where the HAP files of the bundle are stored, which are the data directories. If only one directory is passed, the HAP files in the directory must belong to the same bundle and have the same signature.
installParamInstallParamNoParameters required for the installation. For details about their default values, see InstallParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_SELF_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter hapFiles is needed for code signature; 4. The size of specifiedDistributionType is greater than 128; 5. The size of additionalInfo is greater than 3000.
17700004The specified user ID is not found.
17700010Failed to install the HAP because the HAP fails to be parsed.
17700011Failed to install the HAP because the HAP signature fails to be verified.
17700012Failed to install the HAP because the HAP path is invalid or the HAP is too large.
17700015Failed to install the HAPs because they have different configuration information.
17700016Failed to install the HAP because of insufficient system disk space.
17700017Failed to install the HAP since the version of the HAP to install is too early.
17700018Failed to install the HAP or HSP because the dependent module does not exist.
17700039Failed to install the HSP because installing a shared bundle specified by hapFilePaths is not allowed.
17700041Failed to install the HAP because the installation is forbidden by enterprise device management.
17700042Failed to install the HAP because of incorrect URI in the data proxy.
17700043Failed to install the HAP because of low APL in the non-system data proxy (required APL: system_basic or system_core).
17700044Failed to install the HAP because the isolationMode configured is not supported.
17700047Failed to install the HAP because the VersionCode to be updated is not greater than the current VersionCode.
17700048Failed to install the HAP because the code signature verification failed.
17700049Failed to install the HAP because the bundleName is different from the bundleName of the caller application.
17700050Failed to install the HAP because an enterprise normal/MDM bundle cannot be installed on non-enterprise devices.
17700051Failed to install the HAP because the distribution type of the caller application is not enterprise_mdm.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam: installer.InstallParam = {
    userId: 100,
    isKeepData: false,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.updateBundleForSelf(hapFilePaths, installParam)
            .then((data: void) => {
                console.info('updateBundleForSelf successfully: ' + JSON.stringify(data));
        }).catch((error: BusinessError) => {
            console.error('updateBundleForSelf failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstallUpdates12+

uninstallUpdates(bundleName: string, installParam?: InstallParam): Promise<void>;

Uninstalls and updates a preinstalled application and restores it to the initial installation status. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE or ohos.permission.RECOVER_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesName of the target bundle.
installParamInstallParamNoParameters required for the uninstall and update. For details about their default values, see InstallParam. The userId parameter cannot be specified. Calling this API will uninstall and update the application for all users.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE' or 'ohos.permission.UNINSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundle name is not found.
17700045Failed to uninstall the HAP because the uninstall is forbidden by enterprise device management.
17700057Failed to uninstall updates because the HAP is not pre-installed.
17700060The specified application cannot be uninstalled.
17700067Failed to uninstall the HAP because uninstalling the native package failed.
17700073Failed to install the HAP because an application with the same bundle name but different signature information exists on the device.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.camera';
let installParam: installer.InstallParam = {
    isKeepData: true,
    installFlag: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstallUpdates(bundleName, installParam)
            .then(() => {
                console.info('uninstallUpdates successfully.');
        }).catch((error: BusinessError) => {
            console.error('uninstallUpdates failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.createAppClone12+

createAppClone(bundleName: string, createAppCloneParam?: CreateAppCloneParam): Promise<number>;

Creates an application clone. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_CLONE_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application for which a clone is to be created.
createAppCloneParamcreateAppCloneParamNoOther parameters required for creating the clone. For details about the default values of these parameters, see createAppCloneParam.

Return value

TypeDescription
Promise<number>Promise used to return the index of the application clone.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_CLONE_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName cannot be found or the bundle is not installed by the specified user.
17700004The userId is invalid.
17700061The appIndex is not in valid range or already exists.
17700069The app does not support the creation of an appClone instance.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.camera';
let createAppCloneParam: installer.CreateAppCloneParam = {
    userId: 100,
    appIndex: 1,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.createAppClone(bundleName, createAppCloneParam)
            .then(() => {
                console.info('createAppClone successfully.');
        }).catch((error: BusinessError) => {
            console.error('createAppClone failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.destroyAppClone12+

destroyAppClone(bundleName: string, appIndex: number, userId?: number): Promise<void>;

Destroys an application clone. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.UNINSTALL_CLONE_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application for which a clone is to be destroyed.
appIndexnumberYesIndex of the clone to destroy.
userIdnumberNoID of the user for whom the clone is to be destroyed. You can obtain the user ID by calling getOsAccountLocalId. The default value is the user ID of the caller.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.UNINSTALL_CLONE_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName cannot be found or the bundle is not installed by the specified user.
17700004The userId is invalid.
17700061The appIndex is invalid.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.camera';
let index = 1;
let userId = 100;

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.destroyAppClone(bundleName, index, userId)
            .then(() => {
                console.info('destroyAppClone successfully.');
        }).catch((error: BusinessError) => {
            console.error('destroyAppClone failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.destroyAppClone15+

destroyAppClone(bundleName: string, appIndex: number, destroyAppCloneParam?: DestroyAppCloneParam): Promise<void>;

Destroys an application clone. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.UNINSTALL_CLONE_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application for which a clone is to be destroyed.
appIndexnumberYesIndex of the clone to destroy.
destroyAppCloneParamDestroyAppCloneParamNoOther parameters required for destroying the clone. For details about the default values of these parameters, see DestroyAppCloneParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.UNINSTALL_CLONE_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName cannot be found or the bundle is not installed by the specified user.
17700004The userId is invalid.
17700061The appIndex is invalid.
17700062Failed to uninstall the app because the app is locked.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.camera';
let index = 1;
let userId = 100;
let key = 'ohos.bms.param.verifyUninstallRule';
let value = 'false';
let item: installer.Parameters = {key, value};
let destroyAppCloneOpt: installer.DestroyAppCloneParam = {
    userId: userId,
    parameters: [item]
};


try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.destroyAppClone(bundleName, index, destroyAppCloneOpt)
            .then(() => {
                console.info('destroyAppClone successfully.');
        }).catch((error: BusinessError) => {
            console.error('destroyAppClone failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.installPreexistingApp12+

installPreexistingApp(bundleName: string, userId?: number): Promise<void>;

Installs a bundle. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
bundleNamestringYesBundle name of the application to install.
userIdnumberNoID of the user for whom the bundle is to be installed. You can obtain the user ID by calling getOsAccountLocalId. The value must be greater than 0. The default value is the user ID of the caller.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001The specified bundleName cannot be found.
17700004The userId is invalid.
17700071It is not allowed to install the enterprise bundle.
17700058Failed to install the HAP because this application is prohibited from being installed on this device or by specified users.

Example

import installer from '@ohos.bundle.installer';
import { BusinessError } from '@ohos.base';

let bundleName = 'com.ohos.camera';
let userId = 100;

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.installPreexistingApp(bundleName, userId)
            .then(() => {
                console.info('installPreexistingApp successfully.');
        }).catch((error: BusinessError) => {
            console.error('installPreexistingApp failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('getBundleInstaller failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.installPlugin19+

installPlugin(hostBundleName: string, pluginFilePaths: Array<string>, pluginParam?: PluginParam): Promise<void>

Installs a plugin for an application. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.INSTALL_PLUGIN_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hostBundleNamestringYesBundle name of the application for which the plugin is to be installed.
pluginFilePathsArray<string>YesPaths where the plugin package files are stored. If multiple file paths or a directory is provided, ensure that these files are HSPs of the same plugin program and their signatures are consistent.
pluginParamPluginParamNoParameters required for installing the plugin. For details about the default value, see PluginParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.INSTALL_PLUGIN_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
17700001The specified bundleName cannot be found.
17700004The userId is invalid.
17700010Failed to install the plugin because the plugin fails to be parsed.
17700011Failed to install the plugin because the plugin signature fails to be verified.
17700012Failed to install the plugin because the HSP path is invalid or the HSP is too large.
17700015Failed to install the plugin because they have different configuration information.
17700016Failed to install the plugin because of insufficient system disk space.
17700017Failed to install the plugin since the version of the plugin to install is too early.
17700048Failed to install the plugin because the code signature verification is failed.
17700052Failed to install the plugin because debug bundle cannot be installed under non-developer mode.
17700073Failed to install the plugin because a plugin with the same bundle name but different signature information exists on the device.
17700087Failed to install the plugin because the current device does not support plugin.
17700088Failed to install the plugin because the host application lacks ohos.permission.kernel.SUPPORT_PLUGIN.
17700089Failed to install the plugin because the plugin id fails to be parsed.
17700090Failed to install the plugin because the plugin id fails to be verified.
17700091Failed to install the plugin because the plugin name is same as host bundle name.

Example

import { installer } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let hostBundleName = 'com.example.application';
let pluginFilePaths = ['/data/bms_app_install/test.hsp'];
let pluginParam : installer.PluginParam = {
    userId : 100,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.installPlugin(hostBundleName, pluginFilePaths, pluginParam)
            .then(() => {
                console.info('installPlugin successfully.');
        }).catch((error: BusinessError) => {
            console.error('installPlugin failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('installPlugin failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

BundleInstaller.uninstallPlugin19+

uninstallPlugin(hostBundleName: string, pluginBundleName: string, pluginParam?: PluginParam): Promise<void>

Uninstalls a plugin for an application. This API uses a promise to return the result.

System API: This is a system API.

Required permissions: ohos.permission.UNINSTALL_PLUGIN_BUNDLE

System capability: SystemCapability.BundleManager.BundleFramework.Core

Parameters

NameTypeMandatoryDescription
hostBundleNamestringYesBundle name of the application for which the plugin is to be uninstalled.
pluginBundleNamestringYesBundle name of the plugin.
pluginParamPluginParamNoParameters required for uninstalling the plugin. For details about the default value, see PluginParam.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Bundle Error Codes.

IDError Message
201Calling interface without permission 'ohos.permission.UNINSTALL_PLUGIN_BUNDLE'.
202Permission verification failed. A non-system application calls a system API.
17700001The specified bundleName cannot be found.
17700004The userId is invalid.
17700092Failed to uninstall the plugin because the specified plugin is not found.

Example

import { installer } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let hostBundleName = 'com.example.application';
let pluginBundleName = 'com.ohos.pluginDemo';
let pluginParam : installer.PluginParam = {
    userId : 100,
};

try {
    installer.getBundleInstaller().then((data: installer.BundleInstaller) => {
        data.uninstallPlugin(hostBundleName, pluginBundleName, pluginParam)
            .then(() => {
                console.info('uninstallPlugin successfully.');
        }).catch((error: BusinessError) => {
            console.error('uninstallPlugin failed:' + error.message);
        });
    }).catch((error: BusinessError) => {
        console.error('uninstallPlugin failed. Cause: ' + error.message);
    });
} catch (error) {
    let message = (error as BusinessError).message;
    console.error('getBundleInstaller failed. Cause: ' + message);
}

HashParam

Defines the hash parameters for bundle installation and uninstall.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
moduleNamestringYesModule name of the bundle.
hashValuestringYesHash value.

InstallParam

Defines the parameters that need to be specified for bundle installation, uninstall, or recovering.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
userIdnumberNoUser ID. The default value is the user ID of the caller. The value must be greater than or equal to 0. You can call queryOsAccountLocalIdFromProcess to obtain the user ID of the current process. When a driver application is installed, uninstalled, or restored, this parameter is ignored and the operation is executed for all users.
installFlagnumberNoInstallation flag. The value 0x00 means initial installation, 0x01 means overwrite installation, and 0x10 means installation-free. The default value is 0x00.
isKeepDatabooleanNoWhether to retain the data directory during bundle uninstall. The default value is false. The value true means to retain the data directory during bundle uninstall, and false means the opposite.
hashParamsArray<HashParam>NoHash parameters. By default, no value is passed.
crowdtestDeadlinenumberNoEnd date of crowdtesting. The default value is -1, indicating that no end date is specified for crowdtesting.
sharedBundleDirPaths10+Array<String>NoPaths of the shared bundle files. By default, no value is passed.
specifiedDistributionType10+stringNoDistribution type specified during application installation. By default, no value is passed. The maximum length is 128 bytes. This field is usually specified by the application market of the operating system operator.
additionalInfo10+stringNoAdditional information during application installation (usually an enterprise application). By default, no value is passed. The maximum length is 3,000 bytes. This field is usually specified by the application market of the operating system operator.
verifyCodeParamsdeprecatedArray<VerifyCodeParam>NoInformation about the code signature file. The default value is null.
pgoParams11+Array<PGOParam>NoParameters of the Profile-guided Optimization (PGO) configuration file. The default value is null.
parameters15+Array<Parameters>NoExtended parameters, represented as an array of the Parameters type. The default value is empty. The options of Parameters.key are as follows:
- ohos.bms.param.renameInstall: If the value is true, the installation package is moved from the application sandbox to the installation directory using a shared directory. Otherwise, it is copied from the application sandbox to the installation directory using a regular directory.
- ohos.bms.param.enterpriseForAllUser: If the value is true, the enterprise application is installed for all users.
- ohos.bms.param.verifyUninstallRule: If the value is true, an uninstallation handling rule is set to block application uninstallation.

UninstallParam10+

Defines the parameters required for the uninstall of a shared bundle.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
bundleNamestringYesName of the shared bundle.
versionCodenumberNoVersion number of the shared bundle. By default, no value is passed, and all shared bundles of the specified name are uninstalled.

VerifyCodeParamdeprecated

Since API version 11, the code signature file of an application is integrated into the installation package, rather than being specified by using this field.

Defines the information about the code signature file.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
moduleNamestringYesModule name of the bundle.
signatureFilePathstringYesPath of the code signature file.

PGOParam11+

Defines the parameters of the PGO configuration file.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
moduleNamestringYesModule name of the bundle.
pgoFilePathstringYesPath of the PGO configuration file.

Parameters15+

Describes the extended parameter information.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
keystringYesKey of an extended parameter.
valuestringYesValue of the extended parameter.

CreateAppCloneParam12+

Describes the parameters used for creating an application clone.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
userIdnumberNoID of the user for whom the clone is to be created. You can obtain the user ID by calling getOsAccountLocalId. The default value is the user ID of the caller.
appIndexnumberNoIndex of the clone. The default value is the currently available minimum index.

DestroyAppCloneParam15+

Describes the parameters used for destroying an application clone.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
userIdnumberNoID of the user for whom the clone is to be destroyed. You can obtain the user ID by calling getOsAccountLocalId. The default value is the user ID of the caller.
parametersArray<Parameters>NoExtended parameters for destroying the clone. The default value is null.

PluginParam19+

Defines the parameters for installing or uninstalling a plugin.

System capability: SystemCapability.BundleManager.BundleFramework.Core

System API: This is a system API.

NameTypeMandatoryDescription
userIdnumberNoID of the user for whom the plugin is to be installed or uninstalled. You can obtain the user ID by calling getOsAccountLocalId. The default value is the user ID of the caller.
parametersArray<Parameters>NoExtension parameters for installing or uninstalling the plugin. The default value is empty.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit

harmony 鸿蒙AbilityAccessControl

harmony 鸿蒙AbilityBase

harmony 鸿蒙AbilityBase_Element

harmony 鸿蒙AbilityRuntime

harmony 鸿蒙bundle

harmony 鸿蒙OH_NativeBundle_ApplicationInfo

harmony 鸿蒙OH_NativeBundle_ElementName

harmony 鸿蒙ability_access_control.h

harmony 鸿蒙ability_base_common.h

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/CjBY48