Force uninstall for external storage packages
[platform/core/appfw/wgt-backend.git] / src / hybrid / hybrid_installer.cc
index 9099883..ea2cc76 100644 (file)
@@ -14,7 +14,9 @@
 #include <common/step/configuration/step_parse_manifest.h>
 #include <common/step/configuration/step_parse_preload.h>
 #include <common/step/filesystem/step_acquire_external_storage.h>
+#include <common/step/filesystem/step_optional_acquire_external_storage.h>
 #include <common/step/filesystem/step_clear_data.h>
+#include <common/step/filesystem/step_change_owner.h>
 #include <common/step/filesystem/step_copy.h>
 #include <common/step/filesystem/step_copy_storage_directories.h>
 #include <common/step/filesystem/step_copy_tep.h>
@@ -132,6 +134,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepRegisterApplication>();
       AddStep<ci::security::StepRegisterSecurity>();
       AddStep<ci::filesystem::StepCreatePerUserStorageDirectories>();
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::Update:
@@ -178,6 +181,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::pkgmgr::StepRunParserPlugin>(
           ci::Plugin::ActionType::Upgrade);
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::Uninstall:
@@ -191,7 +195,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
           ci::Plugin::ActionType::Uninstall);
       AddStep<ci::pkgmgr::StepKillApps>();
       AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
-      AddStep<ci::filesystem::StepAcquireExternalStorage>(true);
+      AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
       AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
       AddStep<ci::pkgmgr::StepUnregisterApplication>();
       AddStep<ci::security::StepRollbackDeinstallationSecurity>();
@@ -254,6 +258,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::pkgmgr::StepRunParserPlugin>(
           ci::Plugin::ActionType::Upgrade);
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::Recovery:
@@ -318,6 +323,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepRegisterApplication>();
       AddStep<ci::security::StepRegisterSecurity>();
       AddStep<ci::filesystem::StepCreatePerUserStorageDirectories>();
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::MountUpdate:
@@ -363,6 +369,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::pkgmgr::StepRunParserPlugin>(
           ci::Plugin::ActionType::Upgrade);
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::ManifestDirectInstall:
@@ -388,6 +395,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepRegisterApplication>();
       AddStep<ci::security::StepRegisterSecurity>();
       AddStep<ci::filesystem::StepCreatePerUserStorageDirectories>();
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::ManifestDirectUpdate:
@@ -417,6 +425,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::pkgmgr::StepRunParserPlugin>(
           ci::Plugin::ActionType::Upgrade);
+      AddStep<ci::filesystem::StepChangeOwner>();
       AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
       break;
     case ci::RequestType::EnablePkg: