diff --git a/services/updater.cpp b/services/updater.cpp index 11f710178c046746a029dd4ef22c90e829c41668..4026a85ceab86b7acd7b9da0f6d32b5955ba14f4 100644 --- a/services/updater.cpp +++ b/services/updater.cpp @@ -362,6 +362,18 @@ UpdaterStatus ClearUpdateSuffixParam() return UPDATE_SUCCESS; } +bool IsNeedMountData(UpdaterParams &upParams, PackageUpdateMode updateMode) +{ + return updateMode != SDCARD_UPDATE || upParams.sdExtMode == SDCARD_UPDATE_FROM_DEV || + upParams.sdExtMode == SDCARD_UPDATE_FROM_DATA || Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE) || + Utils::CheckUpdateMode(Updater::FACTORY_INTERNAL_MODE); +} + +bool IsNeedMountMetadata(UpdaterParams &upParams, PackageUpdateMode updateMode) +{ + return Utils::IsVabDevice() && updateMode == HOTA_UPDATE; +} + UpdaterStatus DoInstallUpdaterBinfile(PkgManager::PkgManagerPtr pkgManager, UpdaterParams &upParams, PackageUpdateMode updateMode) { @@ -379,10 +391,7 @@ UpdaterStatus DoInstallUpdaterBinfile(PkgManager::PkgManagerPtr pkgManager, Upda return UPDATE_CORRUPT; } - if (SetupPartitions(updateMode != SDCARD_UPDATE || upParams.sdExtMode == SDCARD_UPDATE_FROM_DEV || - upParams.sdExtMode == SDCARD_UPDATE_FROM_DATA || Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE) || - Utils::CheckUpdateMode(Updater::FACTORY_INTERNAL_MODE), - Utils::IsVabDevice() && updateMode == HOTA_UPDATE) != 0) { + if (SetupPartitions(IsNeedMountData(upParams, updateMode), IsNeedMountMetadata(upParams, updateMode)) != 0) { UPDATER_UI_INSTANCE.ShowUpdInfo(TR(UPD_SETPART_FAIL), true); UPDATER_LAST_WORD(UPDATE_ERROR, "SetupPartitions failed"); return UPDATE_ERROR; @@ -437,10 +446,7 @@ UpdaterStatus DoInstallUpdaterPackage(PkgManager::PkgManagerPtr pkgManager, Upda return UPDATE_CORRUPT; } - if (SetupPartitions(updateMode != SDCARD_UPDATE || upParams.sdExtMode == SDCARD_UPDATE_FROM_DEV || - upParams.sdExtMode == SDCARD_UPDATE_FROM_DATA || Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE) || - Utils::CheckUpdateMode(Updater::FACTORY_INTERNAL_MODE), - Utils::IsVabDevice() && updateMode == HOTA_UPDATE) != 0) { + if (SetupPartitions(IsNeedMountData(upParams, updateMode), IsNeedMountMetadata(upParams, updateMode)) != 0) { UPDATER_UI_INSTANCE.ShowUpdInfo(TR(UPD_SETPART_FAIL), true); UPDATER_LAST_WORD(UPDATE_ERROR, "SetupPartitions failed"); return UPDATE_ERROR; diff --git a/services/updater_main.cpp b/services/updater_main.cpp index 451b250a45e3aacaea2f221c27dff95b3042c88d..d131e8483008a51474f2dc8d9e9c8a86fbbff8b4 100644 --- a/services/updater_main.cpp +++ b/services/updater_main.cpp @@ -624,7 +624,7 @@ static int CheckMountData() UPDATER_INIT_RECORD; constexpr int retryTime = 3; for (int i = 0; i < retryTime; i++) { - if (SetupPartitions() == 0) { + if (SetupPartitions(true, Utils::IsVabDevice()) == 0) { return 0; } LOG(INFO) << "retry mount userdata number:" << i;