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.
5 #include "hybrid/hybrid_installer.h"
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>
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>
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"
110 namespace ci = common_installer;
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());
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>(true);
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>();
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>(true);
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>();
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>();
261 void HybridInstaller::ReinstallSteps() {
262 // RDS is not supported for hybrid apps
263 AddStep<ci::configuration::StepFail>();
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>(true);
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>();
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>();
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>(true);
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>();
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>(true);
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>();
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>(true);
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>();
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>(true);
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>();
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<wgt::filesystem::StepWgtPatchIcons>(false);
562 AddStep<ci::pkgmgr::StepRegisterApplication>();
563 AddStep<ci::security::StepRegisterTrustAnchor>(
564 ci::security::StepRegisterTrustAnchor::RegisterType::INSTALL);
565 AddStep<ci::security::StepPrivacyPrivilege>(
566 ci::security::StepPrivacyPrivilege::ActionType::Install);
567 AddStep<ci::security::StepRegisterSecurity>();
568 AddStep<ci::pkgmgr::StepRunParserPlugin>(
569 ci::Plugin::ActionType::Install);
570 AddStep<ci::filesystem::StepCreateStorageDirectories>(
571 wgt::filesystem::HybridAdditionalSharedDirs);
572 AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
575 void HybridInstaller::ManifestPartialUpdateSteps() {
576 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
577 AddStep<ci::configuration::StepParseManifest>(
578 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
579 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
580 AddStep<hybrid::configuration::StepStashTpkConfig>();
581 AddStep<wgt::configuration::StepParse>(
582 wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
583 AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
584 AddStep<hybrid::configuration::StepMergeTpkConfig>(
585 hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
586 AddStep<ci::configuration::StepParsePreload>();
587 AddStep<ci::security::StepSignature>(false);
588 AddStep<ci::configuration::StepParseManifest>(
589 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
590 ci::configuration::StepParseManifest::StoreLocation::BACKUP);
591 AddStep<ci::security::StepPrivilegeCompatibility>(
592 ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
593 AddStep<ci::pkgmgr::StepKillApps>();
594 AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
595 AddStep<wgt::filesystem::StepWgtPatchIcons>(false);
596 AddStep<ci::pkgmgr::StepUpdateApplication>();
597 AddStep<ci::security::StepRegisterTrustAnchor>(
598 ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
599 AddStep<ci::security::StepPrivacyPrivilege>(
600 ci::security::StepPrivacyPrivilege::ActionType::Update);
601 AddStep<ci::security::StepRegisterSecurity>();
602 AddStep<ci::pkgmgr::StepRunParserPlugin>(
603 ci::Plugin::ActionType::Upgrade);
604 AddStep<ci::filesystem::StepUpdateStorageDirectories>();
605 AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
608 void HybridInstaller::PartialUninstallSteps() {
609 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
610 AddStep<ci::pkgmgr::StepCheckRestriction>();
611 AddStep<ci::pkgmgr::StepCheckRemovable>();
612 AddStep<ci::pkgmgr::StepCheckForceClean>();
613 AddStep<ci::configuration::StepParseManifest>(
614 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
615 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
616 AddStep<ci::pkgmgr::StepRunParserPlugin>(
617 ci::Plugin::ActionType::Uninstall);
618 AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
619 AddStep<ci::filesystem::StepOptionalAcquireExternalStorage>();
620 AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
621 AddStep<ci::pkgmgr::StepUnregisterApplication>();
622 AddStep<wgt::encryption::StepRemoveEncryptionData>();
623 AddStep<ci::security::StepUnregisterTrustAnchor>();
624 AddStep<ci::security::StepPrivacyPrivilege>(
625 ci::security::StepPrivacyPrivilege::ActionType::Uninstall);
626 AddStep<ci::security::StepRevokeSecurity>();
629 void HybridInstaller::ReadonlyUpdateInstallSteps() {
630 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
631 AddStep<ci::recovery::StepCreateRecoveryFile>();
632 AddStep<ci::filesystem::StepUnzip>();
633 AddStep<ci::configuration::StepParseManifest>(
634 ci::configuration::StepParseManifest::ManifestLocation::PACKAGE,
635 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
636 AddStep<ci::pkgmgr::StepCheckUpgradable>();
637 AddStep<hybrid::configuration::StepStashTpkConfig>();
638 AddStep<wgt::configuration::StepParse>(
639 wgt::configuration::StepParse::ConfigLocation::RESOURCE_WGT, true);
640 AddStep<ci::configuration::StepParsePreload>();
641 AddStep<ci::configuration::StepCheckTizenVersion>();
642 AddStep<ci::security::StepSignature>(true);
643 AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
644 AddStep<ci::security::StepPrivilegeCompatibility>(
645 ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
646 AddStep<wgt::security::StepCheckSettingsLevel>();
647 AddStep<wgt::security::StepCheckWgtBackgroundCategory>();
648 AddStep<wgt::security::StepCheckWgtNotificationCategory>();
649 AddStep<wgt::security::StepCheckWgtImePrivilege>();
650 AddStep<hybrid::encryption::StepEncryptResources>();
651 AddStep<ci::configuration::StepSwitchReadonlyMode>();
652 AddStep<ci::configuration::StepParseManifest>(
653 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
654 ci::configuration::StepParseManifest::StoreLocation::BACKUP);
655 AddStep<ci::configuration::StepSwitchReadonlyMode>();
656 AddStep<ci::configuration::StepBlockCrossUpdate>();
657 AddStep<ci::pkgmgr::StepKillApps>();
658 AddStep<ci::filesystem::StepCopy>();
659 AddStep<ci::filesystem::StepCopyTep>();
660 AddStep<tpk::filesystem::StepTpkPatchIcons>();
661 AddStep<wgt::filesystem::StepWgtPatchIcons>(true);
662 AddStep<ci::filesystem::StepCreateIcons>();
663 AddStep<wgt::filesystem::StepCopyPreviewIcons>();
664 AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
665 AddStep<ci::filesystem::StepCreateStorageDirectories>();
666 AddStep<wgt::pkgmgr::StepGenerateXml>();
667 AddStep<hybrid::pkgmgr::StepMergeXml>();
668 AddStep<tpk::pkgmgr::StepManifestAdjustment>();
669 AddStep<hybrid::configuration::StepMergeTpkConfig>(
670 hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
671 AddStep<wgt::filesystem::StepCreateSymbolicLink>();
672 AddStep<tpk::filesystem::StepCreateSymbolicLink>();
673 AddStep<ci::pkgmgr::StepUpdateApplication>();
674 AddStep<ci::security::StepRegisterTrustAnchor>(
675 ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
676 AddStep<ci::security::StepPrivacyPrivilege>(
677 ci::security::StepPrivacyPrivilege::ActionType::Update);
678 AddStep<ci::security::StepUpdateSecurity>();
679 AddStep<ci::pkgmgr::StepRunParserPlugin>(
680 ci::Plugin::ActionType::Upgrade);
681 AddStep<ci::filesystem::StepUpdateStorageDirectories>();
682 AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
683 AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
686 void HybridInstaller::ReadonlyUpdateUninstallSteps() {
687 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
688 AddStep<ci::pkgmgr::StepCheckRestriction>();
689 AddStep<ci::pkgmgr::StepCheckRemovable>();
690 AddStep<ci::configuration::StepParseManifest>(
691 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
692 ci::configuration::StepParseManifest::StoreLocation::BACKUP);
693 AddStep<ci::configuration::StepSwitchReadonlyMode>();
694 AddStep<ci::configuration::StepParseManifest>(
695 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
696 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
697 AddStep<ci::pkgmgr::StepCheckUpgradable>();
698 AddStep<ci::configuration::StepParsePreload>();
699 AddStep<wgt::configuration::StepSetOldSignatureFilesLocation>();
700 AddStep<ci::security::StepSignature>(false);
701 AddStep<ci::security::StepPrivilegeCompatibility>(
702 ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT);
703 AddStep<ci::configuration::StepSwitchReadonlyMode>();
704 AddStep<ci::pkgmgr::StepKillApps>();
705 AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
706 AddStep<ci::filesystem::StepRemoveTep>();
707 AddStep<ci::filesystem::StepRemoveFiles>();
708 AddStep<ci::filesystem::StepRemoveZipImage>();
709 AddStep<ci::pkgmgr::StepUpdateApplication>();
710 AddStep<ci::filesystem::StepRemoveUserData>();
711 AddStep<ci::configuration::StepSwitchReadonlyMode>();
712 AddStep<ci::security::StepRevokeTrustAnchor>();
713 AddStep<ci::security::StepRegisterTrustAnchor>(
714 ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
715 AddStep<ci::security::StepPrivacyPrivilege>(
716 ci::security::StepPrivacyPrivilege::ActionType::Update);
717 AddStep<ci::security::StepUpdateSecurity>();
718 AddStep<ci::pkgmgr::StepRemoveManifest>();
719 AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
722 void HybridInstaller::EnablePkgSteps() {
723 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
724 AddStep<ci::configuration::StepParseManifest>(
725 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
726 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
727 AddStep<ci::pkgmgr::StepKillApps>();
728 AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
729 ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable);
730 AddStep<ci::pkgmgr::StepRunParserPlugin>(
731 ci::Plugin::ActionType::Install);
734 void HybridInstaller::DisablePkgSteps() {
735 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
736 AddStep<ci::configuration::StepParseManifest>(
737 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
738 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
739 AddStep<ci::pkgmgr::StepKillApps>();
740 AddStep<ci::pkgmgr::StepUpdatePkgDisableInfo>(
741 ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable);
742 AddStep<ci::pkgmgr::StepRunParserPlugin>(
743 ci::Plugin::ActionType::Uninstall);
746 void HybridInstaller::MigrateExtImgSteps() {
747 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
748 AddStep<ci::security::StepMigrateLegacyExtImage>();
749 AddStep<ci::filesystem::StepChangeOwnershipAndPermission>();
752 void HybridInstaller::RecoverDBSteps() {
753 AddStep<ci::configuration::StepConfigure>(pkgmgr_);
754 AddStep<ci::configuration::StepParseManifest>(
755 ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
756 ci::configuration::StepParseManifest::StoreLocation::NORMAL);
757 AddStep<ci::pkgmgr::StepCheckInstallable>();
758 AddStep<hybrid::configuration::StepStashTpkConfig>();
759 AddStep<wgt::configuration::StepParse>(
760 wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
761 AddStep<ci::configuration::StepParsePreload>();
762 AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
763 AddStep<ci::security::StepGetPrivilegeLevel>();
764 AddStep<ci::security::StepPrivilegeCompatibility>(
765 ci::security::StepPrivilegeCompatibility::InternalPrivType::BOTH);
766 AddStep<wgt::security::StepCheckSettingsLevel>();
767 AddStep<hybrid::configuration::StepMergeTpkConfig>(
768 hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
769 AddStep<ci::pkgmgr::StepRegisterApplication>();
772 } // namespace hybrid