diff --git a/components/esp_https_ota/src/esp_https_ota.c b/components/esp_https_ota/src/esp_https_ota.c index ef0cbf0c17..e0658c4658 100644 --- a/components/esp_https_ota/src/esp_https_ota.c +++ b/components/esp_https_ota/src/esp_https_ota.c @@ -697,6 +697,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