IssueNo:#I42NRY

Description:add bms permissions code
Sig:startup
Feature or Bugfix:Bugfix
Binary Source:No

Signed-off-by: wangdengjia <wangdengjia@huawei.com>
This commit is contained in:
wangdengjia
2021-07-27 20:22:47 +08:00
parent 308318b9fa
commit 00b975ead9
@@ -234,8 +234,8 @@ uint8_t GtBundleInstaller::ProcessBundleInstall(const char *path, const char *ra
BundleInfo *bundleInfo = nullptr;
(void) GtManagerService::GetInstance().ReportInstallCallback(OPERATION_DOING, 0, BMS_FIRST_FINISHED_PROCESS, installerCallback);
uint8_t errorCode = PreCheckBundle(path, fp, signatureInfo, fileSize, bundleStyle);
(void) GtManagerService::GetInstance().ReportInstallCallback(OPERATION_DOING, 0, BMS_SECOND_FINISHED_PROCESS, installerCallback);
CHECK_PRO_RESULT(errorCode, fp, permissions, bundleInfo, signatureInfo);
(void) GtManagerService::GetInstance().ReportInstallCallback(OPERATION_DOING, 0, BMS_SECOND_FINISHED_PROCESS, installerCallback);
// parse HarmoyProfile.json, get permissions and bundleInfo
errorCode = GtBundleParser::ParseHapProfile(fp, fileSize, permissions, bundleRes, &bundleInfo);
CHECK_PRO_RESULT(errorCode, fp, permissions, bundleInfo, signatureInfo);
@@ -285,6 +285,11 @@ uint8_t GtBundleInstaller::ProcessBundleInstall(const char *path, const char *ra
errorCode = MoveRawFileToDataPath(bundleInfo);
CHECK_PRO_ROLLBACK(errorCode, permissions, bundleInfo, signatureInfo, randStr);
(void) GtManagerService::GetInstance().ReportInstallCallback(OPERATION_DOING, 0, BMS_FIFTH_FINISHED_PROCESS, installerCallback);
// store permissions
errorCode = StorePermissions(installRecord.bundleName, permissions.permissionTrans, permissions.permNum,
isUpdate);
CHECK_PRO_ROLLBACK(errorCode, permissions, bundleInfo, signatureInfo, randStr);
// update bundle Info
errorCode = UpdateBundleInfo(bundleStyle, labelId, iconId, bundleInfo, isUpdate);
CHECK_PRO_ROLLBACK(errorCode, permissions, bundleInfo, signatureInfo, randStr);
// free memory
@@ -572,6 +577,10 @@ uint8_t GtBundleInstaller::Uninstall(const char *bundleName)
return ERR_APPEXECFWK_UNINSTALL_FAILED_INTERNAL_ERROR;
}
if (DeletePermissions(const_cast<char *>(bundleName)) < 0) {
return ERR_APPEXECFWK_UNINSTALL_FAILED_DELETE_PERMISSIONS_ERROR;
}
bool res = CheckIsThirdSystemBundle(bundleName);
if (!(BundleUtil::RemoveDir(bundleInfo->codePath) && BundleUtil::RemoveDir(bundleInfo->dataPath))) {
GtManagerService::GetInstance().RemoveBundleInfo(bundleName);