Tesla ECU Firmware Updates via UDS
Posted: Mon Apr 06, 2026 4:52 pm
For anyone who has tried reverse engineering Tesla parts, one of the biggest headaches is CAN messages changing from one revision of firmware to another.
I wanted to try flashing more uniform firmware on devices to reduce some of those headaches. Thankfully, all of the Tesla ECUs support flashing updates via UDS, which is a fairly standard way for CAN connected devices to do updates. The biggest challenge is knowing how to unlock an ECU after it poses an access challenge.
I looked up some security research papers and found the following: every Tesla CAN ECU (not the car computer, autopilot) seems to do the same thing. When you do a UDS access request, it responds with the exact same seed / challenge:
The key is then each byte ^ 0x35
I tested this with my PCS and found that it was able unlock the ECU. Of course, Tesla had disabled reading the firmware, but this does give us an option to overwrite it with new firmware.
While I don't have any firmware myself, would anyone that does have access to Tesla firmware files be interested in giving this a shot? I can share an firmware update script for anyone interested in trying it out.
I wanted to try flashing more uniform firmware on devices to reduce some of those headaches. Thankfully, all of the Tesla ECUs support flashing updates via UDS, which is a fairly standard way for CAN connected devices to do updates. The biggest challenge is knowing how to unlock an ECU after it poses an access challenge.
I looked up some security research papers and found the following: every Tesla CAN ECU (not the car computer, autopilot) seems to do the same thing. When you do a UDS access request, it responds with the exact same seed / challenge:
Code: Select all
Seed (16 bytes): 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0FI tested this with my PCS and found that it was able unlock the ECU. Of course, Tesla had disabled reading the firmware, but this does give us an option to overwrite it with new firmware.
While I don't have any firmware myself, would anyone that does have access to Tesla firmware files be interested in giving this a shot? I can share an firmware update script for anyone interested in trying it out.