4d18750d2d516883561991874538d5d4a835c760
[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_tpk_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_set_mainapp.h"
94 #include "hybrid/step/configuration/step_stash_tpk_config.h"
95 #include "hybrid/step/encryption/step_encrypt_hybrid_resources.h"
96 #include "hybrid/step/pkgmgr/step_merge_xml.h"
97 #include "wgt/step/configuration/step_parse.h"
98 #include "wgt/step/configuration/step_set_old_signature_files_location.h"
99 #include "wgt/step/encryption/step_remove_encryption_data.h"
100 #include "wgt/step/filesystem/step_copy_preview_icons.h"
101 #include "wgt/step/filesystem/step_create_wgt_symbolic_link.h"
102 #include "wgt/step/filesystem/step_wgt_patch_icons.h"
103 #include "wgt/step/filesystem/step_wgt_patch_storage_directories.h"
104 #include "wgt/step/filesystem/step_wgt_undo_patch_storage_directories.h"
105 #include "wgt/step/pkgmgr/step_generate_xml.h"
106 #include "wgt/step/security/step_check_settings_level.h"
107 #include "wgt/step/security/step_check_wgt_background_category.h"
108 #include "wgt/step/security/step_check_wgt_notification_category.h"
109 #include "wgt/step/security/step_check_wgt_ime_privilege.h"
110
111 namespace ci = common_installer;
112
113 namespace hybrid {
114
115 HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
116     : AppInstaller("wgt", pkgmgr) {
117   context_->cross_app_rules.set(true);
118   context_->backend_data.set(new HybridBackendData());
119 }
120
121 void HybridInstaller::InstallSteps() {
122   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
123   AddStep<ci::recovery::StepCreateRecoveryFile>();
124   AddStep<ci::filesystem::StepUnzip>();
125   AddStep<ci::configuration::StepParseManifest>(
126       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
127       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
128   AddStep<ci::pkgmgr::StepCheckInstallable>();
129   AddStep<hybrid::configuration::StepStashTpkConfig>();
130   AddStep<wgt::configuration::StepParse>(
131       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
132   AddStep<ci::configuration::StepParsePreload>();
133   AddStep<ci::pkgmgr::StepCheckRestriction>();
134   AddStep<ci::configuration::StepCheckTizenVersion>();
135   AddStep<ci::security::StepSignature>(true);
136   AddStep<wgt::security::StepCheckSettingsLevel>();
137   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
138   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
139   AddStep<wgt::security::StepCheckWgtImePrivilege>();
140   AddStep<hybrid::encryption::StepEncryptHybridResources>();
141   AddStep<ci::security::StepRollbackInstallationSecurity>();
142   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
143   AddStep<ci::filesystem::StepAcquireExternalStorage>(false);
144   AddStep<ci::filesystem::StepCopy>();
145   AddStep<ci::filesystem::StepCopyTep>();
146   AddStep<tpk::filesystem::StepTpkPatchIcons>();
147   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
148   AddStep<ci::filesystem::StepCreateIcons>();
149   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
150   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
151   AddStep<wgt::pkgmgr::StepGenerateXml>();
152   AddStep<hybrid::pkgmgr::StepMergeXml>();
153   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
154   AddStep<hybrid::configuration::StepMergeTpkConfig>();
155   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
156   AddStep<ci::security::StepPrivilegeCompatibility>(
157       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
158   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
159   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
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<wgt::security::StepCheckSettingsLevel>();
189   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
190   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
191   AddStep<wgt::security::StepCheckWgtImePrivilege>();
192   AddStep<hybrid::encryption::StepEncryptHybridResources>();
193   AddStep<ci::configuration::StepParseManifest>(
194       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
195       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
196   AddStep<ci::configuration::StepBlockCrossUpdate>();
197   AddStep<ci::pkgmgr::StepKillApps>();
198   AddStep<ci::backup::StepBackupManifest>();
199   AddStep<ci::backup::StepBackupIcons>();
200   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
201   AddStep<ci::filesystem::StepAcquireExternalStorage>(true);
202   AddStep<ci::backup::StepCopyBackup>();
203   AddStep<ci::filesystem::StepUpdateTep>();
204   AddStep<tpk::filesystem::StepTpkPatchIcons>();
205   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
206   AddStep<ci::filesystem::StepCreateIcons>();
207   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
208   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
209   AddStep<ci::filesystem::StepCopyStorageDirectories>();
210   AddStep<wgt::pkgmgr::StepGenerateXml>();
211   AddStep<hybrid::pkgmgr::StepMergeXml>();
212   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
213   AddStep<hybrid::configuration::StepMergeTpkConfig>();
214   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
215   AddStep<ci::security::StepPrivilegeCompatibility>(
216       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
217   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
218   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
219   AddStep<ci::pkgmgr::StepUpdateApplication>();
220   AddStep<ci::security::StepRegisterTrustAnchor>(
221       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
222   AddStep<ci::security::StepPrivacyPrivilege>(
223       ci::security::StepPrivacyPrivilege::ActionType::Update);
224   AddStep<ci::security::StepUpdateSecurity>();
225   AddStep<ci::pkgmgr::StepRunParserPlugin>(
226       ci::Plugin::ActionType::Upgrade);
227   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
228   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
229   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
230 }
231
232 void HybridInstaller::UninstallSteps() {
233   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
234   AddStep<ci::pkgmgr::StepCheckRestriction>();
235   AddStep<ci::pkgmgr::StepCheckRemovable>();
236   AddStep<ci::pkgmgr::StepCheckForceClean>();
237   AddStep<ci::configuration::StepParseManifest>(
238       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
239       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
240   AddStep<ci::pkgmgr::StepRunParserPlugin>(
241       ci::Plugin::ActionType::Uninstall);
242   AddStep<ci::pkgmgr::StepKillApps>();
243   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
244   AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
245   AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
246   AddStep<ci::pkgmgr::StepUnregisterApplication>();
247   AddStep<ci::filesystem::StepRemoveTep>();
248   AddStep<ci::filesystem::StepRemoveFiles>();
249   AddStep<ci::filesystem::StepRemoveZipImage>();
250   AddStep<ci::filesystem::StepRemoveIcons>();
251   AddStep<wgt::encryption::StepRemoveEncryptionData>();
252   AddStep<ci::security::StepUnregisterTrustAnchor>();
253   AddStep<ci::security::StepPrivacyPrivilege>(
254       ci::security::StepPrivacyPrivilege::ActionType::Uninstall);
255   AddStep<ci::security::StepRevokeSecurity>();
256   AddStep<ci::pkgmgr::StepRemoveManifest>();
257   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
258 }
259
260 void HybridInstaller::ReinstallSteps() {
261   // RDS is not supported for hybrid apps
262   AddStep<ci::configuration::StepFail>();
263 }
264
265 void HybridInstaller::DeltaSteps() {
266   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
267   AddStep<ci::recovery::StepCreateRecoveryFile>();
268   AddStep<ci::filesystem::StepUnzip>();
269   AddStep<ci::configuration::StepParseManifest>(
270       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
271       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
272   AddStep<ci::pkgmgr::StepCheckUpgradable>();
273   AddStep<wgt::filesystem::StepWgtUndoPatchStorageDirectories>();
274   AddStep<hybrid::configuration::StepStashTpkConfig>();
275   AddStep<ci::configuration::StepParseManifest>(
276       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
277       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
278   AddStep<ci::filesystem::StepEnableExternalMount>();
279   AddStep<ci::filesystem::StepDeltaPatch>();
280   AddStep<ci::filesystem::StepDisableExternalMount>();
281   AddStep<wgt::configuration::StepParse>(
282       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
283   AddStep<ci::configuration::StepParsePreload>();
284   AddStep<ci::configuration::StepCheckTizenVersion>();
285   AddStep<ci::security::StepSignature>(true);
286   AddStep<wgt::security::StepCheckSettingsLevel>();
287   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
288   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
289   AddStep<wgt::security::StepCheckWgtImePrivilege>();
290   AddStep<hybrid::encryption::StepEncryptHybridResources>();
291   AddStep<ci::configuration::StepBlockCrossUpdate>();
292   AddStep<ci::pkgmgr::StepKillApps>();
293   AddStep<ci::backup::StepBackupManifest>();
294   AddStep<ci::backup::StepBackupIcons>();
295   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
296   AddStep<ci::filesystem::StepAcquireExternalStorage>(true);
297   AddStep<ci::backup::StepCopyBackup>();
298   AddStep<ci::filesystem::StepUpdateTep>();
299   AddStep<tpk::filesystem::StepTpkPatchIcons>();
300   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
301   AddStep<ci::filesystem::StepCreateIcons>();
302   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
303   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
304   AddStep<ci::filesystem::StepCopyStorageDirectories>();
305   AddStep<wgt::pkgmgr::StepGenerateXml>();
306   AddStep<hybrid::pkgmgr::StepMergeXml>();
307   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
308   AddStep<hybrid::configuration::StepMergeTpkConfig>();
309   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
310   AddStep<ci::security::StepPrivilegeCompatibility>(
311       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
312   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
313   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
314   AddStep<ci::security::StepRegisterTrustAnchor>(
315       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
316   AddStep<ci::security::StepPrivacyPrivilege>(
317       ci::security::StepPrivacyPrivilege::ActionType::Update);
318   AddStep<ci::pkgmgr::StepUpdateApplication>();
319   AddStep<ci::security::StepUpdateSecurity>();
320   AddStep<ci::pkgmgr::StepRunParserPlugin>(
321       ci::Plugin::ActionType::Upgrade);
322   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
323   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
324   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
325 }
326
327 void HybridInstaller::RecoverySteps() {
328   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
329   AddStep<ci::recovery::StepOpenRecoveryFile>();
330   AddStep<ci::filesystem::StepRemoveTemporaryDirectory>();
331   AddStep<ci::configuration::StepParseManifest>(
332       ci::configuration::StepParseManifest::ManifestLocation::RECOVERY,
333       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
334   AddStep<ci::filesystem::StepRecoverIcons>();
335   AddStep<ci::pkgmgr::StepRecoverParserPlugin>();
336   AddStep<ci::filesystem::StepRecoverManifest>();
337   AddStep<ci::filesystem::StepRecoverExternalStorage>();
338   AddStep<ci::filesystem::StepRecoverStorageDirectories>();
339   AddStep<ci::filesystem::StepRecoverFiles>();
340   AddStep<ci::mount::StepMountRecover>();
341   AddStep<tpk::security::StepTpkRecoverSignature>();
342   AddStep<ci::security::StepRecoverPrivilegeCompatibility>(
343       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
344   AddStep<ci::filesystem::StepRecoverChangeOwner>();
345   AddStep<ci::security::StepRecoverSecurity>();
346   AddStep<ci::pkgmgr::StepRecoverApplication>();
347 }
348
349 void HybridInstaller::MountInstallSteps() {
350   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
351   AddStep<ci::recovery::StepCreateRecoveryFile>();
352   AddStep<ci::mount::StepMountUnpacked>();
353   AddStep<ci::configuration::StepParseManifest>(
354       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
355       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
356   AddStep<ci::pkgmgr::StepCheckInstallable>();
357   AddStep<hybrid::configuration::StepStashTpkConfig>();
358   AddStep<wgt::configuration::StepParse>(
359       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
360   AddStep<ci::configuration::StepParsePreload>();
361   AddStep<ci::pkgmgr::StepCheckRestriction>();
362   AddStep<ci::configuration::StepCheckTizenVersion>();
363   AddStep<ci::security::StepSignature>(true);
364   AddStep<wgt::security::StepCheckSettingsLevel>();
365   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
366   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
367   AddStep<wgt::security::StepCheckWgtImePrivilege>();
368   AddStep<hybrid::encryption::StepEncryptHybridResources>();
369   AddStep<ci::security::StepRollbackInstallationSecurity>();
370   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
371   AddStep<ci::mount::StepMountInstall>();
372   AddStep<tpk::filesystem::StepTpkPreparePackageDirectory>();
373   AddStep<ci::filesystem::StepCopyTep>();
374   AddStep<tpk::filesystem::StepTpkPatchIcons>();
375   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
376   AddStep<ci::filesystem::StepCreateIcons>();
377   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
378   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
379   AddStep<wgt::pkgmgr::StepGenerateXml>();
380   AddStep<hybrid::pkgmgr::StepMergeXml>();
381   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
382   AddStep<hybrid::configuration::StepMergeTpkConfig>();
383   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
384   AddStep<ci::security::StepPrivilegeCompatibility>(
385       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
386   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
387   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
388   AddStep<ci::pkgmgr::StepRegisterApplication>();
389   AddStep<ci::security::StepRegisterTrustAnchor>(
390       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
391   AddStep<ci::security::StepPrivacyPrivilege>(
392       ci::security::StepPrivacyPrivilege::ActionType::Install);
393   AddStep<ci::security::StepRegisterSecurity>();
394   AddStep<ci::pkgmgr::StepRunParserPlugin>(
395       ci::Plugin::ActionType::Install);
396   AddStep<ci::filesystem::StepCreateStorageDirectories>(
397       wgt::filesystem::HybridAdditionalSharedDirs);
398   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>(true);
399   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
400 }
401
402 void HybridInstaller::MountUpdateSteps() {
403   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
404   AddStep<ci::recovery::StepCreateRecoveryFile>();
405   AddStep<ci::mount::StepMountUnpacked>();
406   AddStep<ci::configuration::StepParseManifest>(
407       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
408       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
409   AddStep<ci::pkgmgr::StepCheckUpgradable>();
410   AddStep<hybrid::configuration::StepStashTpkConfig>();
411   AddStep<wgt::configuration::StepParse>(
412       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
413   AddStep<ci::configuration::StepParsePreload>();
414   AddStep<ci::configuration::StepCheckTizenVersion>();
415   AddStep<ci::security::StepSignature>(true);
416   AddStep<wgt::security::StepCheckSettingsLevel>();
417   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
418   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
419   AddStep<wgt::security::StepCheckWgtImePrivilege>();
420   AddStep<hybrid::encryption::StepEncryptHybridResources>();
421   AddStep<ci::configuration::StepParseManifest>(
422       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
423       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
424   AddStep<ci::configuration::StepBlockCrossUpdate>();
425   AddStep<ci::pkgmgr::StepKillApps>();
426   AddStep<ci::backup::StepBackupManifest>();
427   AddStep<ci::backup::StepBackupIcons>();
428   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
429   AddStep<ci::mount::StepMountUpdate>();
430   AddStep<tpk::filesystem::StepTpkUpdatePackageDirectory>();
431   AddStep<ci::filesystem::StepUpdateTep>();
432   AddStep<tpk::filesystem::StepTpkPatchIcons>();
433   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
434   AddStep<ci::filesystem::StepCreateIcons>();
435   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
436   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
437   AddStep<wgt::pkgmgr::StepGenerateXml>();
438   AddStep<hybrid::pkgmgr::StepMergeXml>();
439   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
440   AddStep<hybrid::configuration::StepMergeTpkConfig>();
441   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
442   AddStep<ci::security::StepPrivilegeCompatibility>(
443       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
444   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
445   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
446   AddStep<ci::pkgmgr::StepUpdateApplication>();
447   AddStep<ci::security::StepRegisterTrustAnchor>(
448       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
449   AddStep<ci::security::StepPrivacyPrivilege>(
450       ci::security::StepPrivacyPrivilege::ActionType::Update);
451   AddStep<ci::security::StepUpdateSecurity>();
452   AddStep<ci::pkgmgr::StepRunParserPlugin>(
453       ci::Plugin::ActionType::Upgrade);
454   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
455   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>(true);
456   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
457 }
458
459 void HybridInstaller::ManifestDirectInstallSteps() {
460   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
461   AddStep<ci::configuration::StepParseManifest>(
462       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
463       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
464   AddStep<ci::pkgmgr::StepCheckInstallable>();
465   AddStep<hybrid::configuration::StepStashTpkConfig>();
466   AddStep<wgt::configuration::StepParse>(
467       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
468   AddStep<ci::configuration::StepParsePreload>();
469   AddStep<ci::configuration::StepCheckTizenVersion>();
470   AddStep<ci::security::StepSignature>(true);
471   AddStep<wgt::security::StepCheckSettingsLevel>();
472   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
473   AddStep<ci::security::StepRollbackInstallationSecurity>();
474   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
475   AddStep<tpk::filesystem::StepTpkPatchIcons>();
476   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
477   AddStep<wgt::pkgmgr::StepGenerateXml>();
478   AddStep<hybrid::pkgmgr::StepMergeXml>();
479   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
480   AddStep<hybrid::configuration::StepMergeTpkConfig>();
481   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
482   AddStep<ci::security::StepPrivilegeCompatibility>(
483       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
484   AddStep<hybrid::configuration::StepSetMainapp>();
485   AddStep<ci::pkgmgr::StepRegisterApplication>();
486   AddStep<ci::security::StepRegisterTrustAnchor>(
487       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
488   AddStep<ci::security::StepPrivacyPrivilege>(
489       ci::security::StepPrivacyPrivilege::ActionType::Install);
490   AddStep<ci::security::StepRegisterSecurity>();
491   AddStep<ci::pkgmgr::StepRunParserPlugin>(
492       ci::Plugin::ActionType::Install);
493   AddStep<ci::filesystem::StepCreateStorageDirectories>(
494       wgt::filesystem::HybridAdditionalSharedDirs);
495   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
496   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
497 }
498
499 void HybridInstaller::ManifestDirectUpdateSteps() {
500   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
501   AddStep<ci::configuration::StepParseManifest>(
502       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
503       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
504   AddStep<ci::pkgmgr::StepCheckUpgradable>();
505   AddStep<hybrid::configuration::StepStashTpkConfig>();
506   AddStep<wgt::configuration::StepParse>(
507       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
508   AddStep<ci::configuration::StepParsePreload>();
509   AddStep<ci::configuration::StepCheckTizenVersion>();
510   AddStep<ci::security::StepSignature>(true);
511   AddStep<wgt::security::StepCheckSettingsLevel>();
512   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
513   AddStep<ci::configuration::StepParseManifest>(
514       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
515       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
516   AddStep<ci::pkgmgr::StepKillApps>();
517   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
518   AddStep<tpk::filesystem::StepTpkPatchIcons>();
519   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
520   AddStep<wgt::pkgmgr::StepGenerateXml>();
521   AddStep<hybrid::pkgmgr::StepMergeXml>();
522   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
523   AddStep<hybrid::configuration::StepMergeTpkConfig>();
524   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
525   AddStep<ci::security::StepPrivilegeCompatibility>(
526       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
527   AddStep<hybrid::configuration::StepSetMainapp>();
528   AddStep<ci::pkgmgr::StepUpdateApplication>();
529   AddStep<ci::security::StepRegisterTrustAnchor>(
530       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
531   AddStep<ci::security::StepPrivacyPrivilege>(
532       ci::security::StepPrivacyPrivilege::ActionType::Update);
533   AddStep<ci::security::StepUpdateSecurity>();
534   AddStep<ci::pkgmgr::StepRunParserPlugin>(
535       ci::Plugin::ActionType::Upgrade);
536   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
537   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
538   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
539 }
540
541 void HybridInstaller::ManifestPartialInstallSteps() {
542   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
543   AddStep<ci::configuration::StepParseManifest>(
544       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
545       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
546   AddStep<hybrid::configuration::StepStashTpkConfig>();
547   AddStep<wgt::configuration::StepParse>(
548       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
549   AddStep<hybrid::configuration::StepMergeTpkConfig>();
550   AddStep<hybrid::configuration::StepSetMainapp>();
551   AddStep<ci::configuration::StepParsePreload>();
552   AddStep<ci::security::StepSignature>(false);
553   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
554   AddStep<ci::security::StepPrivilegeCompatibility>(
555       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
556   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
557   AddStep<wgt::filesystem::StepWgtPatchIcons>(false);
558   AddStep<ci::pkgmgr::StepRegisterApplication>();
559   AddStep<ci::security::StepRegisterTrustAnchor>(
560       ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
561   AddStep<ci::security::StepPrivacyPrivilege>(
562       ci::security::StepPrivacyPrivilege::ActionType::Install);
563   AddStep<ci::security::StepRegisterSecurity>();
564   AddStep<ci::pkgmgr::StepRunParserPlugin>(
565       ci::Plugin::ActionType::Install);
566   AddStep<ci::filesystem::StepCreateStorageDirectories>(
567       wgt::filesystem::HybridAdditionalSharedDirs);
568   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
569 }
570
571 void HybridInstaller::ManifestPartialUpdateSteps() {
572   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
573   AddStep<ci::configuration::StepParseManifest>(
574       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
575       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
576   AddStep<hybrid::configuration::StepStashTpkConfig>();
577   AddStep<wgt::configuration::StepParse>(
578       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
579   AddStep<hybrid::configuration::StepMergeTpkConfig>();
580   AddStep<hybrid::configuration::StepSetMainapp>();
581   AddStep<ci::configuration::StepParsePreload>();
582   AddStep<ci::security::StepSignature>(false);
583   AddStep<ci::configuration::StepParseManifest>(
584       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
585       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
586   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
587   AddStep<ci::security::StepPrivilegeCompatibility>(
588       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
589   AddStep<ci::pkgmgr::StepKillApps>();
590   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
591   AddStep<wgt::filesystem::StepWgtPatchIcons>(false);
592   AddStep<ci::pkgmgr::StepUpdateApplication>();
593   AddStep<ci::security::StepRegisterTrustAnchor>(
594       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
595   AddStep<ci::security::StepPrivacyPrivilege>(
596       ci::security::StepPrivacyPrivilege::ActionType::Update);
597   AddStep<ci::security::StepRegisterSecurity>();
598   AddStep<ci::pkgmgr::StepRunParserPlugin>(
599       ci::Plugin::ActionType::Upgrade);
600   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
601   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
602 }
603
604 void HybridInstaller::PartialUninstallSteps() {
605   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
606   AddStep<ci::pkgmgr::StepCheckRestriction>();
607   AddStep<ci::pkgmgr::StepCheckRemovable>();
608   AddStep<ci::pkgmgr::StepCheckForceClean>();
609   AddStep<ci::configuration::StepParseManifest>(
610       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
611       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
612   AddStep<ci::pkgmgr::StepRunParserPlugin>(
613       ci::Plugin::ActionType::Uninstall);
614   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
615   AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
616   AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
617   AddStep<ci::pkgmgr::StepUnregisterApplication>();
618   AddStep<wgt::encryption::StepRemoveEncryptionData>();
619   AddStep<ci::security::StepUnregisterTrustAnchor>();
620   AddStep<ci::security::StepPrivacyPrivilege>(
621       ci::security::StepPrivacyPrivilege::ActionType::Uninstall);
622   AddStep<ci::security::StepRevokeSecurity>();
623 }
624
625 void HybridInstaller::ReadonlyUpdateInstallSteps() {
626   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
627   AddStep<ci::recovery::StepCreateRecoveryFile>();
628   AddStep<ci::filesystem::StepUnzip>();
629   AddStep<ci::configuration::StepParseManifest>(
630       ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
631       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
632   AddStep<ci::pkgmgr::StepCheckUpgradable>();
633   AddStep<hybrid::configuration::StepStashTpkConfig>();
634   AddStep<wgt::configuration::StepParse>(
635       wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
636   AddStep<ci::configuration::StepParsePreload>();
637   AddStep<ci::configuration::StepCheckTizenVersion>();
638   AddStep<ci::security::StepSignature>(true);
639   AddStep<wgt::security::StepCheckSettingsLevel>();
640   AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
641   AddStep<wgt::security::StepCheckWgtNotificationCategory>();
642   AddStep<wgt::security::StepCheckWgtImePrivilege>();
643   AddStep<hybrid::encryption::StepEncryptHybridResources>();
644   AddStep<ci::configuration::StepSwitchReadonlyMode>();
645   AddStep<ci::configuration::StepParseManifest>(
646       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
647       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
648   AddStep<ci::configuration::StepSwitchReadonlyMode>();
649   AddStep<ci::configuration::StepBlockCrossUpdate>();
650   AddStep<ci::pkgmgr::StepKillApps>();
651   AddStep<ci::filesystem::StepCopy>();
652   AddStep<ci::filesystem::StepCopyTep>();
653   AddStep<tpk::filesystem::StepTpkPatchIcons>();
654   AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
655   AddStep<ci::filesystem::StepCreateIcons>();
656   AddStep<wgt::filesystem::StepCopyPreviewIcons>();
657   AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
658   AddStep<ci::filesystem::StepCreateStorageDirectories>();
659   AddStep<wgt::pkgmgr::StepGenerateXml>();
660   AddStep<hybrid::pkgmgr::StepMergeXml>();
661   AddStep<tpk::pkgmgr::StepManifestAdjustment>();
662   AddStep<hybrid::configuration::StepMergeTpkConfig>();
663   AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
664   AddStep<ci::security::StepPrivilegeCompatibility>(
665       ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
666   AddStep<wgt::filesystem::StepCreateWgtSymbolicLink>();
667   AddStep<tpk::filesystem::StepCreateTpkSymbolicLink>();
668   AddStep<ci::pkgmgr::StepUpdateApplication>();
669   AddStep<ci::security::StepRegisterTrustAnchor>(
670       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
671   AddStep<ci::security::StepPrivacyPrivilege>(
672       ci::security::StepPrivacyPrivilege::ActionType::Update);
673   AddStep<ci::security::StepUpdateSecurity>();
674   AddStep<ci::pkgmgr::StepRunParserPlugin>(
675       ci::Plugin::ActionType::Upgrade);
676   AddStep<ci::filesystem::StepUpdateStorageDirectories>();
677   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
678   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
679 }
680
681 void HybridInstaller::ReadonlyUpdateUninstallSteps() {
682   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
683   AddStep<ci::pkgmgr::StepCheckRestriction>();
684   AddStep<ci::pkgmgr::StepCheckRemovable>();
685   AddStep<ci::configuration::StepParseManifest>(
686       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
687       ci::configuration::StepParseManifest::StoreLocation::BACKUP);
688   AddStep<ci::configuration::StepSwitchReadonlyMode>();
689   AddStep<ci::configuration::StepParseManifest>(
690       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
691       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
692   AddStep<ci::pkgmgr::StepCheckUpgradable>();
693   AddStep<ci::configuration::StepParsePreload>();
694   AddStep<wgt::configuration::StepSetOldSignatureFilesLocation>();
695   AddStep<ci::security::StepSignature>(false);
696   AddStep<ci::security::StepPrivilegeCompatibility>(
697       ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT);
698   AddStep<ci::configuration::StepSwitchReadonlyMode>();
699   AddStep<ci::pkgmgr::StepKillApps>();
700   AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
701   AddStep<ci::filesystem::StepRemoveTep>();
702   AddStep<ci::filesystem::StepRemoveFiles>();
703   AddStep<ci::filesystem::StepRemoveZipImage>();
704   AddStep<hybrid::configuration::StepSetMainapp>();
705   AddStep<ci::pkgmgr::StepUpdateApplication>();
706   AddStep<ci::filesystem::StepRemoveUserData>();
707   AddStep<ci::configuration::StepSwitchReadonlyMode>();
708   AddStep<ci::security::StepRevokeTrustAnchor>();
709   AddStep<ci::security::StepRegisterTrustAnchor>(
710       ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
711   AddStep<ci::security::StepPrivacyPrivilege>(
712       ci::security::StepPrivacyPrivilege::ActionType::Update);
713   AddStep<ci::security::StepUpdateSecurity>();
714   AddStep<ci::pkgmgr::StepRemoveManifest>();
715   AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
716 }
717
718 void HybridInstaller::EnablePkgSteps() {
719   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
720   AddStep<ci::configuration::StepParseManifest>(
721       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
722       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
723   AddStep<ci::pkgmgr::StepKillApps>();
724   AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
725       ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable);
726   AddStep<ci::pkgmgr::StepRunParserPlugin>(
727       ci::Plugin::ActionType::Install);
728 }
729
730 void HybridInstaller::DisablePkgSteps() {
731   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
732   AddStep<ci::configuration::StepParseManifest>(
733       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
734       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
735   AddStep<ci::pkgmgr::StepKillApps>();
736   AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
737       ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable);
738   AddStep<ci::pkgmgr::StepRunParserPlugin>(
739       ci::Plugin::ActionType::Uninstall);
740 }
741
742 void HybridInstaller::MigrateExtImgSteps() {
743   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
744   AddStep<ci::security::StepMigrateLegacyExtImage>();
745   AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
746 }
747
748 void HybridInstaller::RecoverDBSteps() {
749   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
750   AddStep<ci::configuration::StepParseManifest>(
751       ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
752       ci::configuration::StepParseManifest::StoreLocation::NORMAL);
753   AddStep<ci::pkgmgr::StepCheckInstallable>();
754   AddStep<hybrid::configuration::StepStashTpkConfig>();
755   AddStep<wgt::configuration::StepParse>(
756       wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
757   AddStep<ci::configuration::StepParsePreload>();
758   AddStep<wgt::security::StepCheckSettingsLevel>();
759   AddStep<hybrid::configuration::StepMergeTpkConfig>();
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::StepSetMainapp>();
766   AddStep<ci::pkgmgr::StepRegisterApplication>();
767 }
768
769 }  // namespace hybrid
770