Fix installing privileges of hybrid package
[platform/core/appfw/wgt-backend.git] / src / hybrid / hybrid_installer.cc
index 0ebad97..4748781 100644 (file)
@@ -130,9 +130,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -152,7 +149,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::pkgmgr::StepRegisterApplication>();
@@ -181,9 +182,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -210,7 +208,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::pkgmgr::StepUpdateApplication>();
@@ -276,9 +278,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -302,7 +301,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::security::StepRegisterTrustAnchor>(
@@ -353,9 +356,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -375,7 +375,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::pkgmgr::StepRegisterApplication>();
@@ -404,9 +408,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -432,7 +433,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::pkgmgr::StepUpdateApplication>();
@@ -460,9 +465,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<ci::security::StepRollbackInstallationSecurity>();
@@ -472,7 +474,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<ci::pkgmgr::StepRegisterApplication>();
       AddStep<ci::security::StepRegisterTrustAnchor>(
           ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
@@ -498,9 +504,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<ci::configuration::StepParseManifest>(
@@ -513,7 +516,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::security::StepRegisterTrustAnchor>(
           ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
@@ -534,10 +541,14 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<hybrid::configuration::StepStashTpkConfig>();
       AddStep<wgt::configuration::StepParse>(
           wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
       AddStep<ci::configuration::StepParsePreload>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
       AddStep<ci::pkgmgr::StepRegisterApplication>();
       AddStep<ci::security::StepRegisterTrustAnchor>(
@@ -555,18 +566,22 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
     case ci::RequestType::ManifestPartialUpdate: {
       AddStep<ci::configuration::StepConfigure>(pkgmgr_);
       AddStep<ci::configuration::StepParseManifest>(
-          ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+          ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
           ci::configuration::StepParseManifest::StoreLocation::NORMAL);
       AddStep<hybrid::configuration::StepStashTpkConfig>();
       AddStep<wgt::configuration::StepParse>(
           wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
       AddStep<ci::configuration::StepParsePreload>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
       AddStep<ci::configuration::StepParseManifest>(
           ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
           ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<ci::pkgmgr::StepKillApps>();
       AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
       AddStep<ci::pkgmgr::StepUpdateApplication>();
@@ -615,9 +630,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::configuration::StepCheckTizenVersion>();
       AddStep<ci::security::StepCheckSignature>();
       AddStep<ci::security::StepSaveSignature>();
-      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
-      AddStep<ci::security::StepPrivilegeCompatibility>(
-          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
       AddStep<wgt::security::StepCheckWgtNotificationCategory>();
@@ -641,7 +653,11 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
       AddStep<tpk::pkgmgr::StepManifestAdjustment>();
-      AddStep<hybrid::configuration::StepMergeTpkConfig>();
+      AddStep<hybrid::configuration::StepMergeTpkConfig>(
+          hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
+      AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
+      AddStep<ci::security::StepPrivilegeCompatibility>(
+          ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
       AddStep<ci::pkgmgr::StepUpdateApplication>();