From 540993767301c11532af3fec8e379bac8a6731ad Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Fri, 11 Nov 2016 15:16:12 +0900 Subject: [PATCH] Add new steps: ReadonlyUpdateInstall, ReadonlyUpdateUninstall Requires: - https://review.tizen.org/gerrit/97079 Change-Id: I36c1fb3e4a22fc9fc0e3d53f73a678c591b923c1 Signed-off-by: Sangyoon Jang --- src/tpk/tpk_app_query_interface.cc | 4 +++ src/tpk/tpk_app_query_interface.h | 1 + src/tpk/tpk_installer.cc | 69 ++++++++++++++++++++++++++++++++++++++ src/tpk/tpk_installer.h | 2 ++ 4 files changed, 76 insertions(+) diff --git a/src/tpk/tpk_app_query_interface.cc b/src/tpk/tpk_app_query_interface.cc index d048ef8..f74e7ae 100644 --- a/src/tpk/tpk_app_query_interface.cc +++ b/src/tpk/tpk_app_query_interface.cc @@ -78,4 +78,8 @@ bool TpkAppQueryInterface::IsPkgInstalled(const std::string& arg, uid_t uid) { return ci::QueryIsPackageInstalled(pkg_id, ci::GetRequestMode(uid), uid); } +std::string TpkAppQueryInterface::GetPkgId(const std::string& arg) { + return GetPkgIdFromPath(arg); +} + } // namespace tpk diff --git a/src/tpk/tpk_app_query_interface.h b/src/tpk/tpk_app_query_interface.h index 21d6824..2a4e020 100644 --- a/src/tpk/tpk_app_query_interface.h +++ b/src/tpk/tpk_app_query_interface.h @@ -21,6 +21,7 @@ class TPK_BACKEND_EXPORT_API TpkAppQueryInterface : public common_installer::AppQueryInterface { public: bool IsPkgInstalled(const std::string& arg, uid_t uid) override; + std::string GetPkgId(const std::string& arg) override; }; } // namespace tpk diff --git a/src/tpk/tpk_installer.cc b/src/tpk/tpk_installer.cc index 19aad68..bbe2b5c 100644 --- a/src/tpk/tpk_installer.cc +++ b/src/tpk/tpk_installer.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -149,6 +150,12 @@ void TpkInstaller::Prepare() { case ci::RequestType::PartialUninstall: PartialUninstallSteps(); break; + case ci::RequestType::ReadonlyUpdateInstall: + ReadonlyUpdateInstallSteps(); + break; + case ci::RequestType::ReadonlyUpdateUninstall: + ReadonlyUpdateUninstallSteps(); + break; case ci::RequestType::Clear: ClearSteps(); break; @@ -553,6 +560,68 @@ void TpkInstaller::PartialUninstallSteps() { AddStep(); } +void TpkInstaller::ReadonlyUpdateInstallSteps() { + AddStep(pkgmgr_); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::PACKAGE, + ci::configuration::StepParseManifest::StoreLocation::NORMAL); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::TPK); + 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(ci::Plugin::ActionType::Upgrade); + AddStep(); + AddStep(); +} + +void TpkInstaller::ReadonlyUpdateUninstallSteps() { + AddStep(pkgmgr_); + 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(ci::Plugin::ActionType::Upgrade); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(); +} + void TpkInstaller::ClearSteps() { AddStep(pkgmgr_); AddStep( diff --git a/src/tpk/tpk_installer.h b/src/tpk/tpk_installer.h index 0ebeec8..198e6ad 100644 --- a/src/tpk/tpk_installer.h +++ b/src/tpk/tpk_installer.h @@ -45,6 +45,8 @@ class TPK_BACKEND_EXPORT_API TpkInstaller void ManifestPartialInstallSteps(); void ManifestPartialUpdateSteps(); void PartialUninstallSteps(); + void ReadonlyUpdateInstallSteps(); + void ReadonlyUpdateUninstallSteps(); void ClearSteps(); SCOPE_LOG_TAG(TpkInstaller) -- 2.7.4