This patch implements installation of package in external sd card storage.
Tpk and wgt applications may declare preference of being installed on external
storage. If so and space requirement is satisified then their resource directory
is installed in sd card with use of app2sd API.
Following patchsets should be submitted together:
- https://review.tizen.org/gerrit/61678
- https://review.tizen.org/gerrit/61679
- https://review.tizen.org/gerrit/61680
Verify by:
- running smoke tests,
- running installation, update, deinstallation for package that prefers external
installation (SD card must be inserted).
Requires:
- https://review.tizen.org/gerrit/#/c/64796/
Change-Id: I174c14ddfb48dc2bc1a5935c3b4799abd7f26332
class HybridBackendData : public wgt::WgtBackendData {
public:
- HybridBackendData() { }
+ HybridBackendData() : tpk_manifest_data(nullptr) { }
~HybridBackendData() override {
if (tpk_manifest_data.get())
pkgmgr_parser_free_manifest_xml(tpk_manifest_data.get());
#include <common/step/configuration/step_configure.h>
#include <common/step/configuration/step_fail.h>
#include <common/step/configuration/step_parse_manifest.h>
+#include <common/step/filesystem/step_acquire_external_storage.h>
#include <common/step/filesystem/step_clear_data.h>
#include <common/step/filesystem/step_copy.h>
#include <common/step/filesystem/step_copy_storage_directories.h>
#include <common/step/filesystem/step_recover_files.h>
#include <common/step/filesystem/step_recover_icons.h>
#include <common/step/filesystem/step_recover_manifest.h>
+#include <common/step/filesystem/step_recover_external_storage.h>
#include <common/step/filesystem/step_recover_storage_directories.h>
#include <common/step/filesystem/step_remove_files.h>
#include <common/step/filesystem/step_remove_icons.h>
#include "hybrid/step/configuration/step_stash_tpk_config.h"
#include "hybrid/step/encryption/step_encrypt_resources.h"
#include "wgt/step/configuration/step_parse.h"
-#include "wgt/step/configuration/step_parse_recovery.h"
#include "wgt/step/encryption/step_remove_encryption_data.h"
#include "wgt/step/filesystem/step_copy_preview_icons.h"
#include "wgt/step/filesystem/step_create_symbolic_link.h"
AddStep<wgt::security::StepCheckWgtImePrivilege>();
AddStep<hybrid::encryption::StepEncryptResources>();
AddStep<ci::security::StepRollbackInstallationSecurity>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::filesystem::StepCopy>();
AddStep<ci::filesystem::StepCopyTep>();
AddStep<tpk::filesystem::StepTpkPatchIcons>();
AddStep<ci::pkgmgr::StepKillApps>();
AddStep<ci::backup::StepBackupManifest>();
AddStep<ci::backup::StepBackupIcons>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::backup::StepCopyBackup>();
AddStep<ci::filesystem::StepCopyTep>();
AddStep<ci::pkgmgr::StepUpdateTep>();
AddStep<ci::pkgmgr::StepRunParserPlugin>(
ci::Plugin::ActionType::Uninstall);
AddStep<ci::pkgmgr::StepKillApps>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
AddStep<ci::pkgmgr::StepUnregisterApplication>();
AddStep<ci::security::StepRollbackDeinstallationSecurity>();
AddStep<ci::pkgmgr::StepKillApps>();
AddStep<ci::backup::StepBackupManifest>();
AddStep<ci::backup::StepBackupIcons>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::backup::StepCopyBackup>();
AddStep<tpk::filesystem::StepTpkPatchIcons>();
AddStep<wgt::filesystem::StepWgtPatchIcons>();
AddStep<ci::configuration::StepParseManifest>(
ci::configuration::StepParseManifest::ManifestLocation::RECOVERY,
ci::configuration::StepParseManifest::StoreLocation::NORMAL);
- AddStep<hybrid::configuration::StepStashTpkConfig>();
- AddStep<wgt::configuration::StepParseRecovery>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
AddStep<ci::pkgmgr::StepRecoverApplication>();
AddStep<ci::filesystem::StepRemoveTemporaryDirectory>();
AddStep<ci::filesystem::StepRecoverIcons>();
AddStep<ci::filesystem::StepRecoverManifest>();
+ AddStep<ci::filesystem::StepRecoverExternalStorage>();
AddStep<ci::filesystem::StepRecoverStorageDirectories>();
AddStep<ci::filesystem::StepRecoverFiles>();
AddStep<ci::security::StepRecoverSecurity>();
break;
case ci::RequestType::Clear:
AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+ AddStep<ci::configuration::StepParseManifest>(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
AddStep<ci::filesystem::StepClearData>();
break;
case ci::RequestType::MountInstall:
SET(SRCS
step/common/privileges.cc
step/configuration/step_parse.cc
- step/configuration/step_parse_recovery.cc
step/encryption/step_encrypt_resources.cc
step/encryption/step_remove_encryption_data.cc
step/filesystem/step_copy_preview_icons.cc
#include <common/step/configuration/step_configure.h>
#include <common/step/configuration/step_fail.h>
#include <common/step/configuration/step_parse_manifest.h>
+#include <common/step/filesystem/step_acquire_external_storage.h>
#include <common/step/filesystem/step_clear_data.h>
#include <common/step/filesystem/step_copy.h>
#include <common/step/filesystem/step_copy_storage_directories.h>
#include <common/step/filesystem/step_recover_files.h>
#include <common/step/filesystem/step_recover_icons.h>
#include <common/step/filesystem/step_recover_manifest.h>
+#include <common/step/filesystem/step_recover_external_storage.h>
#include <common/step/filesystem/step_recover_storage_directories.h>
#include <common/step/filesystem/step_remove_files.h>
#include <common/step/filesystem/step_remove_icons.h>
#include <common/step/rds/step_rds_parse.h>
#include "wgt/step/configuration/step_parse.h"
-#include "wgt/step/configuration/step_parse_recovery.h"
#include "wgt/step/encryption/step_encrypt_resources.h"
#include "wgt/step/encryption/step_remove_encryption_data.h"
#include "wgt/step/filesystem/step_copy_preview_icons.h"
AddStep<wgt::encryption::StepEncryptResources>();
AddStep<wgt::filesystem::StepWgtResourceDirectory>();
AddStep<ci::security::StepRollbackInstallationSecurity>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::filesystem::StepCopy>();
AddStep<ci::filesystem::StepCopyTep>();
AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
AddStep<ci::pkgmgr::StepKillApps>();
AddStep<ci::backup::StepBackupManifest>();
AddStep<ci::backup::StepBackupIcons>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::backup::StepCopyBackup>();
AddStep<ci::filesystem::StepCopyTep>();
AddStep<ci::pkgmgr::StepUpdateTep>();
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
ci::configuration::StepParseManifest::StoreLocation::NORMAL);
AddStep<ci::pkgmgr::StepKillApps>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::pkgmgr::StepRunParserPlugin>(
ci::Plugin::ActionType::Uninstall);
AddStep<ci::filesystem::StepRemovePerUserStorageDirectories>();
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
ci::configuration::StepParseManifest::StoreLocation::BACKUP);
AddStep<ci::configuration::StepBlockCrossUpdate>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::rds::StepRDSParse>();
AddStep<wgt::rds::StepWgtRDSModify>();
AddStep<ci::security::StepUpdateSecurity>();
AddStep<ci::pkgmgr::StepKillApps>();
AddStep<ci::backup::StepBackupManifest>();
AddStep<ci::backup::StepBackupIcons>();
+ AddStep<ci::filesystem::StepAcquireExternalStorage>();
AddStep<ci::backup::StepCopyBackup>();
AddStep<wgt::filesystem::StepWgtPatchStorageDirectories>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
case ci::RequestType::Recovery: {
AddStep<ci::configuration::StepConfigure>(pkgmgr_);
AddStep<ci::recovery::StepOpenRecoveryFile>();
- AddStep<wgt::configuration::StepParseRecovery>();
+ AddStep<ci::configuration::StepParseManifest>(
+ ci::configuration::StepParseManifest::ManifestLocation::RECOVERY,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
AddStep<ci::pkgmgr::StepRecoverApplication>();
AddStep<ci::filesystem::StepRemoveTemporaryDirectory>();
AddStep<ci::filesystem::StepRecoverIcons>();
AddStep<ci::filesystem::StepRecoverManifest>();
+ AddStep<ci::filesystem::StepRecoverExternalStorage>();
AddStep<ci::filesystem::StepRecoverStorageDirectories>();
AddStep<ci::filesystem::StepRecoverFiles>();
AddStep<ci::security::StepRecoverSecurity>();
}
case ci::RequestType::Clear: {
AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+ AddStep<ci::configuration::StepParseManifest>(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
AddStep<ci::filesystem::StepClearData>();
break;
}