wifi

esp32 invalid magic byte 우회하기

진아사랑해 2023. 10. 10. 14:07
반응형

개요

esp32 ota를 개발하면서 암호화된 파일을 다운로드를 해야 했습니다.

esp32는 binary file의 시작을 0xE9로 시작을 하여야 합니다.

일명 magic byte입니다.

magic byte를 검사하는 파일 및 처리

2군데에서 magic byte를 검사합니다.

uart 다운로드인 경우에는 components/bootloader_support/src/esp_image_format.c

ota인 경우에는 components/app_update/esp_ota_ops.c

2군데에서 검사를 하는데, 저는 ota를 수행함으로 esp_ota_ops.c를 수정하였습니다.

 

#if 0 // 시험용 magic byte 검사 제거
            if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != //ESP_IMAGE_HEADER_MAGIC) {
#else
    if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 ) {            
#endif
                ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
                return ESP_ERR_OTA_VALIDATE_FAILED;
            }

위처럼 수정하였습니다.

https://power-of-optimism.tistory.com/1051

 

esp32 ota 실행에서 나온 에러(invalid magic byte)

esp32의 ota를 개발하고 있습니다. 저는 다운로드 파일을 암호화하여 다운로드를 하고 있습니다. 암호화를 하지 않은 파일은 정상적으로 잘 수행이 되었습니다. 그러나 암화를 한 파일을 샐 행하

power-of-optimism.tistory.com

 

반응형