Pages: [1] 2 3 ... 15
Author Topic: EepromTool - decodes/modifies eeprom bins to immo off, set vin, get SKC, etc  (Read 229843 times)
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619



UPDATE:

Eeepromtool is now hosted on github. The most recent release will always be located in:
https://github.com/turboat/eepromtool/releases/

Source code is in:
https://github.com/turboat/eepromtool

Pull requests are welcome Smiley

Eepromtool is a command line tool, either run using 'python eepromtool_04.py' or 'eepromtool_04.exe'. If it just flashes up and disappears, this is because it is a command line tool. If you dont know what a command line tool is, you probably shouldnt be trying to edit your ECU.

Displaying Information
To simply display the info in a bin called INFILE, use:

eepromtool_04.exe INFILE

For example with an ecu eeprom:

Code:
eepromtool_04.exe ecu.bin 
EEPROM Status:
- Type: ECU_eeprom
- Version: Immo3
- VIN: WAULC68E52A221040 (Audi 2002 - A4 01-08, Ingolstadt, Germany)
- SKC: 01256
- Immobiliser: On
- Checksum: OK
- Size: 512bytes
- Cluster Code: 98 8A 4E AB 77 D2 A2
- P0601 DTC: not set
- Immo ID: AUZ6Z0C0185357
- Softcoding ID: 16701
- Tuner Tag: Not Set
- Flash Programming (successful): 0
- Flash Programming (attempts): 1

With a cluster eeprom:

Code:
eepromtool_04.exe cluster.bin 
Read in 2048bytes
Detected 2kb bin, parsing as a cluster eeprom (prevent this guessing by using --force)
EEPROM Status:
- Type: Cluster
- VIN: WVWZZZ1JZ4W115023 (VW 2004 - Golf and Bora 4, Wolfsburg, Germany)
- SKC: 01629
- Cluster Code: 2F 27 CE D8 89 6D 36
- Immo ID: VWZ7Z0C852208

Immo On/Off
To set immo status, you must specify input file, output file and desired immo status. Checksums will be corrected automatically unless you specify --nofixcs. For example:

Code:
eepromtool_04.exe --in ecu.bin --immo off --out ecu_off.bin
Read in 512bytes
Setting Immobiliser: Off
- Immobiliser Off
- Setting backup pages
- Correcting checksums

- Write Successful
eepromtool_04.py --in ecu_off.bin --status
Read in 512bytes
EEPROM Status:
- Type: ECU_eeprom
- Version: Immo3
- VIN: WAULC68E52A221040 (Audi 2002 - A4 01-08, Ingolstadt, Germany)
- SKC: 01256
- Immobiliser: Off
- Checksum: OK
- Size: 512bytes
- Cluster Code: 98 8A 4E AB 77 D2 A2
- P0601 DTC: not set
- Immo ID: AUZ6Z0C0185357
- Softcoding ID: 16701
- Tuner Tag: Not Set
- Flash Programming (successful): 0
- Flash Programming (attempts): 1



« Last Edit: October 03, 2018, 09:43:12 PM by nyet » Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #1 on: May 29, 2014, 09:49:55 AM »

To change immo or VIN:
$ ./95040tool.exe --in Immo\ bin\ with\ SKC\ 05557.bin --immo off --out immoff.bin
Setting Immobiliser: Off
- Immobiliser Off
- Setting backup pages
- Correcting checksums

Writing eeprom bin to: immoff.bin
- Write Successful

$ ./95040tool.exe --in immoff.bin --vin YOURVINGOESHERE00 --out immoffvin.bin
Setting VIN to YOURVINGOESHERE00
- Setting backup pages
- Correcting checksums

Writing eeprom bin to: immoffvin.bin
- Write Successful

$ ./95040tool.exe immoffvin.bin
EEPROM Status:
- VIN: YOURVINGOESHERE00
- SKC: 05557
- Immobiliser: Off
- Checksum: OK
- Size: 512bytes
- Cluster Code: 69 D9 38 E6 D3 B2
- P0601 DTC: not set
- Immo ID: UX6Z0D0454942
Logged
mx450
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 15


« Reply #2 on: June 12, 2014, 08:07:40 AM »

It worked.
Just wonder what is that backup page for.

I made some test

Three attachments uploaded in the post.
1. "95040_AWU_1.8T_06A906032GQ.ori.bin"
the original file.
It works fine for sure with 06A906032GQ software,
but it would get DTC 18048 with 06A906032HH software.

2. "95040_AWU_1.8T_06A906032GQ.modified.EEPROM_checksume_error_before_fixing.bin"
Then i made some test to remove and modify some part of it. (between 0x01C0 to 0x01FF)
And after booting on table,
with 06A906032GQ software, it still has no DTC generated.
bit, with 06A906032HH software, i got DTC "18048/P1640/005696 - Internal Control Module: EEPROM Error"

3. "95040_AWU_1.8T_06A906032GQ.modified.EEPROM_checksume_error_after_fixing.bin"
i used this command "95040tool.exe --in modified_file.bin --fixcs --out corrected_modified_file.bin"
with 06A906032GQ software, it still has no DTC generated.
with 06A906032HH software, the final file passed checksum checking, that DTC 18048 just gone!!!!!!!!!!!!!!!!!!! Smiley Smiley Smiley

