Hyundai Motor Group (Huyndai, Kia, Genesis) firmware updates on Linux using the nudl tool
The nudl tool runs on Linux, Windows, macOS and can download firmware updates for cars from Huyndai, Kia, Genesis: https://github.com/chenxiaolong/nudl. As the HMG server does some GeoIP, you will get automatically the correct firmware image for your region from the HMG update server.
For my EU Kia EV6, I used:
./nudl list -b kia | grep EV6
As of 10/2026, this printed:
2025_26_EV6_GT_EUR "2025-26 EV6 GT" CV1GT26.EUR.ccNC.001.002.260312
2025_26_EV6_GT_EUR "2025-26 EV6 GT" CV1GT.ERT.ccNC_Lite.001.002.260312
2025_26_EV6_GT_EUR "2025-26 EV6 GT" CV1GT26.ERT.ccNC_Lite.001.002.260312
2025_26_EV6_GT_EUR "2025-26 EV6 GT" CV1GT.EUR.ccNC.001.002.260312
EV6_MY_22_EU "2022-24 EV6" CV_E.EUR.S5W_L.001.001.260128
2025_26_EV6_EUR "2025-26 EV6 PE" CV1MY26.EUR.ccNC.001.002.260312
2025_26_EV6_EUR "2025-26 EV6 PE" CV1.EUR.ccNC.001.002.260312
2025_26_EV6_EUR "2025-26 EV6 PE" CV1.ERT.ccNC_Lite.001.002.260312
2025_26_EV6_EUR "2025-26 EV6 PE" CV1MY26.ERT.ccNC_Lite.001.002.260312
As I have model year 2022, i.e. MY22 with the old Standard Gen5W Navigation, the entry EV6_MY_22_EU is relevant for me. The extra thorough can double-check via:
./nudl list -b kia -m EV6_MY_22_EU
which correctly printed
MODEL NAME VERSION
EV6_MY_22_EU "2022-24 EV6" CV_E.EUR.S5W_L.001.001.260128
(In addition, you can also double-check by comparing to the latest update available on the European KIA update server.)
I created then a directory with that version name and did let nudl download into that directory using the -o parameter:
./nudl download -b kia -m EV6_MY_22_EU -o "CV_E.EUR.S5W_L.001.001.260128"
If your download was aborted and you can resume (by just re-running the above command). If you want then to verify the checksums, point nudl to the directory that was used for that version:
./nudl verify -d "CV_E.EUR.S5W_L.001.001.260128"
Typically, that verification step is not really needed as the car itself also checks file integrity before installation.
Finally, copy the downloaded files directly from the directory (but without the directory itself) to the root of the USB key:
USB Drive/
├── AppUpgrade
├── EV6_MY_22_EU.ver
└── HU/
Copying will take some time as this is 25 GB of data (so have at least a 32 GB USB key). If you use cp -a, use in addition the -v flag to see some sort of progress, i.e.: cp -av
I had some older instruction, running Microsoft Windows in a VM, but thanks to nudl, there is no need for a Windows WM anymore, as this got really easy now!