mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
Check upload bin-header for esp-chip version
This commit is contained in:
@@ -43,22 +43,23 @@ void UploadFileService::handleUpload(AsyncWebServerRequest * request, const Stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_firmware) {
|
if (is_firmware) {
|
||||||
|
// Check firmware header, 0xE9 magic offset 0 indicates esp bin, chip offset 12: esp32:0, S2:2, C3:5
|
||||||
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
|
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
|
||||||
bool isC3 = (fname.find("C3") != std::string::npos);
|
bool isC3 = (fname.find("C3") != std::string::npos);
|
||||||
bool isS2 = (fname.find("S2") != std::string::npos);
|
bool isS2 = (fname.find("S2") != std::string::npos);
|
||||||
if (isC3 || isS2) {
|
if (isC3 || isS2 || (len > 12 && (data[0] != 0xE9 || data[12] != 0))) {
|
||||||
handleError(request, 503); // service unavailable
|
handleError(request, 503); // service unavailable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#elif CONFIG_IDF_TARGET_ESP32S2
|
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||||
bool isS2 = (fname.find("S2") != std::string::npos);
|
bool isS2 = (fname.find("S2") != std::string::npos);
|
||||||
if (!isS2) {
|
if (!isS2 || (len > 12 && (data[0] != 0xE9 || data[12] != 2))) {
|
||||||
handleError(request, 503); // service unavailable
|
handleError(request, 503); // service unavailable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||||
bool isC3 = (fname.find("C3") != std::string::npos);
|
bool isC3 = (fname.find("C3") != std::string::npos);
|
||||||
if (!isC3) {
|
if (!isC3 || (len > 12 && (data[0] != 0xE9 || data[12] != 5))) {
|
||||||
handleError(request, 503); // service unavailable
|
handleError(request, 503); // service unavailable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user