#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"
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>();
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>();
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>();
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>();
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>();
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>();
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>(
#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;
}
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