diff --git a/interfaces/kits/include/updaterkits/updaterkits.h b/interfaces/kits/include/updaterkits/updaterkits.h index 5d523c2de925e1635bd9ed6e375fd57568a6264e..254f7e23d080047c38b2f601c04f07a5b42b89c6 100755 --- a/interfaces/kits/include/updaterkits/updaterkits.h +++ b/interfaces/kits/include/updaterkits/updaterkits.h @@ -17,7 +17,7 @@ #include #include -using RebootFunType = std::function; +using RebootFunType = std::function; constexpr const char *UPGRADE_TYPE_OTA = "ota"; constexpr const char *UPGRADE_TYPE_SD = "sdcard"; constexpr const char *UPGRADE_TYPE_OTA_INTRAL = "ota_intral"; diff --git a/interfaces/kits/updaterkits/updaterkits.cpp b/interfaces/kits/updaterkits/updaterkits.cpp index a83e99ca8fa53a5acd41a49ea54f9e7a8a5398e1..2e0d8daa9cd896b1982b5cb715a4a94f6595ab36 100755 --- a/interfaces/kits/updaterkits/updaterkits.cpp +++ b/interfaces/kits/updaterkits/updaterkits.cpp @@ -146,10 +146,11 @@ static bool WriteToMiscAndResultFileRebootToUpdater(const struct UpdateMessage & // Flag after the misc in written std::string writeMiscAfter = "0x80000008"; WriteUpdaterResultFile(pkgPath, writeMiscAfter); - if (rebootFunc == nullptr) { + if (rebootFunc != nullptr && rebootFunc() != 0) { + LOG(ERROR) << "reboot Func Failed"; + return false; + } else if (rebootFunc == nullptr) { DoReboot("updater:reboot to updater to trigger update"); - } else { - rebootFunc(); } while (true) { pause(); @@ -271,7 +272,9 @@ int RebootAndInstallUpgradePackage(const std::string &miscFile, const std::vecto } if (upgradeType == UPGRADE_TYPE_OTA || upgradeType == UPGRADE_TYPE_OTA_INTRAL || upgradeType == UPGRADE_TYPE_SUBPKG_UPDATE) { - WriteToMiscAndResultFileRebootToUpdater(updateMsg, upgradeType, rebootFunc); + if (!WriteToMiscAndResultFileRebootToUpdater(updateMsg, upgradeType, rebootFunc)) { + return 6; // 6 : Reboot failed + } } else { WriteToMiscAndRebootToUpdater(updateMsg); }