4edd226fe52b0d0c66dec77ac7f56d8a47bfe204
[platform/core/appfw/wgt-backend.git] / src / hybrid / hybrid_installer.cc
1 // Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache-2.0 license that can be
3 // found in the LICENSE file.
4
5 #include "hybrid/hybrid_installer.h"
6
7 #include <common/privileges.h>
8 #include <common/step/backup/step_backup_icons.h>
9 #include <common/step/backup/step_backup_manifest.h>
10 #include <common/step/backup/step_copy_backup.h>
11 #include <common/step/configuration/step_block_cross_update.h>
12 #include <common/step/configuration/step_check_tizen_version.h>
13 #include <common/step/configuration/step_configure.h>
14 #include <common/step/configuration/step_fail.h>
15 #include <common/step/configuration/step_parse_manifest.h>
16 #include <common/step/configuration/step_parse_preload.h>
17 #include <common/step/configuration/step_switch_readonly_mode.h>
18 #include <common/step/filesystem/step_acquire_external_storage.h>
19 #include <common/step/filesystem/step_optional_acquire_external_storage.h>
20 #include <common/step/filesystem/step_change_ownership_and_permission.h>
21 #include <common/step/filesystem/step_copy.h>
22 #include <common/step/filesystem/step_copy_storage_directories.h>
23 #include <common/step/filesystem/step_copy_tep.h>
24 #include <common/step/filesystem/step_create_icons.h>
25 #include <common/step/filesystem/step_create_globalapp_symlinks.h>
26 #include <common/step/filesystem/step_create_storage_directories.h>
27 #include <common/step/filesystem/step_delta_patch.h>
28 #include <common/step/filesystem/step_disable_external_mount.h>
29 #include <common/step/filesystem/step_enable_external_mount.h>
30 #include <common/step/filesystem/step_migrate_legacy_external_image.h>
31 #include <common/step/filesystem/step_recover_change_owner.h>
32 #include <common/step/filesystem/step_recover_files.h>
33 #include <common/step/filesystem/step_recover_icons.h>
34 #include <common/step/filesystem/step_recover_manifest.h>
35 #include <common/step/filesystem/step_recover_external_storage.h>
36 #include <common/step/filesystem/step_recover_storage_directories.h>
37 #include <common/step/filesystem/step_remove_files.h>
38 #include <common/step/filesystem/step_remove_icons.h>
39 #include <common/step/filesystem/step_remove_globalapp_symlinks.h>
40 #include <common/step/filesystem/step_remove_per_user_storage_directories.h>
41 #include <common/step/filesystem/step_remove_temporary_directory.h>
42 #include <common/step/filesystem/step_remove_user_data.h>
43 #include <common/step/filesystem/step_remove_zip_image.h>
44 #include <common/step/filesystem/step_remove_tep.h>
45 #include <common/step/filesystem/step_unzip.h>
46 #include <common/step/filesystem/step_update_storage_directories.h>
47 #include <common/step/filesystem/step_update_tep.h>
48 #include <common/step/mount/step_mount_install.h>
49 #include <common/step/mount/step_mount_unpacked.h>
50 #include <common/step/mount/step_mount_recover.h>
51 #include <common/step/mount/step_mount_update.h>
52 #include <common/step/pkgmgr/step_check_force_clean.h>
53 #include <common/step/pkgmgr/step_check_installable.h>
54 #include <common/step/pkgmgr/step_check_removable.h>
55 #include <common/step/pkgmgr/step_check_restriction.h>
56 #include <common/step/pkgmgr/step_check_upgradable.h>
57 #include <common/step/pkgmgr/step_kill_apps.h>
58 #include <common/step/pkgmgr/step_recover_application.h>
59 #include <common/step/pkgmgr/step_recover_parser_plugins.h>
60 #include <common/step/pkgmgr/step_register_app.h>
61 #include <common/step/pkgmgr/step_remove_manifest.h>
62 #include <common/step/pkgmgr/step_run_parser_plugins.h>
63 #include <common/step/pkgmgr/step_unregister_app.h>
64 #include <common/step/pkgmgr/step_update_app.h>
65 #include <common/step/pkgmgr/step_update_pkg_disable_info.h>
66 #include <common/step/recovery/step_open_recovery_file.h>
67 #include <common/step/recovery/step_create_recovery_file.h>
68 #include <common/step/security/step_get_privilege_level.h>
69 #include <common/step/security/step_privacy_privilege.h>
70 #include <common/step/security/step_privilege_compatibility.h>
71 #include <common/step/security/step_recover_privilege_compatibility.h>
72 #include <common/step/security/step_recover_security.h>
73 #include <common/step/security/step_register_security.h>
74 #include <common/step/security/step_revoke_security.h>
75 #include <common/step/security/step_revoke_trust_anchor.h>
76 #include <common/step/security/step_rollback_installation_security.h>
77 #include <common/step/security/step_signature.h>
78 #include <common/step/security/step_update_security.h>
79 #include <common/step/security/step_register_trust_anchor.h>
80 #include <common/step/security/step_unregister_trust_anchor.h>
81
82 #include <tpk/step/filesystem/step_create_symbolic_link.h>
83 #include <tpk/step/filesystem/step_tpk_patch_icons.h>
84 #include <tpk/step/filesystem/step_tpk_prepare_package_directory.h>
85 #include <tpk/step/filesystem/step_tpk_update_package_directory.h>
86 #include <tpk/step/pkgmgr/step_manifest_adjustment.h>
87 #include <tpk/step/security/step_tpk_recover_signature.h>
88
89 #include "hybrid/hybrid_backend_data.h"
90 #include "hybrid/shared_dirs.h"
91 #include "hybrid/step/configuration/step_merge_tpk_config.h"
92 #include "hybrid/step/configuration/step_merge_tpk_privileges.h"
93 #include "hybrid/step/configuration/step_stash_tpk_config.h"
94 #include "hybrid/step/encryption/step_encrypt_resources.h"
95 #include "hybrid/step/pkgmgr/step_merge_xml.h"
96 #include "wgt/step/configuration/step_parse.h"
97 #include "wgt/step/configuration/step_set_old_signature_files_location.h"
98 #include "wgt/step/encryption/step_remove_encryption_data.h"
99 #include "wgt/step/filesystem/step_copy_preview_icons.h"
100 #include "wgt/step/filesystem/step_create_symbolic_link.h"
101 #include "wgt/step/filesystem/step_wgt_patch_icons.h"
102 #include "wgt/step/filesystem/step_wgt_patch_storage_directories.h"
103 #include "wgt/step/filesystem/step_wgt_undo_patch_storage_directories.h"
104 #include "wgt/step/pkgmgr/step_generate_xml.h"
105 #include "wgt/step/security/step_check_settings_level.h"
106 #include "wgt/step/security/step_check_wgt_background_category.h"
107 #include "wgt/step/security/step_check_wgt_notification_category.h"
108 #include "wgt/step/security/step_check_wgt_ime_privilege.h"
109
110 namespace ci = common_installer;
111
112 namespace hybrid {
113
114 HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
115     : AppInstaller("wgt", pkgmgr) {
116   context_->cross_app_rules.set(true);
117   context_->backend_data.set(new HybridBackendData());
118 }
119
120 void HybridInstaller::InstallSteps() {
121   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
122   AddStep<ci::recovery::StepCreateRecoveryFile>();
123   AddStep<ci::filesystem::StepUnzip>();
124   AddStep<ci::configuration::StepParseManifest>(
125       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
126       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
127   AddStep<ci::pkgmgr::StepCheckInstallable>();
128   AddStep<hybrid::configuration::StepStashTpkConfig>();
129   AddStep<wgt::configuration::StepParse>(
130       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
131   AddStep<ci::configuration::StepParsePreload>();
132   AddStep<ci::pkgmgr::StepCheckRestriction>();
133   AddStep<ci::configuration::StepCheckTizenVersion>();
134   AddStep<ci::security::StepSignature>(true);
135   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
136   AddStep<ci::security::StepPrivilegeCompatibility>(
137       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
138   AddStep<wgt::security::StepCheckSettingsLevel>();
139   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
140   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
141   AddStep<wgt::security::StepCheckWgtImePrivilege>();
142   AddStep<hybrid::encryption::StepEncryptResources>();
143   AddStep<ci::security::StepRollbackInstallationSecurity>();
144   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
145   AddStep<ci::filesystem::StepAcquireExternalStorage>(false);
146   AddStep<ci::filesystem::StepCopy>();
147   AddStep<ci::filesystem::StepCopyTep>();
148   AddStep<tpk::filesystem::StepTpkPatchIcons>();
149   AddStep<wgt::filesystem::StepWgtPatchIcons>();
150   AddStep<ci::filesystem::StepCreateIcons>();
151   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
152   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
153   AddStep<wgt::pkgmgr::StepGenerateXml>();
154   AddStep<hybrid::pkgmgr::StepMergeXml>();
155   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
156   AddStep<hybrid::configuration::StepMergeTpkConfig>(
157       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
158   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
159   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
160   AddStep<ci::pkgmgr::StepRegisterApplication>();
161   AddStep<ci::security::StepRegisterTrustAnchor>(
162       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
163   AddStep<ci::security::StepPrivacyPrivilege>(
164       ci::security::StepPrivacyPrivilege::ActionType::Install);
165   AddStep<ci::security::StepRegisterSecurity>();
166   AddStep<ci::pkgmgr::StepRunParserPlugin>(
167       ci::Plugin::ActionType::Install);
168   AddStep<ci::filesystem::StepCreateStorageDirectories>(
169       wgt::filesystem::HybridAdditionalSharedDirs);
170   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
171   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
172 }
173
174 void HybridInstaller::UpdateSteps() {
175   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
176   AddStep<ci::recovery::StepCreateRecoveryFile>();
177   AddStep<ci::filesystem::StepUnzip>();
178   AddStep<ci::configuration::StepParseManifest>(
179       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
180       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
181   AddStep<ci::pkgmgr::StepCheckUpgradable>();
182   AddStep<hybrid::configuration::StepStashTpkConfig>();
183   AddStep<wgt::configuration::StepParse>(
184       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
185   AddStep<ci::configuration::StepParsePreload>();
186   AddStep<ci::configuration::StepCheckTizenVersion>();
187   AddStep<ci::security::StepSignature>(true);
188   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
189   AddStep<ci::security::StepPrivilegeCompatibility>(
190       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
191   AddStep<wgt::security::StepCheckSettingsLevel>();
192   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
193   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
194   AddStep<wgt::security::StepCheckWgtImePrivilege>();
195   AddStep<hybrid::encryption::StepEncryptResources>();
196   AddStep<ci::configuration::StepParseManifest>(
197       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
198       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
199   AddStep<ci::configuration::StepBlockCrossUpdate>();
200   AddStep<ci::pkgmgr::StepKillApps>();
201   AddStep<ci::backup::StepBackupManifest>();
202   AddStep<ci::backup::StepBackupIcons>();
203   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
204   AddStep<ci::filesystem::StepAcquireExternalStorage>(true);
205   AddStep<ci::backup::StepCopyBackup>();
206   AddStep<ci::filesystem::StepUpdateTep>();
207   AddStep<tpk::filesystem::StepTpkPatchIcons>();
208   AddStep<wgt::filesystem::StepWgtPatchIcons>();
209   AddStep<ci::filesystem::StepCreateIcons>();
210   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
211   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
212   AddStep<ci::filesystem::StepCopyStorageDirectories>();
213   AddStep<wgt::pkgmgr::StepGenerateXml>();
214   AddStep<hybrid::pkgmgr::StepMergeXml>();
215   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
216   AddStep<hybrid::configuration::StepMergeTpkConfig>(
217       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
218   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
219   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
220   AddStep<ci::pkgmgr::StepUpdateApplication>();
221   AddStep<ci::security::StepRegisterTrustAnchor>(
222       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
223   AddStep<ci::security::StepPrivacyPrivilege>(
224       ci::security::StepPrivacyPrivilege::ActionType::Update);
225   AddStep<ci::security::StepUpdateSecurity>();
226   AddStep<ci::pkgmgr::StepRunParserPlugin>(
227       ci::Plugin::ActionType::Upgrade);
228   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
229   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
230   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
231 }
232
233 void HybridInstaller::UninstallSteps() {
234   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
235   AddStep<ci::pkgmgr::StepCheckRestriction>();
236   AddStep<ci::pkgmgr::StepCheckRemovable>();
237   AddStep<ci::pkgmgr::StepCheckForceClean>();
238   AddStep<ci::configuration::StepParseManifest>(
239       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
240       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
241   AddStep<ci::pkgmgr::StepKillApps>();
242   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
243   AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
244   AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
245   AddStep<ci::pkgmgr::StepUnregisterApplication>();
246   AddStep<ci::filesystem::StepRemoveTep>();
247   AddStep<ci::filesystem::StepRemoveFiles>();
248   AddStep<ci::filesystem::StepRemoveZipImage>();
249   AddStep<ci::filesystem::StepRemoveIcons>();
250   AddStep<wgt::encryption::StepRemoveEncryptionData>();
251   AddStep<ci::security::StepUnregisterTrustAnchor>();
252   AddStep<ci::security::StepPrivacyPrivilege>(
253       ci::security::StepPrivacyPrivilege::ActionType::Uninstall);
254   AddStep<ci::security::StepRevokeSecurity>();
255   AddStep<ci::pkgmgr::StepRemoveManifest>();
256   AddStep<ci::pkgmgr::StepRunParserPlugin>(
257       ci::Plugin::ActionType::Uninstall);
258   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
259 }
260
261 void HybridInstaller::ReinstallSteps() {
262   // RDS is not supported for hybrid apps
263   AddStep<ci::configuration::StepFail>();
264 }
265
266 void HybridInstaller::DeltaSteps() {
267   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
268   AddStep<ci::recovery::StepCreateRecoveryFile>();
269   AddStep<ci::filesystem::StepUnzip>();
270   AddStep<ci::configuration::StepParseManifest>(
271       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
272       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
273   AddStep<ci::pkgmgr::StepCheckUpgradable>();
274   AddStep<wgt::filesystem::StepWgtUndoPatchStorageDirectories>();
275   AddStep<hybrid::configuration::StepStashTpkConfig>();
276   AddStep<ci::configuration::StepParseManifest>(
277       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
278       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
279   AddStep<ci::filesystem::StepEnableExternalMount>();
280   AddStep<ci::filesystem::StepDeltaPatch>();
281   AddStep<ci::filesystem::StepDisableExternalMount>();
282   AddStep<wgt::configuration::StepParse>(
283       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
284   AddStep<ci::configuration::StepParsePreload>();
285   AddStep<ci::configuration::StepCheckTizenVersion>();
286   AddStep<ci::security::StepSignature>(true);
287   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
288   AddStep<ci::security::StepPrivilegeCompatibility>(
289       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
290   AddStep<wgt::security::StepCheckSettingsLevel>();
291   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
292   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
293   AddStep<wgt::security::StepCheckWgtImePrivilege>();
294   AddStep<hybrid::encryption::StepEncryptResources>();
295   AddStep<ci::configuration::StepBlockCrossUpdate>();
296   AddStep<ci::pkgmgr::StepKillApps>();
297   AddStep<ci::backup::StepBackupManifest>();
298   AddStep<ci::backup::StepBackupIcons>();
299   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
300   AddStep<ci::filesystem::StepAcquireExternalStorage>(true);
301   AddStep<ci::backup::StepCopyBackup>();
302   AddStep<ci::filesystem::StepUpdateTep>();
303   AddStep<tpk::filesystem::StepTpkPatchIcons>();
304   AddStep<wgt::filesystem::StepWgtPatchIcons>();
305   AddStep<ci::filesystem::StepCreateIcons>();
306   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
307   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
308   AddStep<ci::filesystem::StepCopyStorageDirectories>();
309   AddStep<wgt::pkgmgr::StepGenerateXml>();
310   AddStep<hybrid::pkgmgr::StepMergeXml>();
311   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
312   AddStep<hybrid::configuration::StepMergeTpkConfig>(
313       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
314   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
315   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
316   AddStep<ci::security::StepRegisterTrustAnchor>(
317       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
318   AddStep<ci::security::StepPrivacyPrivilege>(
319       ci::security::StepPrivacyPrivilege::ActionType::Update);
320   AddStep<ci::pkgmgr::StepUpdateApplication>();
321   AddStep<ci::security::StepUpdateSecurity>();
322   AddStep<ci::pkgmgr::StepRunParserPlugin>(
323       ci::Plugin::ActionType::Upgrade);
324   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
325   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
326   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
327 }
328
329 void HybridInstaller::RecoverySteps() {
330   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
331   AddStep<ci::recovery::StepOpenRecoveryFile>();
332   AddStep<ci::configuration::StepParseManifest>(
333       ci::configuration::StepParseManifest::ManifestLocation::RECOVERY,
334       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
335   AddStep<ci::filesystem::StepRemoveTemporaryDirectory>();
336   AddStep<ci::filesystem::StepRecoverIcons>();
337   AddStep<ci::pkgmgr::StepRecoverParserPlugin>();
338   AddStep<ci::filesystem::StepRecoverManifest>();
339   AddStep<ci::filesystem::StepRecoverExternalStorage>();
340   AddStep<ci::filesystem::StepRecoverStorageDirectories>();
341   AddStep<ci::filesystem::StepRecoverFiles>();
342   AddStep<ci::mount::StepMountRecover>();
343   AddStep<tpk::security::StepTpkRecoverSignature>();
344   AddStep<ci::security::StepRecoverPrivilegeCompatibility>(
345       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
346   AddStep<ci::filesystem::StepRecoverChangeOwner>();
347   AddStep<ci::security::StepRecoverSecurity>();
348   AddStep<ci::pkgmgr::StepRecoverApplication>();
349 }
350
351 void HybridInstaller::MountInstallSteps() {
352   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
353   AddStep<ci::recovery::StepCreateRecoveryFile>();
354   AddStep<ci::mount::StepMountUnpacked>();
355   AddStep<ci::configuration::StepParseManifest>(
356       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
357       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
358   AddStep<ci::pkgmgr::StepCheckInstallable>();
359   AddStep<hybrid::configuration::StepStashTpkConfig>();
360   AddStep<wgt::configuration::StepParse>(
361       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
362   AddStep<ci::configuration::StepParsePreload>();
363   AddStep<ci::pkgmgr::StepCheckRestriction>();
364   AddStep<ci::configuration::StepCheckTizenVersion>();
365   AddStep<ci::security::StepSignature>(true);
366   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
367   AddStep<ci::security::StepPrivilegeCompatibility>(
368       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
369   AddStep<wgt::security::StepCheckSettingsLevel>();
370   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
371   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
372   AddStep<wgt::security::StepCheckWgtImePrivilege>();
373   AddStep<hybrid::encryption::StepEncryptResources>();
374   AddStep<ci::security::StepRollbackInstallationSecurity>();
375   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
376   AddStep<ci::mount::StepMountInstall>();
377   AddStep<tpk::filesystem::StepTpkPreparePackageDirectory>();
378   AddStep<ci::filesystem::StepCopyTep>();
379   AddStep<tpk::filesystem::StepTpkPatchIcons>();
380   AddStep<wgt::filesystem::StepWgtPatchIcons>();
381   AddStep<ci::filesystem::StepCreateIcons>();
382   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
383   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
384   AddStep<wgt::pkgmgr::StepGenerateXml>();
385   AddStep<hybrid::pkgmgr::StepMergeXml>();
386   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
387   AddStep<hybrid::configuration::StepMergeTpkConfig>(
388       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
389   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
390   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
391   AddStep<ci::pkgmgr::StepRegisterApplication>();
392   AddStep<ci::security::StepRegisterTrustAnchor>(
393       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
394   AddStep<ci::security::StepPrivacyPrivilege>(
395       ci::security::StepPrivacyPrivilege::ActionType::Install);
396   AddStep<ci::security::StepRegisterSecurity>();
397   AddStep<ci::pkgmgr::StepRunParserPlugin>(
398       ci::Plugin::ActionType::Install);
399   AddStep<ci::filesystem::StepCreateStorageDirectories>(
400       wgt::filesystem::HybridAdditionalSharedDirs);
401   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>(true);
402   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
403 }
404
405 void HybridInstaller::MountUpdateSteps() {
406   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
407   AddStep<ci::recovery::StepCreateRecoveryFile>();
408   AddStep<ci::mount::StepMountUnpacked>();
409   AddStep<ci::configuration::StepParseManifest>(
410       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
411       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
412   AddStep<ci::pkgmgr::StepCheckUpgradable>();
413   AddStep<hybrid::configuration::StepStashTpkConfig>();
414   AddStep<wgt::configuration::StepParse>(
415       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
416   AddStep<ci::configuration::StepParsePreload>();
417   AddStep<ci::configuration::StepCheckTizenVersion>();
418   AddStep<ci::security::StepSignature>(true);
419   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
420   AddStep<ci::security::StepPrivilegeCompatibility>(
421       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
422   AddStep<wgt::security::StepCheckSettingsLevel>();
423   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
424   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
425   AddStep<wgt::security::StepCheckWgtImePrivilege>();
426   AddStep<hybrid::encryption::StepEncryptResources>();
427   AddStep<ci::configuration::StepParseManifest>(
428       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
429       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
430   AddStep<ci::configuration::StepBlockCrossUpdate>();
431   AddStep<ci::pkgmgr::StepKillApps>();
432   AddStep<ci::backup::StepBackupManifest>();
433   AddStep<ci::backup::StepBackupIcons>();
434   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
435   AddStep<ci::mount::StepMountUpdate>();
436   AddStep<tpk::filesystem::StepTpkUpdatePackageDirectory>();
437   AddStep<ci::filesystem::StepUpdateTep>();
438   AddStep<tpk::filesystem::StepTpkPatchIcons>();
439   AddStep<wgt::filesystem::StepWgtPatchIcons>();
440   AddStep<ci::filesystem::StepCreateIcons>();
441   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
442   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
443   AddStep<wgt::pkgmgr::StepGenerateXml>();
444   AddStep<hybrid::pkgmgr::StepMergeXml>();
445   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
446   AddStep<hybrid::configuration::StepMergeTpkConfig>(
447       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
448   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
449   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
450   AddStep<ci::pkgmgr::StepUpdateApplication>();
451   AddStep<ci::security::StepRegisterTrustAnchor>(
452       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
453   AddStep<ci::security::StepPrivacyPrivilege>(
454       ci::security::StepPrivacyPrivilege::ActionType::Update);
455   AddStep<ci::security::StepUpdateSecurity>();
456   AddStep<ci::pkgmgr::StepRunParserPlugin>(
457       ci::Plugin::ActionType::Upgrade);
458   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
459   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>(true);
460   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
461 }
462
463 void HybridInstaller::ManifestDirectInstallSteps() {
464   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
465   AddStep<ci::configuration::StepParseManifest>(
466       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
467       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
468   AddStep<ci::pkgmgr::StepCheckInstallable>();
469   AddStep<hybrid::configuration::StepStashTpkConfig>();
470   AddStep<wgt::configuration::StepParse>(
471       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
472   AddStep<ci::configuration::StepParsePreload>();
473   AddStep<ci::configuration::StepCheckTizenVersion>();
474   AddStep<ci::security::StepSignature>(true);
475   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
476   AddStep<ci::security::StepPrivilegeCompatibility>(
477       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
478   AddStep<wgt::security::StepCheckSettingsLevel>();
479   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
480   AddStep<ci::security::StepRollbackInstallationSecurity>();
481   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
482   AddStep<tpk::filesystem::StepTpkPatchIcons>();
483   AddStep<wgt::filesystem::StepWgtPatchIcons>();
484   AddStep<wgt::pkgmgr::StepGenerateXml>();
485   AddStep<hybrid::pkgmgr::StepMergeXml>();
486   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
487   AddStep<hybrid::configuration::StepMergeTpkConfig>(
488       hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
489   AddStep<ci::pkgmgr::StepRegisterApplication>();
490   AddStep<ci::security::StepRegisterTrustAnchor>(
491       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
492   AddStep<ci::security::StepPrivacyPrivilege>(
493       ci::security::StepPrivacyPrivilege::ActionType::Install);
494   AddStep<ci::security::StepRegisterSecurity>();
495   AddStep<ci::pkgmgr::StepRunParserPlugin>(
496       ci::Plugin::ActionType::Install);
497   AddStep<ci::filesystem::StepCreateStorageDirectories>(
498       wgt::filesystem::HybridAdditionalSharedDirs);
499   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
500   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
501 }
502
503 void HybridInstaller::ManifestDirectUpdateSteps() {
504   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
505   AddStep<ci::configuration::StepParseManifest>(
506       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
507       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
508   AddStep<ci::pkgmgr::StepCheckUpgradable>();
509   AddStep<hybrid::configuration::StepStashTpkConfig>();
510   AddStep<wgt::configuration::StepParse>(
511       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
512   AddStep<ci::configuration::StepParsePreload>();
513   AddStep<ci::configuration::StepCheckTizenVersion>();
514   AddStep<ci::security::StepSignature>(true);
515   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
516   AddStep<ci::security::StepPrivilegeCompatibility>(
517       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
518   AddStep<wgt::security::StepCheckSettingsLevel>();
519   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
520   AddStep<ci::configuration::StepParseManifest>(
521       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
522       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
523   AddStep<ci::pkgmgr::StepKillApps>();
524   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
525   AddStep<tpk::filesystem::StepTpkPatchIcons>();
526   AddStep<wgt::filesystem::StepWgtPatchIcons>();
527   AddStep<wgt::pkgmgr::StepGenerateXml>();
528   AddStep<hybrid::pkgmgr::StepMergeXml>();
529   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
530   AddStep<hybrid::configuration::StepMergeTpkConfig>(
531       hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
532   AddStep<ci::pkgmgr::StepUpdateApplication>();
533   AddStep<ci::security::StepRegisterTrustAnchor>(
534       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
535   AddStep<ci::security::StepPrivacyPrivilege>(
536       ci::security::StepPrivacyPrivilege::ActionType::Update);
537   AddStep<ci::security::StepUpdateSecurity>();
538   AddStep<ci::pkgmgr::StepRunParserPlugin>(
539       ci::Plugin::ActionType::Upgrade);
540   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
541   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
542   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
543 }
544
545 void HybridInstaller::ManifestPartialInstallSteps() {
546   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
547   AddStep<ci::configuration::StepParseManifest>(
548       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
549       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
550   AddStep<hybrid::configuration::StepStashTpkConfig>();
551   AddStep<wgt::configuration::StepParse>(
552       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
553   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
554   AddStep<hybrid::configuration::StepMergeTpkConfig>(
555       hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
556   AddStep<ci::configuration::StepParsePreload>();
557   AddStep<ci::security::StepSignature>(false);
558   AddStep<ci::security::StepPrivilegeCompatibility>(
559       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
560   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
561   AddStep<ci::pkgmgr::StepRegisterApplication>();
562   AddStep<ci::security::StepRegisterTrustAnchor>(
563       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
564   AddStep<ci::security::StepPrivacyPrivilege>(
565       ci::security::StepPrivacyPrivilege::ActionType::Install);
566   AddStep<ci::security::StepRegisterSecurity>();
567   AddStep<ci::pkgmgr::StepRunParserPlugin>(
568       ci::Plugin::ActionType::Install);
569   AddStep<ci::filesystem::StepCreateStorageDirectories>(
570       wgt::filesystem::HybridAdditionalSharedDirs);
571   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
572 }
573
574 void HybridInstaller::ManifestPartialUpdateSteps() {
575   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
576   AddStep<ci::configuration::StepParseManifest>(
577       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
578       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
579   AddStep<hybrid::configuration::StepStashTpkConfig>();
580   AddStep<wgt::configuration::StepParse>(
581       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
582   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
583   AddStep<hybrid::configuration::StepMergeTpkConfig>(
584       hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
585   AddStep<ci::configuration::StepParsePreload>();
586   AddStep<ci::security::StepSignature>(false);
587   AddStep<ci::configuration::StepParseManifest>(
588       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
589       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
590   AddStep<ci::security::StepPrivilegeCompatibility>(
591       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
592   AddStep<ci::pkgmgr::StepKillApps>();
593   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
594   AddStep<ci::pkgmgr::StepUpdateApplication>();
595   AddStep<ci::security::StepRegisterTrustAnchor>(
596       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
597   AddStep<ci::security::StepPrivacyPrivilege>(
598       ci::security::StepPrivacyPrivilege::ActionType::Update);
599   AddStep<ci::security::StepRegisterSecurity>();
600   AddStep<ci::pkgmgr::StepRunParserPlugin>(
601       ci::Plugin::ActionType::Upgrade);
602   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
603   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
604 }
605
606 void HybridInstaller::PartialUninstallSteps() {
607   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
608   AddStep<ci::pkgmgr::StepCheckRestriction>();
609   AddStep<ci::pkgmgr::StepCheckRemovable>();
610   AddStep<ci::pkgmgr::StepCheckForceClean>();
611   AddStep<ci::configuration::StepParseManifest>(
612       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
613       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
614   AddStep<ci::pkgmgr::StepRunParserPlugin>(
615       ci::Plugin::ActionType::Uninstall);
616   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
617   AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
618   AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
619   AddStep<ci::pkgmgr::StepUnregisterApplication>();
620   AddStep<wgt::encryption::StepRemoveEncryptionData>();
621   AddStep<ci::security::StepUnregisterTrustAnchor>();
622   AddStep<ci::security::StepPrivacyPrivilege>(
623       ci::security::StepPrivacyPrivilege::ActionType::Uninstall);
624   AddStep<ci::security::StepRevokeSecurity>();
625 }
626
627 void HybridInstaller::ReadonlyUpdateInstallSteps() {
628   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
629   AddStep<ci::recovery::StepCreateRecoveryFile>();
630   AddStep<ci::filesystem::StepUnzip>();
631   AddStep<ci::configuration::StepParseManifest>(
632       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
633       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
634   AddStep<ci::pkgmgr::StepCheckUpgradable>();
635   AddStep<hybrid::configuration::StepStashTpkConfig>();
636   AddStep<wgt::configuration::StepParse>(
637       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
638   AddStep<ci::configuration::StepParsePreload>();
639   AddStep<ci::configuration::StepCheckTizenVersion>();
640   AddStep<ci::security::StepSignature>(true);
641   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
642   AddStep<ci::security::StepPrivilegeCompatibility>(
643       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
644   AddStep<wgt::security::StepCheckSettingsLevel>();
645   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
646   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
647   AddStep<wgt::security::StepCheckWgtImePrivilege>();
648   AddStep<hybrid::encryption::StepEncryptResources>();
649   AddStep<ci::configuration::StepSwitchReadonlyMode>();
650   AddStep<ci::configuration::StepParseManifest>(
651       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
652       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
653   AddStep<ci::configuration::StepSwitchReadonlyMode>();
654   AddStep<ci::configuration::StepBlockCrossUpdate>();
655   AddStep<ci::pkgmgr::StepKillApps>();
656   AddStep<ci::filesystem::StepCopy>();
657   AddStep<ci::filesystem::StepCopyTep>();
658   AddStep<tpk::filesystem::StepTpkPatchIcons>();
659   AddStep<wgt::filesystem::StepWgtPatchIcons>();
660   AddStep<ci::filesystem::StepCreateIcons>();
661   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
662   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
663   AddStep<ci::filesystem::StepCreateStorageDirectories>();
664   AddStep<wgt::pkgmgr::StepGenerateXml>();
665   AddStep<hybrid::pkgmgr::StepMergeXml>();
666   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
667   AddStep<hybrid::configuration::StepMergeTpkConfig>(
668       hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
669   AddStep<wgt::filesystem::StepCreateSymbolicLink>();
670   AddStep<tpk::filesystem::StepCreateSymbolicLink>();
671   AddStep<ci::pkgmgr::StepUpdateApplication>();
672   AddStep<ci::security::StepRegisterTrustAnchor>(
673       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
674   AddStep<ci::security::StepPrivacyPrivilege>(
675       ci::security::StepPrivacyPrivilege::ActionType::Update);
676   AddStep<ci::security::StepUpdateSecurity>();
677   AddStep<ci::pkgmgr::StepRunParserPlugin>(
678       ci::Plugin::ActionType::Upgrade);
679   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
680   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
681   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
682 }
683
684 void HybridInstaller::ReadonlyUpdateUninstallSteps() {
685   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
686   AddStep<ci::pkgmgr::StepCheckRestriction>();
687   AddStep<ci::pkgmgr::StepCheckRemovable>();
688   AddStep<ci::configuration::StepParseManifest>(
689       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
690       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
691   AddStep<ci::configuration::StepSwitchReadonlyMode>();
692   AddStep<ci::configuration::StepParseManifest>(
693       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
694       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
695   AddStep<ci::pkgmgr::StepCheckUpgradable>();
696   AddStep<ci::configuration::StepParsePreload>();
697   AddStep<wgt::configuration::StepSetOldSignatureFilesLocation>();
698   AddStep<ci::security::StepSignature>(false);
699   AddStep<ci::security::StepPrivilegeCompatibility>(
700       ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT);
701   AddStep<ci::configuration::StepSwitchReadonlyMode>();
702   AddStep<ci::pkgmgr::StepKillApps>();
703   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
704   AddStep<ci::filesystem::StepRemoveTep>();
705   AddStep<ci::filesystem::StepRemoveFiles>();
706   AddStep<ci::filesystem::StepRemoveZipImage>();
707   AddStep<ci::pkgmgr::StepUpdateApplication>();
708   AddStep<ci::filesystem::StepRemoveUserData>();
709   AddStep<ci::configuration::StepSwitchReadonlyMode>();
710   AddStep<ci::security::StepRevokeTrustAnchor>();
711   AddStep<ci::security::StepRegisterTrustAnchor>(
712       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
713   AddStep<ci::security::StepPrivacyPrivilege>(
714       ci::security::StepPrivacyPrivilege::ActionType::Update);
715   AddStep<ci::security::StepUpdateSecurity>();
716   AddStep<ci::pkgmgr::StepRemoveManifest>();
717   AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
718 }
719
720 void HybridInstaller::EnablePkgSteps() {
721   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
722   AddStep<ci::configuration::StepParseManifest>(
723       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
724       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
725   AddStep<ci::pkgmgr::StepKillApps>();
726   AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
727       ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable);
728   AddStep<ci::pkgmgr::StepRunParserPlugin>(
729       ci::Plugin::ActionType::Install);
730 }
731
732 void HybridInstaller::DisablePkgSteps() {
733   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
734   AddStep<ci::configuration::StepParseManifest>(
735       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
736       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
737   AddStep<ci::pkgmgr::StepKillApps>();
738   AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
739       ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable);
740   AddStep<ci::pkgmgr::StepRunParserPlugin>(
741       ci::Plugin::ActionType::Uninstall);
742 }
743
744 void HybridInstaller::MigrateExtImgSteps() {
745   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
746   AddStep<ci::security::StepMigrateLegacyExtImage>();
747   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
748 }
749
750 void HybridInstaller::RecoverDBSteps() {
751   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
752   AddStep<ci::configuration::StepParseManifest>(
753       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
754       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
755   AddStep<ci::pkgmgr::StepCheckInstallable>();
756   AddStep<hybrid::configuration::StepStashTpkConfig>();
757   AddStep<wgt::configuration::StepParse>(
758       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
759   AddStep<ci::configuration::StepParsePreload>();
760   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
761   AddStep<ci::security::StepGetPrivilegeLevel>();
762   AddStep<ci::security::StepPrivilegeCompatibility>(
763       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
764   AddStep<wgt::security::StepCheckSettingsLevel>();
765   AddStep<hybrid::configuration::StepMergeTpkConfig>(
766       hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
767   AddStep<ci::pkgmgr::StepRegisterApplication>();
768 }
769
770 }  // namespace hybrid
771