X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fhybrid%2Fhybrid_installer.cc;h=47487813ac89e6069b1509fc91da592de04aae18;hb=b496639ecf6b0e52ff3db3da119c8c4eecb2f020;hp=eca31a406980405ff039be50e0bbd890644897b9;hpb=6cca2243df10c828153fbd437362bda6c7222fb7;p=platform%2Fcore%2Fappfw%2Fwgt-backend.git diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc index eca31a4..4748781 100644 --- a/src/hybrid/hybrid_installer.cc +++ b/src/hybrid/hybrid_installer.cc @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +44,8 @@ #include #include #include +#include +#include #include #include #include @@ -61,18 +65,23 @@ #include #include #include +#include #include +#include #include #include #include -#include #include +#include #include +#include +#include #include #include #include #include +#include #include #include "hybrid/hybrid_backend_data.h" @@ -83,11 +92,13 @@ #include "hybrid/step/encryption/step_encrypt_resources.h" #include "hybrid/step/pkgmgr/step_generate_xml.h" #include "wgt/step/configuration/step_parse.h" +#include "wgt/step/configuration/step_set_old_signature_files_location.h" #include "wgt/step/encryption/step_remove_encryption_data.h" #include "wgt/step/filesystem/step_copy_preview_icons.h" #include "wgt/step/filesystem/step_create_symbolic_link.h" #include "wgt/step/filesystem/step_wgt_patch_icons.h" #include "wgt/step/filesystem/step_wgt_patch_storage_directories.h" +#include "wgt/step/filesystem/step_wgt_undo_patch_storage_directories.h" #include "wgt/step/pkgmgr/step_generate_xml.h" #include "wgt/step/security/step_check_settings_level.h" #include "wgt/step/security/step_check_wgt_background_category.h" @@ -118,9 +129,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); @@ -139,11 +148,20 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); - AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Install); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep( @@ -163,9 +181,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); @@ -182,21 +198,32 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(true); AddStep(); AddStep(); + AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); + AddStep(); AddStep(); AddStep(); break; @@ -215,12 +242,14 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); + AddStep(); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Uninstall); AddStep(); AddStep(); AddStep(); @@ -235,6 +264,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep( ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, ci::configuration::StepParseManifest::StoreLocation::NORMAL); + AddStep(); AddStep(); AddStep( ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, @@ -247,9 +277,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); @@ -263,21 +291,32 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(true); AddStep(); AddStep(); + AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); + AddStep(); AddStep(); AddStep(); break; @@ -292,12 +331,15 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); + AddStep(); break; case ci::RequestType::MountInstall: AddStep(pkgmgr_); @@ -313,9 +355,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); @@ -334,16 +374,25 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); - AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Install); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep( wgt::filesystem::HybridAdditionalSharedDirs); - AddStep(); + AddStep(true); AddStep(); break; case ci::RequestType::MountUpdate: @@ -358,9 +407,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); @@ -377,21 +424,32 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); - AddStep(); + AddStep(); + AddStep(true); AddStep(); break; case ci::RequestType::ManifestDirectInstall: @@ -406,18 +464,27 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep(); AddStep(); + AddStep(); + AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Install); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep( @@ -428,7 +495,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) case ci::RequestType::ManifestDirectUpdate: AddStep(pkgmgr_); AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, ci::configuration::StepParseManifest::StoreLocation::NORMAL); AddStep(); AddStep( @@ -436,23 +503,33 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, ci::configuration::StepParseManifest::StoreLocation::BACKUP); AddStep(); - AddStep(); AddStep(); + AddStep(); + AddStep(); AddStep(); AddStep(); - AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); + AddStep(); AddStep(); AddStep(); break; @@ -464,11 +541,21 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep( wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE); + AddStep(); AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); AddStep(); - AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Install); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep( @@ -479,21 +566,33 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) case ci::RequestType::ManifestPartialUpdate: { AddStep(pkgmgr_); AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, ci::configuration::StepParseManifest::StoreLocation::NORMAL); AddStep(); AddStep( wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE); + AddStep(); AddStep(); + AddStep(); + AddStep(); AddStep( ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); AddStep(); AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); + AddStep(); AddStep(); break; } @@ -512,9 +611,99 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); + AddStep(); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Uninstall); AddStep(); break; } + case ci::RequestType::ReadonlyUpdateInstall: + AddStep(pkgmgr_); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, + ci::configuration::StepParseManifest::StoreLocation::NORMAL); + AddStep(); + AddStep( + wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::StoreLocation::BACKUP); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep( + hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); + AddStep( + ci::Plugin::ActionType::Upgrade); + AddStep(); + AddStep(); + AddStep(); + break; + case ci::RequestType::ReadonlyUpdateUninstall: + AddStep(pkgmgr_); + AddStep(); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::StoreLocation::BACKUP); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::StoreLocation::NORMAL); + AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); + AddStep( + ci::security::StepPrivacyPrivilege::ActionType::Update); + AddStep(); + AddStep(); + AddStep(ci::Plugin::ActionType::Upgrade); + break; case ci::RequestType::EnablePkg: AddStep(pkgmgr_); AddStep(