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