diff --git a/services/sdcard_update/sdcard_update.cpp b/services/sdcard_update/sdcard_update.cpp index db196e0ebe53a317e15bf84b627901d080132a29..75aafbce6ecb09d90883866040b8bd50f6df05b9 100644 --- a/services/sdcard_update/sdcard_update.cpp +++ b/services/sdcard_update/sdcard_update.cpp @@ -22,12 +22,16 @@ #include #include #include +#ifndef UPDATER_UT #include "language/language_ui.h" +#endif #include "log/dump.h" #include "log/log.h" #include "fs_manager/mount.h" #include "securec.h" +#ifndef UPDATER_UT #include "ui/updater_ui_stub.h" +#endif #include "updater/updater_const.h" #include "utils.h" @@ -58,15 +62,6 @@ __attribute__((weak)) UpdaterStatus GetSdcardPkgsFromDev(UpdaterParams &upParams return UPDATE_ERROR; } -bool CheckPathNeedMountSD(UpdaterParams &upParams) -{ - for (auto pkgPath : upParams.updatePackage) { - if (pkgPath.find("/sdcard") != 0) { - return false; - } - } - return true; -} bool DoMountSdCard(std::vector &sdCardStr, std::string &mountPoint, UpdaterParams &upParams) { @@ -96,21 +91,9 @@ bool DoMountSdCard(std::vector &sdCardStr, std::string &mountPoint, #endif } -UpdaterStatus CheckSdcardPkgs(UpdaterParams &upParams) +UpdaterStatus FindAndMountSdcard(UpdaterParams &upParams) { #ifndef UPDATER_UT - auto sdParam = "updater.data.configs"; - Utils::SetParameter(sdParam, "1"); - if (upParams.sdExtMode == SDCARD_UPDATE_FROM_DEV && GetSdcardPkgsFromDev(upParams) == UPDATE_SUCCESS) { - LOG(INFO) << "get sd card from dev succeed, skip get package from sd card"; - return UPDATE_SUCCESS; - } - - if (GetSdcardInternalPkgs(upParams) == UPDATE_SUCCESS) { - LOG(INFO) << "get sdcard internal pkgs succeed"; - return UPDATE_SUCCESS; - } - std::string mountPoint = std::string(SDCARD_PATH); std::vector sdcardStr = GetBlockDevicesByMountPoint(mountPoint); if (sdcardStr.empty()) { @@ -118,20 +101,20 @@ UpdaterStatus CheckSdcardPkgs(UpdaterParams &upParams) (errno == ENOENT) ? TR(LOG_SDCARD_NOTFIND) : TR(LOG_SDCARD_ABNORMAL), true); return UPDATE_ERROR; } - if (Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE)) { - if (MountForPath("/data") != 0) { - LOG(ERROR) << "data partition mount fail"; - return UPDATE_ERROR; - } + if (!DoMountSdCard(sdcardStr, mountPoint, upParams)) { + LOG(ERROR) << "mount sdcard fail!"; + return UPDATE_ERROR; } - if ((Utils::CheckUpdateMode(Updater::SDCARD_MODE) && !Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE)) || - (Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE) && CheckPathNeedMountSD(upParams))) { - if (!DoMountSdCard(sdcardStr, mountPoint, upParams)) { - LOG(ERROR) << "mount sdcard fail!"; - return UPDATE_ERROR; - } - } #endif + return UPDATE_SUCCESS; +} + +UpdaterStatus GetPkgsFromSdcard(UpdaterParams &upParams) +{ + if (FindAndMountSdcard(upParams) != UPDATE_SUCCESS) { + LOG(ERROR) << "mount sdcard fail!"; + return UPDATE_ERROR; + } if (GetSdcardPkgsPath(upParams) != UPDATE_SUCCESS) { LOG(ERROR) << "there is no package in sdcard/updater, please check"; return UPDATE_ERROR; @@ -139,9 +122,17 @@ UpdaterStatus CheckSdcardPkgs(UpdaterParams &upParams) return UPDATE_SUCCESS; } -__attribute__((weak)) UpdaterStatus GetSdcardInternalPkgs(UpdaterParams &upParams) +__attribute__((weak)) UpdaterStatus MountAndGetPkgs(UpdaterParams &upParams) { - LOG(INFO) << "not implemented get normal update sdcard pkgs"; - return UPDATE_ERROR; + return GetPkgsFromSdcard(upParams); +} + +UpdaterStatus CheckSdcardPkgs(UpdaterParams &upParams) +{ +#ifndef UPDATER_UT + auto sdParam = "updater.data.configs"; + Utils::SetParameter(sdParam, "1"); +#endif + return MountAndGetPkgs(upParams); } } // Updater diff --git a/services/sdcard_update/sdcard_update.h b/services/sdcard_update/sdcard_update.h index de8275cc00a1b7b60b152df90923d2689b33a1ec..dd7e2e97b248c7aa19d1875d6c249b777281fb86 100644 --- a/services/sdcard_update/sdcard_update.h +++ b/services/sdcard_update/sdcard_update.h @@ -21,6 +21,8 @@ namespace Updater { UpdaterStatus CheckSdcardPkgs(UpdaterParams &upParams); +UpdaterStatus FindAndMountSdcard(UpdaterParams &upParams); +UpdaterStatus GetPkgsFromSdcard(UpdaterParams &upParams); #ifdef __cplusplus #if __cplusplus @@ -29,14 +31,13 @@ extern "C" { #endif UpdaterStatus GetSdcardPkgsPath(UpdaterParams &upParams); UpdaterStatus GetSdcardPkgsFromDev(UpdaterParams &upParams); -UpdaterStatus GetSdcardInternalPkgs(UpdaterParams &upParams); +UpdaterStatus MountAndGetPkgs(UpdaterParams &upParams); #ifdef __cplusplus #if __cplusplus } #endif #endif -bool CheckPathNeedMountSD(UpdaterParams &upParams); bool DoMountSdCard(std::vector &sdCardStr, std::string &mountPoint, UpdaterParams &upParams); } // namespace Updater #endif // SDCARD_UPDATE_H \ No newline at end of file diff --git a/test/unittest/service_test/updater_service_unittest.cpp b/test/unittest/service_test/updater_service_unittest.cpp index 8d67ce44b03888be1e151b5e4a36ecba8bd3cc31..d4aadd6963f054394ce406bdb4e0fad2465f3ae6 100644 --- a/test/unittest/service_test/updater_service_unittest.cpp +++ b/test/unittest/service_test/updater_service_unittest.cpp @@ -320,19 +320,6 @@ HWTEST_F(UpdaterUtilUnitTest, StartUpdaterProcTest, TestSize.Level1) EXPECT_EQ(StartUpdaterProc(pkgManager, upParams), UPDATE_ERROR); } -HWTEST_F(UpdaterUtilUnitTest, CheckPathNeedMountSD, TestSize.Level0) -{ - UpdaterParams upParams; - upParams.updatePackage.push_back("/data/updater/updater_full.zip"); - EXPECT_EQ(CheckPathNeedMountSD(upParams), false); - upParams.updatePackage.clear(); - upParams.updatePackage.push_back("/sdcard/updater/updater_full.zip"); - EXPECT_EQ(CheckPathNeedMountSD(upParams), true); - upParams.updatePackage.clear(); - upParams.updatePackage.push_back("/data/sdcard/updater_full.zip"); - EXPECT_EQ(CheckPathNeedMountSD(upParams), false); -} - HWTEST_F(UpdaterUtilUnitTest, GetSdcardPkgsFromDev, TestSize.Level0) { UpdaterParams upParams; @@ -357,9 +344,13 @@ HWTEST_F(UpdaterUtilUnitTest, GetSdcardPkgsPath, TestSize.Level0) upParams.updatePackage.clear(); } -HWTEST_F(UpdaterUtilUnitTest, GetSdcardInternalPkgs, TestSize.Level0) +HWTEST_F(UpdaterUtilUnitTest, CheckSdcardPkgs, TestSize.Level0) { UpdaterParams upParams; - EXPECT_EQ(GetSdcardInternalPkgs(upParams), UPDATE_ERROR); + EXPECT_EQ(CheckSdcardPkgs(upParams), UPDATE_SUCCESS); + upParams.updatePackage.clear(); + + upParams.updatePackage.push_back("/sdcard/updater/updater_full.zip"); + EXPECT_EQ(CheckSdcardPkgs(upParams), UPDATE_SUCCESS); } }