From: Sangyoon Jang Date: Thu, 30 May 2019 10:16:36 +0000 (+0900) Subject: Fix adding steps using default steps X-Git-Tag: accepted/tizen/unified/20200108.131500~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=19a7d556d898fb2b587285c353caa49f490e106a;p=platform%2Fcore%2Fappfw%2Fwgt-backend.git Fix adding steps using default steps Requires: - https://review.tizen.org/gerrit/c/platform/core/appfw/app-installers/+/207215 Change-Id: Ic7ebf33c40b9899b3e71d6307bd3249b31ed3900 Signed-off-by: Sangyoon Jang --- diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc index 4d18750..d3accd7 100644 --- a/src/hybrid/hybrid_installer.cc +++ b/src/hybrid/hybrid_installer.cc @@ -5,79 +5,11 @@ #include "hybrid/hybrid_installer.h" #include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include @@ -119,142 +51,74 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) } void HybridInstaller::InstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::InstallSteps(); + AddStepAfter("CheckInstallable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("Signature"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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( + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::HybridAdditionalSharedDirs); - AddStep(); - AddStep(); + AddStepAfter( + "CreateStorageDirectories"); } void HybridInstaller::UpdateSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::UpdateSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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(); + AddStepAfter( + "CopyStorageDirectories"); } void HybridInstaller::UninstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep( - ci::Plugin::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); + AppInstaller::UninstallSteps(); + AddStepAfter( + "RemovePerUserStorageDirectories"); } void HybridInstaller::ReinstallSteps() { @@ -263,507 +127,304 @@ void HybridInstaller::ReinstallSteps() { } void HybridInstaller::DeltaSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep( - wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AppInstaller::DeltaSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter( + "EnableExternalMount"); + AddStepAfter("StashTpkConfig", + wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, false); + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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(); + AddStepAfter( + "CopyStorageDirectories"); } void HybridInstaller::RecoverySteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::RECOVERY, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AppInstaller::RecoverySteps(); + AddStepAfter("MountRecover"); + AddStepAfter( + "TpkRecoverSignature", ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(); - AddStep(); } void HybridInstaller::MountInstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::MountInstallSteps(); + AddStepAfter("CheckInstallable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("Signature"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("MountInstall"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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( + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::HybridAdditionalSharedDirs); - AddStep(true); - AddStep(); + AddStepAfter( + "CreateStorageDirectories"); } void HybridInstaller::MountUpdateSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::MountUpdateSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(true); - 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(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("MountUpdate"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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(true); - AddStep(); + AddStepAfter( + "UpdateStorageDirectories"); } void HybridInstaller::ManifestDirectInstallSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::ManifestDirectInstallSteps(); + AddStepAfter("CheckInstallable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("Signature"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "RemoveGlobalAppSymlinks"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep( - ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("PrivilegeCompatibility"); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::HybridAdditionalSharedDirs); - AddStep(); - AddStep(); } void HybridInstaller::ManifestDirectUpdateSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::ManifestDirectUpdateSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "RemoveGlobalAppSymlinks"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); } void HybridInstaller::ManifestPartialInstallSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( + AppInstaller::ManifestPartialInstallSteps(); + AddStepAfter("ParseManifest"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(false); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep( - ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("Signature"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + false); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::HybridAdditionalSharedDirs); - AddStep(); + AddStepBefore( + "RegisterApplication"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStepAfter("PrivilegeCompatibility"); } void HybridInstaller::ManifestPartialUpdateSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( + AppInstaller::ManifestPartialUpdateSteps(); + AddStepAfter("ParseManifest"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(false); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep( + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + false); + AddStepBefore("UpdateApplication"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); } void HybridInstaller::PartialUninstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep( - ci::Plugin::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Uninstall); - AddStep(); + AppInstaller::PartialUninstallSteps(); + AddStepAfter( + "RemovePerUserStorageDirectories"); } void HybridInstaller::ReadonlyUpdateInstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( + AppInstaller::ReadonlyUpdateInstallSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter("StashTpkConfig", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("CheckOldCertificate"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter( + "CheckWgtImePrivilege"); + AddStepAfter("CreateIcons"); + AddStepAfter("TpkPatchIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CreateTpkSymbolicLink"); + AddStepAfter("GenerateXml"); + AddStepAfter("MergeXml"); + AddStepAfter("ManifestAdjustment"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", 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(); + AddStepAfter( + "CreateStorageDirectories"); } void HybridInstaller::ReadonlyUpdateUninstallSteps() { - 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(false); - AddStep( - ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - 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); + AppInstaller::ReadonlyUpdateUninstallSteps(); + AddStepAfter("CheckUpgradable"); + AddStepAfter("StashTpkConfig", + wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); + AddStepAfter("Signature"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepBefore("UpdateApplication"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", + ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); + AddStepAfter("PrivilegeCompatibility"); } void HybridInstaller::EnablePkgSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( - ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable); - AddStep( - ci::Plugin::ActionType::Install); + AppInstaller::EnablePkgSteps(); } void HybridInstaller::DisablePkgSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( - ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable); - AddStep( - ci::Plugin::ActionType::Uninstall); + AppInstaller::DisablePkgSteps(); } void HybridInstaller::MigrateExtImgSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); + AppInstaller::MigrateExtImgSteps(); } void HybridInstaller::RecoverDBSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( - wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AppInstaller::RecoverDBSteps(); + AddStepAfter("CheckInstallable"); + AddStepAfter("StashTpkConfig", + wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true); + AddStepAfter("GetPrivilegeLevel"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepBefore( + "RegisterApplication"); + AddStepAfter("MergeTpkConfig"); + AddStepAfter("MergeTpkPrivileges", ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); } } // namespace hybrid diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc index 2187656..f74e37a 100644 --- a/src/wgt/wgt_installer.cc +++ b/src/wgt/wgt_installer.cc @@ -7,87 +7,10 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include @@ -126,617 +49,332 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) } void WgtInstaller::InstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::InstallSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter("Signature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep( - ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("EncryptResources"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::WgtAdditionalSharedDirs); - AddStep(); - AddStep(); + AddStepAfter( + "CreateStorageDirectories"); } void WgtInstaller::UpdateSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::UpdateSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter("CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("EncryptResources"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + AddStepAfter( + "CopyStorageDirectories"); } void WgtInstaller::UninstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::Plugin::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); + AppInstaller::UninstallSteps(); + AddStepAfter( + "RemovePerUserStorageDirectories"); } void WgtInstaller::ReinstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep( + AppInstaller::ReinstallSteps(); + AddStepAfter("Configure"); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, false); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep(); - AddStep(); + // Unlike reinstall mode (RDS) of tpk-backend, the RDS package of wgt does not + // contain signature files. This may can be changed differently later. + RemoveStep("Signature"); + RemoveStep("CheckOldCertificate"); + AddStepAfter("CreateIcons"); } void WgtInstaller::DeltaSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::DeltaSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, false); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep("res/wgt/"); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter( + "EnableExternalMount"); + ReplaceStep("DeltaPatch", "res/wgt/"); + AddStepAfter("DisableExternalMount"); + AddStepAfter("CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("EncryptResources"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter("CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + AddStepAfter( + "CopyStorageDirectories"); } void WgtInstaller::RecoverySteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::RECOVERY, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AppInstaller::RecoverySteps(); + AddStepAfter("MountRecover"); + AddStepAfter( + "WgtRecoverSignature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); } void WgtInstaller::MountInstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::MountInstallSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter("Signature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep( - ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("MountInstall"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter( + "CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::WgtAdditionalSharedDirs); - AddStep(true); - AddStep(); + AddStepAfter( + "CreateStorageDirectories"); } void WgtInstaller::MountUpdateSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::MountUpdateSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter("CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - 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(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(true); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("MountUpdate"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter( + "CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + AddStepAfter( + "UpdateStorageDirectories"); } void WgtInstaller::ManifestDirectInstallSteps() { - AddStep(pkgmgr_); - AddStep( + AppInstaller::ManifestDirectInstallSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + ReplaceStep("Signature", true); + AddStepAfter( + "DirectManifestSignature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep(ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + true); + AddStepAfter( + "WgtPatchIcons"); + AddStepAfter("CreateWgtSymbolicLink"); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::WgtAdditionalSharedDirs); - AddStep(); - AddStep(); } void WgtInstaller::ManifestDirectUpdateSteps() { - AddStep(pkgmgr_); - AddStep( + AppInstaller::ManifestDirectUpdateSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + ReplaceStep("Signature", true); + AddStepAfter( + "CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + true); + AddStepAfter( + "WgtPatchIcons"); + AddStepAfter("CreateWgtSymbolicLink"); } void WgtInstaller::ReadonlyUpdateInstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep( + AppInstaller::ReadonlyUpdateInstallSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::PACKAGE, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(true); - AddStep( + AddStepAfter("CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - 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(true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep(ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("CheckWgtImePrivilege"); + AddStepAfter("EncryptResources"); + AddStepAfter("CreateIcons", true); + AddStepAfter("WgtPatchIcons"); + AddStepAfter( + "CopyPreviewIcons"); + AddStepAfter( + "CreateWgtSymbolicLink"); + AddStepAfter("CheckExtensionPrivileges"); + AddStepAfter( + "CreateStorageDirectories"); } void WgtInstaller::ReadonlyUpdateUninstallSteps() { - 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(false); - AddStep( + AppInstaller::ReadonlyUpdateUninstallSteps(); + AddStepBefore( + "Signature"); + AddStepAfter("Signature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - 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); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); } void WgtInstaller::ManifestPartialInstallSteps() { - AddStep(pkgmgr_); - AddStep( + AppInstaller::ManifestPartialInstallSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(false); - AddStep( + ReplaceStep("Signature", false); + AddStepAfter( + "DirectManifestSignature", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Install); - AddStep(); - AddStep(ci::Plugin::ActionType::Install); - AddStep( + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + false); + ReplaceStep( + "CreateStorageDirectories", wgt::filesystem::WgtAdditionalSharedDirs); - AddStep(); } void WgtInstaller::ManifestPartialUpdateSteps() { - AddStep(pkgmgr_); - AddStep( + AppInstaller::ManifestPartialUpdateSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::BACKUP); - AddStep(false); - AddStep( + ReplaceStep("Signature", false); + AddStepAfter( + "CheckOldCertificate", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); - AddStep(false); - AddStep(); - AddStep( - ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Update); - AddStep(); - AddStep( - ci::Plugin::ActionType::Upgrade); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); + AddStepAfter("RemoveGlobalAppSymlinks", + false); } void WgtInstaller::PartialUninstallSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep( - ci::Plugin::ActionType::Uninstall); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( - ci::security::StepPrivacyPrivilege::ActionType::Uninstall); - AddStep(); + AppInstaller::PartialUninstallSteps(); + AddStepAfter( + "RemovePerUserStorageDirectories"); } void WgtInstaller::MoveSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep(); - AddStep(); - AddStep(); + AppInstaller::MoveSteps(); } void WgtInstaller::EnablePkgSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( - ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable); - AddStep( - ci::Plugin::ActionType::Install); + AppInstaller::EnablePkgSteps(); } void WgtInstaller::DisablePkgSteps() { - AddStep(pkgmgr_); - AddStep( - ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, - ci::configuration::StepParseManifest::StoreLocation::NORMAL); - AddStep(); - AddStep( - ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable); - AddStep( - ci::Plugin::ActionType::Uninstall); + AppInstaller::DisablePkgSteps(); } void WgtInstaller::MigrateExtImgSteps() { - AddStep(pkgmgr_); - AddStep(); - AddStep(); + AppInstaller::MigrateExtImgSteps(); } void WgtInstaller::RecoverDBSteps() { - AddStep(pkgmgr_); - AddStep( + AppInstaller::RecoverDBSteps(); + ReplaceStep("ParseManifest", wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); - AddStep(); - AddStep(); - AddStep(); - AddStep(); - AddStep( + AddStepAfter("GetPrivilegeLevel", ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); - AddStep(); - AddStep(); - AddStep(); + AddStepAfter("PrivilegeCompatibility"); + AddStepAfter( + "CheckSettingsLevel"); + AddStepAfter( + "CheckWgtBackgroundCategory"); + AddStepAfter( + "CheckWgtNotificationCategory"); } } // namespace wgt