#include "hybrid/shared_dirs.h"
#include "hybrid/step/configuration/step_merge_tpk_config.h"
#include "hybrid/step/configuration/step_merge_tpk_privileges.h"
+#include "hybrid/step/configuration/step_set_mainapp.h"
#include "hybrid/step/configuration/step_stash_tpk_config.h"
#include "hybrid/step/encryption/step_encrypt_resources.h"
#include "hybrid/step/pkgmgr/step_merge_xml.h"
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
AddStep<ci::security::StepPrivilegeCompatibility>(
ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
AddStep<ci::security::StepPrivilegeCompatibility>(
ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkConfig>(
hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepSignature>(false);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkConfig>(
hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepSignature>(false);
AddStep<ci::configuration::StepParseManifest>(
AddStep<ci::filesystem::StepRemoveTep>();
AddStep<ci::filesystem::StepRemoveFiles>();
AddStep<ci::filesystem::StepRemoveZipImage>();
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<ci::filesystem::StepRemoveUserData>();
AddStep<ci::configuration::StepSwitchReadonlyMode>();
AddStep<ci::security::StepGetPrivilegeLevel>();
AddStep<ci::security::StepPrivilegeCompatibility>(
ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
+ AddStep<wgt::security::StepCheckSettingsLevel>();
+ AddStep<hybrid::configuration::StepSetMainapp>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
}
#include <pkgmgrinfo_basic.h>
-#include <common/utils/glist_range.h>
-
#include "hybrid/hybrid_backend_data.h"
namespace hybrid {
manifest_x* tpk_data = data->tpk_manifest_data.get();
manifest_x* wgt_data = context_->manifest_data.get();
- if (merge_type_ == MergeType::CONCAT) {
+ if (merge_type_ == MergeType::CONCAT)
wgt_data->application =
g_list_concat(wgt_data->application, tpk_data->application);
- } else {
- // mainappid should be webapp for hybrid pkg
- for (application_x* app :
- GListRange<application_x*>(tpk_data->application)) {
- if (app->type && strcmp(app->type, "webapp") != 0)
- continue;
-
- if (app->mainapp)
- free(app->mainapp);
- app->mainapp = strdup("true");
- if (!app->mainapp) {
- LOG(ERROR) << "Out of memoery";
- return Status::ERROR;
- }
- break;
- }
+ else
wgt_data->application = tpk_data->application;
- }
tpk_data->application = nullptr;
return Status::OK;
--- /dev/null
+// Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by an apache-2.0 license that can be
+// found in the LICENSE file.
+
+#include "hybrid/step/configuration/step_set_mainapp.h"
+
+#include <pkgmgrinfo_basic.h>
+
+#include <common/utils/glist_range.h>
+
+#include "hybrid/hybrid_backend_data.h"
+
+namespace hybrid {
+namespace configuration {
+
+common_installer::Step::Status StepSetMainapp::process() {
+ manifest_x* manifest_data = context_->manifest_data.get();
+ for (application_x* app :
+ GListRange<application_x*>(manifest_data->application)) {
+ if (app->type && strcmp(app->type, "webapp") != 0)
+ continue;
+
+ if (app->mainapp)
+ free(app->mainapp);
+ app->mainapp = strdup("true");
+ if (!app->mainapp) {
+ LOG(ERROR) << "Out of memoery";
+ return Status::ERROR;
+ }
+ break;
+ }
+ return Status::OK;
+}
+
+} // namespace configuration
+} // namespace hybrid
--- /dev/null
+// Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by an apache-2.0 license that can be
+// found in the LICENSE file.
+
+#ifndef HYBRID_STEP_CONFIGURATION_STEP_SET_MAINAPP_H_
+#define HYBRID_STEP_CONFIGURATION_STEP_SET_MAINAPP_H_
+
+#include <common/step/step.h>
+#include <manifest_parser/utils/logging.h>
+
+namespace hybrid {
+namespace configuration {
+
+/**
+ * \brief StepSetMainapp
+ * Sets main application information
+ */
+class StepSetMainapp : public common_installer::Step {
+ public:
+ using Step::Step;
+
+ Status process() override;
+ Status clean() override { return Status::OK; }
+ Status undo() override { return Status::OK; }
+ Status precheck() override { return Status::OK; }
+
+ STEP_NAME(SetMainapp)
+};
+
+} // namespace configuration
+} // namespace hybrid
+
+#endif // HYBRID_STEP_CONFIGURATION_STEP_SET_MAINAPP_H_