---------------------------------------------
I noticed that this tool change two bytes of 0x014E from my manual modified file to fix the correction.

And i saw it says 'setting backup pages'.
just wonder
a. what is that backup page is?
b. And i even change nothing of those byte of 0x0140 to 0x014D, why the checksum of 0x014E needs to be corrected?

thanks for your good tool, plz light me up...



---------------------------------------------
PS.

I found that the 95040 EEPROM checksum checking routine are different between 06A906032GQ and 06A906032HH software.

If i use 06A906032GQ software, the manual modified file wont get any DTC, and as you may see, there is no VIN and no Immo id of this 95040 original data.

But using 06A906032HH software with same EEPROM data, i got the EEPROM error DTC, after i using this tool to make  new file ( to correct checksum or backup page?), the 06A906032HH  software is happy to pass the checksum checking.

I don't have car to try if this EEPROM ok to bass IMMO as IMMO function is still on. The owner of the car with this EEPROM lives 300 KM away from me. I can try it few weeks later.
« Last Edit: June 12, 2014, 08:11:13 AM by mx450 » Logged
stranger_in_distress
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 20


« Reply #3 on: June 15, 2014, 08:21:10 AM »

I used this tool to fix the checksums on two modified ECU dumps, from 06A906032HN and 06A906032HJ. Worked like a charm.

Noticed one problem when running "--status" on the dump files from the above ECU's, IMMO IDs are missing the first charcter.
For example: -instead of the "AUZ5Z..." it's showing "UZ5Z...", for the 06A906032HJ dump(Audi A3 AUM)
        -instead of the "SKZ7Z..." it's showing "KZ7Z...", for the 06A906032HN dump(Skoda Octavia AUQ)
The first character of the immo id can be found, in the dump file, right after the the VIN end.
« Last Edit: June 16, 2014, 03:05:43 AM by stranger_in_distress » Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #4 on: June 20, 2014, 04:12:26 AM »

Thanks for the testing folks, I'll take a look at those bugs over the next couple of days, RL and boost piping got in the way Smiley
Logged
mikeb52
Full Member
***

Karma: +0/-2
Offline Offline

Posts: 102


« Reply #5 on: July 06, 2014, 02:48:24 PM »

I tried your tool tonight after reloading drivers and getting my cable working.
After saving the bin file from my ecu and copying it into the same folder as your tool, when I ran the input file I received,
EEPROM status:
Vin:XXXXXXXXX
SKC: 065535
Immo : on
Checksum: invalid checksum
Size:512bytes
Cluster code 00 00 00 00 00 00
P0601 DTC: not set
Immo ID: XXXXXXXXXXX
Couldn't perform any other seps as I would get messages unrecognized arguments: bin\ with\ skc\ 95040.bin

Not sure if my bin save is bad.
Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #6 on: July 06, 2014, 03:38:00 PM »

Looks like you've got an immo2 bin, I realised last week this doesn't work with those, will update in the next few days.
Logged
Nottingham
Full Member
***

Karma: +13/-1
Offline Offline

Posts: 204


« Reply #7 on: July 12, 2014, 01:02:29 AM »

Nice work.

In case you want to add:

Bytes 1E9h & 1F9h = Flash Programming Counter (Succesfull)
Bytes 1EAh & 1FAh = Flash Programming Counter (Attempts)
Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #8 on: July 12, 2014, 01:30:39 AM »

Cheers Smiley I'll add them when I'm tweaking it next. Ive also added basic parsing of cluster bins, and the ability to pair a cluster bin with an ecu eeprom bin. Not had time to test properly, when I have a quiet afternoon I'll upload a new version Smiley
Logged
vampirelo
Jr. Member
**

Karma: +1/-1
Offline Offline

Posts: 27


« Reply #9 on: August 14, 2014, 05:22:14 AM »

I have immo II ecu dump and tool give follows:
EEPROM Status:
- VIN: XXXXXXXXXXXXXXXXX
- SKC: 065535
- Immobiliser: On
- Checksum: Invalid Checksum
- Size: 512bytes
- Cluster Code: 00 00 00 00 00 00
- P0601 DTC: not set
- Immo ID: XXXXXXXXXXXXX

Waiting for new version of tool.   Smiley
Logged
ddillenger
Moderator
Hero Member
*****

Karma: +641/-21
Offline Offline

Posts: 5640


« Reply #10 on: August 14, 2014, 09:23:20 AM »

I have immo II ecu dump and tool give follows:
EEPROM Status:
- VIN: XXXXXXXXXXXXXXXXX
- SKC: 065535
- Immobiliser: On
- Checksum: Invalid Checksum
- Size: 512bytes
- Cluster Code: 00 00 00 00 00 00
- P0601 DTC: not set
- Immo ID: XXXXXXXXXXXXX

Waiting for new version of tool.   Smiley

Why? Immo-2 has FF FF in the login location, and the vin is XXXXXXXXXXXXX.

