Add new steps: ReadonlyUpdateInstall, ReadonlyUpdateUninstall 80/97080/8 accepted/tizen/3.0/common/20161203.012111 accepted/tizen/3.0/ivi/20161201.075317 accepted/tizen/3.0/mobile/20161201.075032 accepted/tizen/3.0/tv/20161201.075159 accepted/tizen/3.0/wearable/20161201.075235 submit/tizen_3.0/20161130.132739 submit/tizen_3.0/20161201.024602
authorSangyoon Jang <s89.jang@samsung.com>
Fri, 11 Nov 2016 06:16:12 +0000 (15:16 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Wed, 30 Nov 2016 10:46:43 +0000 (19:46 +0900)
Requires:
 - https://review.tizen.org/gerrit/97079

Change-Id: I36c1fb3e4a22fc9fc0e3d53f73a678c591b923c1
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
src/tpk/tpk_app_query_interface.cc
src/tpk/tpk_app_query_interface.h
src/tpk/tpk_installer.cc
src/tpk/tpk_installer.h

index d048ef8c43fc691edeb9eabc51e2a90892cd4a62..f74e7ae7c658803daf6e7419a4206c0e2c7d8cca 100644 (file)
@@ -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
index 21d682480e2c2596019d82ff34cb08c1bc5487b9..2a4e02047bf35bab84109a7651005641a8a47fc7 100644 (file)
@@ -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
index 19aad6809dda2e10e34a0ce6ba0167b5a02de358..bbe2b5c2c5bd46f0ab467b5270427cb2daca4181 100644 (file)
@@ -12,6 +12,7 @@
 #include <common/step/configuration/step_fail.h>
 #include <common/step/configuration/step_parse_manifest.h>
 #include <common/step/configuration/step_parse_preload.h>
+#include <common/step/configuration/step_switch_readonly_mode.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_change_owner.h>
@@ -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<ci::security::StepRevokeSecurity>();
 }
 
+void TpkInstaller::ReadonlyUpdateInstallSteps() {
+  AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+  AddStep<ci::filesystem::StepUnzip>();
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
+      ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+  AddStep<ci::configuration::StepParsePreload>();
+  AddStep<ci::configuration::StepCheckTizenVersion>();
+  AddStep<ci::security::StepCheckSignature>();
+  AddStep<tpk::configuration::StepAdjustInstallLocation>();
+  AddStep<ci::security::StepPrivilegeCompatibility>(
+      ci::security::StepPrivilegeCompatibility::InternalPrivType::TPK);
+  AddStep<tpk::security::StepCheckTpkBackgroundCategory>();
+  AddStep<ci::security::StepCheckOldCertificate>();
+  AddStep<ci::configuration::StepSwitchReadonlyMode>();
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+      ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+  AddStep<ci::configuration::StepSwitchReadonlyMode>();
+  AddStep<ci::configuration::StepBlockCrossUpdate>();
+  AddStep<ci::pkgmgr::StepKillApps>();
+  AddStep<ci::filesystem::StepCopy>();
+  AddStep<ci::filesystem::StepCopyTep>();
+  AddStep<ci::filesystem::StepCreateStorageDirectories>();
+  AddStep<tpk::filesystem::StepCreateExternalStorageDirectories>();
+  AddStep<tpk::filesystem::StepCreateSymbolicLink>();
+  AddStep<tpk::filesystem::StepTpkPatchIcons>();
+  AddStep<ci::security::StepUpdateSecurity>();
+  AddStep<tpk::pkgmgr::StepConvertXml>();
+  AddStep<tpk::pkgmgr::StepManifestAdjustment>();
+  AddStep<tpk::filesystem::StepTpkGrantPermission>();
+  AddStep<ci::pkgmgr::StepUpdateApplication>();
+  AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
+  AddStep<ci::filesystem::StepChangeOwner>();
+  AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
+}
+
+void TpkInstaller::ReadonlyUpdateUninstallSteps() {
+  AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+  AddStep<ci::pkgmgr::StepCheckRestriction>();
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+      ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+  AddStep<ci::configuration::StepSwitchReadonlyMode>();
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+      ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+  AddStep<ci::security::StepCheckSignature>();
+  AddStep<ci::configuration::StepSwitchReadonlyMode>();
+  AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
+  AddStep<ci::pkgmgr::StepKillApps>();
+  AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
+  AddStep<tpk::filesystem::StepRemoveExternalStorageDirectories>();
+  AddStep<ci::pkgmgr::StepUpdateApplication>();
+  AddStep<ci::security::StepRollbackDeinstallationSecurity>();
+  AddStep<ci::filesystem::StepRemoveTep>();
+  AddStep<ci::filesystem::StepRemoveFiles>();
+  AddStep<ci::filesystem::StepRemoveZipImage>();
+  AddStep<ci::security::StepUpdateSecurity>();
+  AddStep<ci::pkgmgr::StepRemoveManifest>();
+}
+
 void TpkInstaller::ClearSteps() {
   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
   AddStep<ci::configuration::StepParseManifest>(
index 0ebeec8b6ab3225be900d3e487160b7f42d7028c..198e6ad6f26effd190e59687b48bb20adc5f7a50 100644 (file)
@@ -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)