@ohos.bundle.installer (installer)
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.
Modules to Import
import installer from '@ohos.bundle.installer';
Required Permissions
Permission | Permission Level | Description |
---|---|---|
ohos.permission.INSTALL_BUNDLE | system_core | Permission to install or uninstall bundles. |
For details, see Permission Levels.
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 and cannot be called by third-party applications.
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<BundleInstaller> | Yes | Callback used to return the result. If the operation is successful, err is undefined and data is the BundleInstaller object obtained; otherwise, err is an error object. |
Example
import installer from '@ohos.bundle.installer';
try {
installer.getBundleInstaller((err, data) => {
if (err) {
console.error('getBundleInstaller failed:' + err.message);
} else {
console.info('getBundleInstaller successfully');
}
});
} catch (error) {
console.error('getBundleInstaller failed:' + error.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 and cannot be called by third-party applications.
System capability: SystemCapability.BundleManager.BundleFramework.Core
Return value
Type | Description |
---|---|
Promise<BundleInstaller> | Promise used to return the BundleInstaller object obtained. |
Example
import installer from '@ohos.bundle.installer';
try {
installer.getBundleInstaller().then((data) => {
console.info('getBundleInstaller successfully.');
}).catch((error) => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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 and cannot be called by third-party applications.
Required permissions: ohos.permission.INSTALL_BUNDLE
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
hapFilePaths | Array<string> | Yes | Paths 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. |
installParam | InstallParam | Yes | Parameters required for the installation. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700004 | The specified user ID is not found. |
17700010 | Failed to install the HAP because the HAP fails to be parsed. |
17700011 | Failed to install the HAP because the HAP signature fails to be verified. |
17700012 | Failed to install the HAP because the HAP path is invalid or the HAP is too large. |
17700015 | Failed to install the HAPs because they have different configuration information. |
17700016 | Failed to install the HAP because of insufficient system disk space. |
17700017 | Failed to install the HAP since the version of the HAP to install is too early. |
17700018 | Failed to install because the dependent module does not exist. |
Example
import installer from '@ohos.bundle.installer';
let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1,
};
try {
installer.getBundleInstaller().then(data => {
data.install(hapFilePaths, installParam, err => {
if (err) {
console.error('install failed:' + err.message);
} else {
console.info('install successfully.');
}
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
hapFilePaths | Array<string> | Yes | Paths 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. |
installParam | InstallParam | No | Parameters required for the installation. |
Return value
Type | Description |
---|---|
Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700004 | The specified user ID is not found. |
17700010 | Failed to install the HAP because the HAP fails to be parsed. |
17700011 | Failed to install the HAP because the HAP signature fails to be verified. |
17700012 | Failed to install the HAP because the HAP path is invalid or the HAP is too large. |
17700015 | Failed to install the HAPs because they have different configuration information. |
17700016 | Failed to install the HAP because of insufficient system disk space. |
17700017 | Failed to install the HAP since the version of the HAP to install is too early. |
17700018 | Failed to install because the dependent module does not exist. |
Example
import installer from '@ohos.bundle.installer';
let hapFilePaths = ['/data/storage/el2/base/haps/entry/files/'];
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1,
};
try {
installer.getBundleInstaller().then(data => {
data.install(hapFilePaths, installParam)
.then((data) => {
console.info('install successfully: ' + JSON.stringify(data));
}).catch((error) => {
console.error('install failed:' + error.message);
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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 and cannot be called by third-party applications.
Required permissions: ohos.permission.INSTALL_BUNDLE
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
bundleName | string | Yes | Name of the target bundle. |
installParam | InstallParam | Yes | Parameters required for the uninstall. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700001 | The specified bundle name is not found. |
17700004 | The specified user ID is not found. |
17700020 | The specified bundle is pre-installed bundle which cannot be uninstalled. |
Example
import installer from '@ohos.bundle.installer';
let bundleName = 'com.ohos.demo';
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1
};
try {
installer.getBundleInstaller().then(data => {
data.uninstall(bundleName, installParam, err => {
if (err) {
console.error('uninstall failed:' + err.message);
} else {
console.info('uninstall successfully.');
}
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
bundleName | string | Yes | Name of the target bundle. |
installParam | InstallParam | No | Parameters required for the uninstall. |
Return value
Type | Description |
---|---|
Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700001 | The specified bundle name is not found. |
17700004 | The specified user ID is not found. |
17700020 | The specified bundle is pre-installed bundle which cannot be uninstalled. |
Example
import installer from '@ohos.bundle.installer';
let bundleName = 'com.ohos.demo';
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1,
};
try {
installer.getBundleInstaller().then(data => {
data.uninstall(bundleName, installParam)
.then((data) => {
console.info('uninstall successfully: ' + JSON.stringify(data));
}).catch((error) => {
console.error('uninstall failed:' + error.message);
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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 and cannot be called by third-party applications.
Required permissions: ohos.permission.INSTALL_BUNDLE
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
bundleName | string | Yes | Name of the target bundle. |
installParam | InstallParam | Yes | Parameters required for the recovery. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700001 | The specified bundle name is not found. |
17700004 | The specified user ID is not found. |
Example
import installer from '@ohos.bundle.installer';
let bundleName = 'com.ohos.demo';
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1
};
try {
installer.getBundleInstaller().then(data => {
data.recover(bundleName, installParam, err => {
if (err) {
console.error('recover failed:' + err.message);
} else {
console.info('recover successfully.');
}
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.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
System capability: SystemCapability.BundleManager.BundleFramework.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
bundleName | string | Yes | Name of the target bundle. |
installParam | InstallParam | No | Parameters required for the recovery. |
Return value
Type | Description |
---|---|
Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Bundle Error Codes.
ID | Error Message |
---|---|
17700001 | The specified bundle name is not found. |
17700004 | The specified user ID is not found. |
Example
import installer from '@ohos.bundle.installer';
let bundleName = 'com.ohos.demo';
let installParam = {
userId: 100,
isKeepData: false,
installFlag: 1,
};
try {
installer.getBundleInstaller().then(data => {
data.recover(bundleName, installParam)
.then((data) => {
console.info('recover successfully: ' + JSON.stringify(data));
}).catch((error) => {
console.error('recover failed:' + error.message);
});
}).catch(error => {
console.error('getBundleInstaller failed. Cause: ' + error.message);
});
} catch (error) {
console.error('getBundleInstaller failed. Cause: ' + error.message);
}
HashParam
Defines the hash parameters for bundle installation and uninstall.
System capability: SystemCapability.BundleManager.BundleFramework.Core
System API: This is a system API and cannot be called by third-party applications.
Name | Type | Mandatory | Description |
---|---|---|---|
moduleName | string | Yes | Module name of the bundle. |
hashValue | string | Yes | Hash 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 and cannot be called by third-party applications.
Name | Type | Mandatory | Description |
---|---|---|---|
userId | number | No | User ID. You can use queryOsAccountLocalIdFromProcess to obtain the user of the current process. |
installFlag | number | No | Installation flag. The value 0 means initial installation and 1 means overwrite installation. |
isKeepData | boolean | No | Whether to retain the data directory during bundle uninstall. |
hashParams | Array<HashParam> | No | Hash parameters. |
crowdtestDeadline | number | No | End date of crowdtesting. |