Adjust some values in xml 24/116624/1
authorBartlomiej Kunikowski <b.kunikowski@partner.samsung.com>
Mon, 27 Feb 2017 08:49:43 +0000 (09:49 +0100)
committerBartlomiej Kunikowski <b.kunikowski@partner.samsung.com>
Mon, 27 Feb 2017 09:01:05 +0000 (10:01 +0100)
- Onboot and autorestart features of service application
  has removed since 2.3.1 in wearable, 2.4 in all other profiles
- So change modified xml files if needed (hybrid)
- Change modified this options in context before generate
  manifest (wgt)

Requires:
 - https://review.tizen.org/gerrit/#/c/116622/

Change-Id: Ie539cc25b5f1628adcc9e816f3436b7e7fdc245b

src/hybrid/hybrid_installer.cc
src/wgt/step/security/step_check_settings_level.cc
src/wgt/step/security/step_check_settings_level.h

index eca31a4..33b9d26 100644 (file)
@@ -73,6 +73,7 @@
 #include <tpk/step/filesystem/step_tpk_patch_icons.h>
 #include <tpk/step/filesystem/step_tpk_prepare_package_directory.h>
 #include <tpk/step/filesystem/step_tpk_update_package_directory.h>
+#include <tpk/step/pkgmgr/step_manifest_adjustment.h>
 #include <tpk/step/security/step_tpk_recover_signature.h>
 
 #include "hybrid/hybrid_backend_data.h"
@@ -139,6 +140,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::filesystem::StepCreateStorageDirectories>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
@@ -191,6 +193,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::security::StepUpdateSecurity>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
@@ -272,6 +275,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::security::StepUpdateSecurity>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
@@ -334,6 +338,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::filesystem::StepCreateStorageDirectories>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
@@ -385,6 +390,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::security::StepUpdateSecurity>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<wgt::filesystem::StepCreateSymbolicLink>();
       AddStep<tpk::filesystem::StepCreateSymbolicLink>();
@@ -415,6 +421,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<ci::security::StepRegisterSecurity>();
       AddStep<ci::pkgmgr::StepRegisterApplication>();
@@ -449,6 +456,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
       AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
       AddStep<wgt::pkgmgr::StepGenerateXml>();
       AddStep<hybrid::pkgmgr::StepGenerateXml>();
+      AddStep<tpk::pkgmgr::StepManifestAdjustment>();
       AddStep<hybrid::configuration::StepMergeTpkConfig>();
       AddStep<ci::pkgmgr::StepUpdateApplication>();
       AddStep<ci::pkgmgr::StepRunParserPlugin>(
index 2fd5923..b26f7ed 100644 (file)
@@ -4,17 +4,31 @@
 
 #include "wgt/step/security/step_check_settings_level.h"
 
+#include <common/utils/glist_range.h>
+#include <common/utils/profile_util.h>
 #include <manifest_parser/utils/logging.h>
+#include <manifest_parser/utils/version_number.h>
 #include <wgt_manifest_handlers/setting_handler.h>
 
 #include <map>
 
 #include "wgt/wgt_backend_data.h"
 
-namespace {
+namespace wgt {
+namespace security {
 
-bool ValidateSettingsForLevel(common_installer::PrivilegeLevel level,
-                              const wgt::parse::SettingInfo& settings) {
+common_installer::Step::Status StepCheckSettingsLevel::process() {
+  if (!ValidateSettingsForLevel()) {
+    return Status::PRIVILEGE_ERROR;
+  }
+  LOG(INFO) << "Settings privilege level checked";
+  return Status::OK;
+}
+
+bool StepCheckSettingsLevel::ValidateSettingsForLevel() {
+  common_installer::PrivilegeLevel level = context_->privilege_level.get();
+  wgt::parse::SettingInfo& settings = static_cast<WgtBackendData*>(
+      context_->backend_data.get())->settings.get();
   if (settings.background_vibration()) {
     common_installer::PrivilegeLevel required_level =
         common_installer::PrivilegeLevel::PARTNER;
@@ -58,22 +72,29 @@ bool ValidateSettingsForLevel(common_installer::PrivilegeLevel level,
     }
     LOG(INFO) << "Setting: 'sound-mode' allowed";
   }
-  return true;
-}
 
-}  // namespace
+  if ((level != common_installer::PrivilegeLevel::PARTNER) &&
+      (level != common_installer::PrivilegeLevel::PLATFORM)) {
+    utils::VersionNumber api_version =
+        utils::VersionNumber(context_->manifest_data.get()->api_version);
+    utils::VersionNumber platform_version =
+        utils::VersionNumber((common_installer::GetTizenProfile() ==
+        common_installer::TizenProfile::WEARABLE) ? "2.3.1" : "2.4.0");
+    if (api_version >= platform_version) {
+      for (const auto& app : GListRange<application_x*>(
+          context_->manifest_data.get()->application)) {
+        if (app->autorestart)
+          free(app->autorestart);
+        app->autorestart = strdup("false");
 
-namespace wgt {
-namespace security {
-
-common_installer::Step::Status StepCheckSettingsLevel::process() {
-  if (!ValidateSettingsForLevel(context_->privilege_level.get(),
-      static_cast<WgtBackendData*>(
-          context_->backend_data.get())->settings.get())) {
-    return Status::PRIVILEGE_ERROR;
+        if (app->onboot)
+          free(app->onboot);
+        app->onboot = strdup("false");
+      }
+    }
   }
-  LOG(INFO) << "Settings privilege level checked";
-  return Status::OK;
+
+  return true;
 }
 
 }  // namespace security
index adc7337..772188b 100644 (file)
@@ -50,6 +50,9 @@ class StepCheckSettingsLevel : public common_installer::Step {
    */
   Status precheck() override { return Status::OK; }
 
+ private:
+  bool ValidateSettingsForLevel();
+
   STEP_NAME(CheckSettingsLevel)
 };