case PKGMGR_REQ_UNINSTALL:
{
PackageId reqeustPackageId;
-
path.SubString(0, PACKAGE_ID_LENGTH, reqeustPackageId);
-
AppLog("reqeustPackage = %ls", reqeustPackageId.GetPointer());
- ret = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi);
+
+ String originPath;
+ if (InstallerManager::IsUninstallUpdates(reqeustPackageId, originPath) == true)
+ {
+ AppLog("originPath = [%ls]", originPath.GetPointer());
+
+ optionalData = reqeustPackageId;
+ errorType = InstallerManager::Request(originPath, INSTALLER_OPERATION_INSTALL, INSTALLER_OPTION_RESET_PRELOADED, _pi, &optionalData);
+ }
+ else
+ {
+ ret = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi);
+ }
__osp_installer_report_result(reqeustPackageId, errorType);
}