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