diff --git a/components/esp_https_ota/src/esp_https_ota.c b/components/esp_https_ota/src/esp_https_ota.c index 7a5ee46bb0..99890d80af 100644 --- a/components/esp_https_ota/src/esp_https_ota.c +++ b/components/esp_https_ota/src/esp_https_ota.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2017-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -728,6 +728,16 @@ esp_err_t esp_https_ota_perform(esp_https_ota_handle_t https_ota_handle) } esp_ota_set_final_partition(handle->update_handle, handle->partition.final, handle->partition.finalize_with_copy); handle->state = ESP_HTTPS_OTA_IN_PROGRESS; + + /** + * If the final partition is not an app or bootloader, return ESP_ERR_HTTPS_OTA_IN_PROGRESS + * As there is no need to read header and verify chip id and chip revision for custom partition. + * Directly jump to the OTA in progress state. + */ + if (handle->partition.final->type != ESP_PARTITION_TYPE_APP + && handle->partition.final->type != ESP_PARTITION_TYPE_BOOTLOADER) { + return ESP_ERR_HTTPS_OTA_IN_PROGRESS; + } /* In case `esp_https_ota_get_img_desc` was invoked first, then the image data read there should be written to OTA partition */ diff --git a/examples/system/ota/partitions_ota/test/storage.bin b/examples/system/ota/partitions_ota/test/storage.bin index 547abd18d9..6531bbb9bd 100644 Binary files a/examples/system/ota/partitions_ota/test/storage.bin and b/examples/system/ota/partitions_ota/test/storage.bin differ