So, it's returning proper info.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
vampirelo
Jr. Member
**

Karma: +1/-1
Offline Offline

Posts: 27


« Reply #11 on: August 15, 2014, 04:46:43 AM »

Why? Immo-2 has FF FF in the login location, and the vin is XXXXXXXXXXXXX.

So, it's returning proper info.
I am about line:
- Checksum: Invalid Checksum

Checksum is 100% correct due to just downloaded from ECU. Original dump from Seat Ibiza Cupra R ECU is attached.
Question: Can I use 95040Tool for attached dump to make immo-off?

One more detail:
I had reviewed dump and found that pages 1C and 1D chechsums (addresses 1CE-1CF and 1DE-1DF) are NOT ok. Seems that for this pages in immo II ECU in indicated addresses are not checksums.
« Last Edit: August 15, 2014, 05:04:37 AM by vampirelo » Logged
automan001
Full Member
***

Karma: +47/-0
Offline Offline

Posts: 153


« Reply #12 on: September 02, 2014, 12:13:38 AM »

Why does it show cluster code as 6 bytes while it should have been 7 bytes?
Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #13 on: September 02, 2014, 06:44:35 AM »

Pinkwear problem, I'll fix that ASAP.
Logged
turboat
Hero Member
*****

Karma: +45/-3
Offline Offline

Posts: 619


« Reply #14 on: September 03, 2014, 06:24:03 AM »

Prototype support for cluster bins and pairing cluster bin with ecu eeprom - I planned to do a load more testing and add immo2 support and bin cloning, but have no time and this seems to be coming up a lot, so here is an interim release.

New Features:
- Basic parsing for cluster bins
- Pair a cluster bin with an eeprom bin
- print softcoding id from ecu bins
- now reads/writes the complete cluster code, not just the first 6 bytes (duh Cry )
- fixed some bugs (corrected immoid and VIN printing, tweaked VIN decoding)


How To Pair a cluster
View ecu eeprom and cluster bin:
Code:
$ eepromtool.exe "Immo bin with SKC 05557.bin"
Read in 512bytes
EEPROM Status:
- VIN: WAUZZZ8H55K015632 (Audi 2005 - A4 Cab, Osnabrueck, Germany)
- SKC: 05557
- Immobiliser: On
- Checksum: OK
- Size: 512bytes
- Cluster Code: 69 D9 38 E6 D3 B2 71
- P0601 DTC: not set
- Immo ID: AUX6Z0D0454942
- Softcoding ID: 11504

$ eepromtool.exe "vRS cluster.bin"
Read in 2048bytes
Detected 2kb bin, parsing as a cluster eeprom (prevent this guessing by using --
force)
EEPROM Status:
- VIN: TMBER41U728534539 (Skoda 2002 - Octavia 96-03, Dresden; Vrchlabi)
- SKC: 01228
- Cluster Code: B0 EA 08 9C 58 B8 A1
- Immo ID: SKZ7Z0A096951

Pair the cluster (vRS_cluster.bin) to the ECU eeprom (Immo bin with SKC 05557.bin) and write out (vRS_cluster_paired.bin):
Code:
$ eepromtool.exe --in "vRS cluster.bin" --out "vRS cluster_paired.bin" --pair "Immo bin with SKC 05557.bin"
Read in 2048bytes
Detected 2kb bin, parsing as a cluster eeprom (prevent this guessing by using --force)
Read in 512bytes
Setting VIN to WAUZZZ8H55K015632
Setting Immo ID to AUX6Z0D0454942
Setting SKC to 05557

Cluster updated to:
EEPROM Status:
- VIN: WAUZZZ8H55K015632 (Audi 2005 - A4 Cab, Osnabrueck, Germany)
- SKC: 05557
- Cluster Code: 69 D9 38 E6 D3 B2 71
- Immo ID: AUX6Z0D045494

Writing 2048kb cluster eeprom bin to: vRS cluster_paired.bin
- Write Successful

View paired cluster bin:
Code:
$ eepromtool.exe "vRS cluster_paired.bin"
Read in 2048bytes
Detected 2kb bin, parsing as a cluster eeprom (prevent this guessing by using --force)
EEPROM Status:
- VIN: WAUZZZ8H55K015632 (Audi 2005 - A4 Cab, Osnabrueck, Germany)
- SKC: 05557
- Cluster Code: 69 D9 38 E6 D3 B2 71
- Immo ID: AUX6Z0D045494

This bin can then be written back to the cluster, but you must use VCDS to set the softcoding in the cluster (set it to the same value as your old cluster, or set to the same value that it is already set to) so that the checksum on the cluster is reset.

Attached are a windows executable version in a zip (which is a stupidly big because it includes the python runtime libraries) and the python source code - if you have python installed then just grab the script, if not then either get python2.7, or download the zip and unzip it.

as ever, feedback is welcome Smiley

[ed: I have removed the attached files to prevent confusion. Please keep the OP updated]
« Last Edit: May 22, 2018, 09:53:23 AM by nyet » Logged
Pages: [1] 2 3 ... 15
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.048 seconds with 17 queries. (Pretty URLs adds 0s, 0q)