From 32946c7eeeeffb15312b970d69dea16c95a67fce Mon Sep 17 00:00:00 2001 From: Rayllll Date: Thu, 21 Aug 2025 21:16:32 +0800 Subject: [PATCH 1/2] Signed-off-by: Rayllll add set retry status --- services/include/updater/updater.h | 2 ++ services/updater_main.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/services/include/updater/updater.h b/services/include/updater/updater.h index 8af7dd52..f5c4d662 100644 --- a/services/include/updater/updater.h +++ b/services/include/updater/updater.h @@ -29,6 +29,7 @@ enum UpdaterStatus { UPDATE_CORRUPT, /* package or verify failed, something is broken. */ UPDATE_SKIP, /* skip update because of condition is not satisfied, e.g, battery is low */ UPDATE_RETRY, + UPDATE_RETRY_FAIL, UPDATE_SPACE_NOTENOUGH, UPDATE_UNKNOWN }; @@ -51,6 +52,7 @@ enum NotifyAction { TRIGGER_SDUPDATE, TRIGGER_FACTORYRST, TRIGGER_EUPDATER, + SET_RETRY_STATUS }; struct UpdaterParams { diff --git a/services/updater_main.cpp b/services/updater_main.cpp index ce65da34..c8cfcd2d 100644 --- a/services/updater_main.cpp +++ b/services/updater_main.cpp @@ -97,7 +97,7 @@ constexpr uint8_t TYPE_ZIP_HEADER = 0xaa; bool ReadLE16(std::istream& is, uint16_t& value) { - char buf[2] = {0}; // 2:定义2字节缓冲区,用于读取小端序的16位无符号整数(每字节8位) + char buf[2] = {0}; // 2:定?2字节缓冲区,用于读取小端序的16位无符号整数(每字节8位) if (!is.read(buf, sizeof(buf))) { return false; } @@ -108,7 +108,7 @@ bool ReadLE16(std::istream& is, uint16_t& value) bool ReadLE32(std::istream& is, uint32_t& value) { - char buf[4] = {0}; // 4:定义4字节缓冲区,用于读取小端序的32位无符号整数(每字节8位) + char buf[4] = {0}; // 4:定?4字节缓冲区,用于读取小端序的32位无符号整数(每字节8位) if (!is.read(buf, sizeof(buf))) { return false; } @@ -334,7 +334,7 @@ static UpdaterStatus VerifyBinfiles(UpdaterParams &upParams) LOG(ERROR) << "GetReadUpdateStreamzipFromBinfile fail"; return UPDATE_ERROR; } - // 验证update_stream.zip包 + // 验证update_stream.zip? int32_t verifyret = OtaUpdatePreCheck(manager, STREAM_ZIP_PATH); PkgManager::ReleasePackageInstance(manager); if (verifyret != UPDATE_SUCCESS) { @@ -529,6 +529,9 @@ UpdaterStatus InstallUpdaterPackage(UpdaterParams &upParams, PkgManager::PkgMana status = DoInstallUpdaterPackage(manager, upParams, SDCARD_UPDATE); } else { status = DoInstallUpdaterPackage(manager, upParams, HOTA_UPDATE); + if (NotifyActionResult(upParams, status, {SET_RETRY_STATUS}) != UPDATE_SUCCESS) { + LOG(ERROR) << "set retry status fail"; + } } if (status != UPDATE_SUCCESS) { UPDATER_UI_INSTANCE.Sleep(UI_SHOW_DURATION); -- Gitee From 7a757849eec2c16940b217e12af1eebab7afb4fb Mon Sep 17 00:00:00 2001 From: Rayllll Date: Thu, 21 Aug 2025 13:18:57 +0000 Subject: [PATCH 2/2] update services/updater_main.cpp. Signed-off-by: Rayllll --- services/updater_main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/updater_main.cpp b/services/updater_main.cpp index c8cfcd2d..c4662f8a 100644 --- a/services/updater_main.cpp +++ b/services/updater_main.cpp @@ -97,7 +97,7 @@ constexpr uint8_t TYPE_ZIP_HEADER = 0xaa; bool ReadLE16(std::istream& is, uint16_t& value) { - char buf[2] = {0}; // 2:定?2字节缓冲区,用于读取小端序的16位无符号整数(每字节8位) + char buf[2] = {0}; // 2:定义2字节缓冲区,用于读取小端序的16位无符号整数(每字节8位) if (!is.read(buf, sizeof(buf))) { return false; } @@ -108,7 +108,7 @@ bool ReadLE16(std::istream& is, uint16_t& value) bool ReadLE32(std::istream& is, uint32_t& value) { - char buf[4] = {0}; // 4:定?4字节缓冲区,用于读取小端序的32位无符号整数(每字节8位) + char buf[4] = {0}; // 4:定义4字节缓冲区,用于读取小端序的32位无符号整数(每字节8位) if (!is.read(buf, sizeof(buf))) { return false; } @@ -334,7 +334,7 @@ static UpdaterStatus VerifyBinfiles(UpdaterParams &upParams) LOG(ERROR) << "GetReadUpdateStreamzipFromBinfile fail"; return UPDATE_ERROR; } - // 验证update_stream.zip? + // 验证update_stream.zip包 int32_t verifyret = OtaUpdatePreCheck(manager, STREAM_ZIP_PATH); PkgManager::ReleasePackageInstance(manager); if (verifyret != UPDATE_SUCCESS) { -- Gitee