Skip to content

Commit e307445

Browse files
authored
Add more BMW software version definitions (#4143)
* Add more BMW software version definitions * fix codespell * add englisch translation
1 parent 35b4756 commit e307445

File tree

2 files changed

+61
-11
lines changed

2 files changed

+61
-11
lines changed

.config/codespell_ignore.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
aci
22
ans
33
archtypes
4+
applikation
45
ba
56
byteorder
67
cace
@@ -11,12 +12,13 @@ delt
1112
doas
1213
doubleclick
1314
ether
14-
ether
1515
eventtypes
1616
fo
17+
funktion
1718
gost
1819
hart
1920
iff
21+
interaktive
2022
inout
2123
microsof
2224
mitre
@@ -32,6 +34,7 @@ ser
3234
singl
3335
slac
3436
te
37+
temporaere
3538
tim
3639
ue
3740
uint

scapy/contrib/automotive/bmw/definitions.py

Lines changed: 57 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from scapy.contrib.automotive.uds import UDS, UDS_RDBI, UDS_DSC, UDS_IOCBI, \
1616
UDS_RC, UDS_RD, UDS_RSDBI, UDS_RDBIPR
1717

18-
1918
BMW_specific_enum = {
2019
0: "requestIdentifiedBCDDTCAndStatus",
2120
1: "requestSupportedBCDDTCAndStatus",
@@ -252,10 +251,60 @@ def i2repr(self, pkt, x):
252251

253252

254253
class SVK_Entry(Packet):
254+
process_classes = {
255+
"0x01": "HWEL",
256+
"0x02": "HWAP",
257+
"0x03": "HWFR",
258+
"0x05": "CAFD",
259+
"0x06": "BTLD",
260+
"0x08": "SWFL",
261+
"0x09": "SWFF",
262+
"0x0A": "SWPF",
263+
"0x0B": "ONPS",
264+
"0x0F": "FAFP",
265+
"0x1A": "TLRT",
266+
"0x1B": "TPRG",
267+
"0x07": "FLSL",
268+
"0x0C": "IBAD",
269+
"0x10": "FCFA",
270+
"0x1C": "BLUP",
271+
"0x1D": "FLUP",
272+
"0xC0": "SWUP",
273+
"0xC1": "SWIP",
274+
"0xA0": "ENTD",
275+
"0xA1": "NAVD",
276+
"0xA2": "FCFN",
277+
"0x04": "GWTB",
278+
"0x0D": "SWFK",
279+
}
280+
"""
281+
HWEL - Hardware (Elektronik) - Hardware (Electronics)
282+
HWAP - Hardwareauspraegung - Hardware Configuration
283+
HWFR - Hardwarefarbe - Hardware Color
284+
CAFD - Codierdaten - Coding Data
285+
BTLD - Bootloader - Bootloader
286+
SWFL - Software ECU Speicherimage - Software ECU Storage Image
287+
SWFF - Flash File Software - Flash File Software
288+
SWPF - Pruefsoftware - Testing Software
289+
ONPS - Onboard Programmiersystem - Onboard Programming System
290+
FAFP - FA2FP - FA2FP
291+
TLRT - Temporaere Loeschroutine - Temporary Deletion Routine
292+
TPRG - Temporaere Programmierroutine - Temporary Programming Routine
293+
FLSL - Flashloader Slave - Flashloader Slave
294+
IBAD - Interaktive Betriebsanleitung Daten - Interactive Operating Manual Data
295+
FCFA - Freischaltcode Fahrzeug-Auftrag - Vehicle Order Unlock Code
296+
BLUP - Bootloader-Update Applikation - Bootloader Update Application
297+
FLUP - Flashloader-Update Applikation - Flashloader Update Application
298+
SWUP - Software-Update Package - Software Update Package
299+
SWIP - Index Software-Update Package - Software Update Package Index
300+
ENTD - Entertainment Daten - Entertainment Data
301+
NAVD - Navigation Daten - Navigation Data
302+
FCFN - Freischaltcode Funktion - Function Unlock Code
303+
GWTB - Gateway-Tabelle - Gateway Table
304+
SWFK - BEGU: Detaillierung auf SWE-Ebene - BEGU: Detailing at SWE Level
305+
"""
255306
fields_desc = [
256-
ByteEnumField("processClass", 0, {1: "HWEL", 2: "HWAP", 4: "GWTB",
257-
5: "CAFD", 6: "BTLD", 7: "FLSL",
258-
8: "SWFL"}),
307+
ByteEnumField("processClass", 0, process_classes),
259308
XStrFixedLenField("svk_id", b"", length=4),
260309
ByteField("mainVersion", 0),
261310
ByteField("subVersion", 0),
@@ -372,7 +421,6 @@ class WEBSERVER(Packet):
372421
bind_layers(DEV_JOB, READ_MEM, identifier=0xffff)
373422
bind_layers(DEV_JOB_PR, READ_MEM_PR, identifier=0xffff)
374423

375-
376424
bind_layers(UDS_RDBIPR, SVK, dataIdentifier=0xf101)
377425
bind_layers(UDS_RDBIPR, SVK, dataIdentifier=0xf102)
378426
bind_layers(UDS_RDBIPR, SVK, dataIdentifier=0xf103)
@@ -438,7 +486,6 @@ class WEBSERVER(Packet):
438486
bind_layers(UDS_RDBIPR, SVK, dataIdentifier=0xf13f)
439487
bind_layers(UDS_RDBIPR, SVK, dataIdentifier=0xf140)
440488

441-
442489
UDS_RDBI.dataIdentifiers[0x0014] = "RDBCI_IS_LESEN_DETAIL_REQ"
443490
UDS_RDBI.dataIdentifiers[0x0015] = "RDBCI_HS_LESEN_DETAIL_REQ"
444491
UDS_RDBI.dataIdentifiers[0x0e80] = "AirbagLock"
@@ -1505,7 +1552,7 @@ class WEBSERVER(Packet):
15051552
UDS_RDBI.dataIdentifiers[0x22fd] = "afterSalesServiceData_2200_22FF"
15061553
UDS_RDBI.dataIdentifiers[0x22fe] = "afterSalesServiceData_2200_22FF"
15071554
UDS_RDBI.dataIdentifiers[0x22ff] = "afterSalesServiceData_2200_22FF"
1508-
UDS_RDBI.dataIdentifiers[0x2300] = "operatingData" # or RDBCI_BETRIEBSDATEN_LESEN_REQ # noqa E501
1555+
UDS_RDBI.dataIdentifiers[0x2300] = "operatingData" # or RDBCI_BETRIEBSDATEN_LESEN_REQ # noqa E501
15091556
UDS_RDBI.dataIdentifiers[0x2301] = "additionalOperatingData 2301-23FF"
15101557
UDS_RDBI.dataIdentifiers[0x2302] = "additionalOperatingData 2301-23FF"
15111558
UDS_RDBI.dataIdentifiers[0x2303] = "additionalOperatingData 2301-23FF"
@@ -1831,13 +1878,13 @@ class WEBSERVER(Packet):
18311878
UDS_RDBI.dataIdentifiers[0x2503] = "ProgrammingCounterMax"
18321879
UDS_RDBI.dataIdentifiers[0x2504] = "FlashTimings"
18331880
UDS_RDBI.dataIdentifiers[0x2505] = "MaxBlocklength"
1834-
UDS_RDBI.dataIdentifiers[0x2506] = "ReadMemoryAddress" # or maximaleBlockLaenge # noqa E501
1881+
UDS_RDBI.dataIdentifiers[0x2506] = "ReadMemoryAddress" # or maximaleBlockLaenge # noqa E501
18351882
UDS_RDBI.dataIdentifiers[0x2507] = "EcuSupportsDeleteSwe"
18361883
UDS_RDBI.dataIdentifiers[0x2508] = "GWRoutingStatus"
18371884
UDS_RDBI.dataIdentifiers[0x2509] = "RoutingTable"
18381885
UDS_RDBI.dataIdentifiers[0x2530] = "SubnetStatus"
18391886
UDS_RDBI.dataIdentifiers[0x2541] = "STATUS_CALCVN"
1840-
UDS_RDBI.dataIdentifiers[0x3000] = "RDBI_CD_REQ" # or WDBI_CD_REQ
1887+
UDS_RDBI.dataIdentifiers[0x3000] = "RDBI_CD_REQ" # or WDBI_CD_REQ
18411888
UDS_RDBI.dataIdentifiers[0x300a] = "Codier-VIN"
18421889
UDS_RDBI.dataIdentifiers[0x37fe] = "Codierpruefstempel"
18431890
UDS_RDBI.dataIdentifiers[0x3f00] = "SVT-Ist"
@@ -4864,7 +4911,7 @@ class WEBSERVER(Packet):
48644911
UDS_RC.routineControlIdentifiers[0x0f09] = "checkSignature"
48654912
UDS_RC.routineControlIdentifiers[0x0f0a] = "checkProgrammingStatus"
48664913
UDS_RC.routineControlIdentifiers[0x0f0b] = "ExecuteDiagnosticService"
4867-
UDS_RC.routineControlIdentifiers[0x0f0c] = "SetEnergyMode" # or controlEnergySavingMode # noqa E501
4914+
UDS_RC.routineControlIdentifiers[0x0f0c] = "SetEnergyMode" # or controlEnergySavingMode # noqa E501
48684915
UDS_RC.routineControlIdentifiers[0x0f0d] = "resetSystemFaultMessage"
48694916
UDS_RC.routineControlIdentifiers[0x0f0e] = "timeControlledPowerDown"
48704917
UDS_RC.routineControlIdentifiers[0x0f0f] = "disableCommunicationOverGateway"

0 commit comments

Comments
 (0)