The invention relates to a software detection method according to the preambles of the independent claims.
An electronic control device for e.g. an internal combustion engine or a gearbox contains software for controlling different applications of said engine or gearbox.
When an engine and gearbox is leaving the factory it has a predetermined version of the software installed. Said software may later on be upgraded by the manufacturer of the vehicle at for instance service points of the vehicle for certain reasons.
However, there are also a number of more or less irresponsible tuning firms which provide for numerous variants of software tuning installations. Such unauthorised software may cause premature component wear due to manipulations of originally defined system variables such as inter alia variables for controlling, injection timing, fuel amount injected to each cylinder, boost pressure, rpm limit and manipulation of the gear shift program. Such installations of unauthorized software may case the engine and/or gear box to present premature engine and/or gearbox failure and/or noticeable wear of such components which is a problem for the manufacturer and its guarantee commitment. When there is a mechanical failure due to the use of unauthorized software the owner of the vehicle usually install the original software for hiding the use of the tuning software which may have been the cause of such mechanical failure.
It is desirable to provide a method for detecting the use of unauthorized software use in an electronic control unit e.g. for an internal combustion engine and/or vehicle gearbox for making it possible for the vehicle manufacturer to prove non approved software installations.
In a first example embodiment according to an aspect of the invention a method is provided for detecting use of unauthorized software in an electronic control unit provided in a vehicle, said method comprising the steps of calculating CVN each time the engine is started, comparing a last calculated CVN with a last stored CVN in a list comprising a plurality of storage places for said CVN, storing said last calculated CVN if said last calculated CVN is different to the last stored CVN together with a date of an entry in said list of CVN and/or the current odometer status, removing entries in the list of CVN according to FIFO principle when said list of CVN is full.
An advantage with said example embodiment of the present invention is that vehicle manufacturer may control and/or detect unauthorized software in an easy and inexpensive manner.
In another example embodiment according to an aspect of the present invention said list of CVN entries comprises at least 10 storage positions.
An advantage with said example embodiment of the present invention is that the use of unauthorized software is more difficult to erase the more storage positions there is, i.e., a user must upload a number of different versions of software in order to erase the unauthorized software.
In another example embodiment of an aspect of the present invention said method further comprises the step of providing a separate list of CVN for different predefined parts of the software application.
An advantage of having different list of CVN for different parts of the software application may be that the manufacturer can detect more accurately where in the software there has been a change and if said change is authorized or not.
In another example embodiment of the present invention said method further comprises the step of restricting said CVN calculation to a maximum of one time per day.
An advantage of said example embodiment may be that it is more difficult to erase the trace of an unauthorized software since it will take several days or several weeks depending on the number of storage positions.
In another example of an embodiment of the present invention, said method further comprises the step of retrieving a list of CVNs with metadata (e.g. Odometer, date, time) for an on-board or off-board client utilizing e.g. a diagnostic communication protocol.
An advantage of said example embodiment of the present invention is that said list of CVN numbers may be easily detectable and easily visualized.
The present invention together with the above-mentioned and other objects and advantages may best be understood from the following detailed description of the embodiments, but not restricted to the embodiments, wherein is shown schematically:
CVN is an abbreviation for Checksum Verification Number. The term CVN is used for all types of checksums in the document and is not limited to the engine electronic control unit.
In the drawings, equal or similar elements are referred to by equal reference numerals. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. Moreover, the drawings are intended to depict only typical embodiments of the invention and therefore should not be considered as limiting the scope of the invention.
The calculation of said CVN may be performed each time a vehicle is started. Alternatively said calculation of CVN is performed at a maximum of one time a day. Making a restriction of CVN calculation of only one time per day may make it more difficult to clean a list of CVN for a vehicle owner who has used unauthorized software since cleaning one entry takes one day and x entries takes x days.
The calculated CVN is compared with the latest stored CVN in the CVN log. When a brand new vehicle leaves a factory there is at least one CVN entry in said CVN log. If the newly calculated CVN is equal to said latest stored CVN in the list no entry is made in the CVN log denoted by the yes trail from “same CVN?” box in the flow chart depicted in
If the newly calculated CVN is different to said latest stored CVN in the list an entry is made in the CVN log denoted by the no trail from “same CVN?” box in the flow chart depicted in
The CVN log can be extracted (read) by an on-board or off-board client utilizing e.g. a diagnostic communication protocol, e.g., SAE J1939-73, ISO 15765-3.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/SE2009/000394 | 8/28/2009 | WO | 00 | 3/20/2012 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2011/025416 | 3/3/2011 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5797107 | Berg et al. | Aug 1998 | A |
6219696 | Wynblatt et al. | Apr 2001 | B1 |
6678606 | Akins et al. | Jan 2004 | B2 |
7406717 | Tenbusch | Jul 2008 | B2 |
7433953 | Kappler et al. | Oct 2008 | B1 |
7894978 | Kurnik et al. | Feb 2011 | B2 |
8135533 | Noda | Mar 2012 | B2 |
8600605 | Grenn et al. | Dec 2013 | B2 |
20030037256 | Kawamura | Feb 2003 | A1 |
20030055552 | Akins et al. | Mar 2003 | A1 |
20050034034 | Kamada | Feb 2005 | A1 |
20050165760 | Seo | Jul 2005 | A1 |
20090150118 | Naima | Jun 2009 | A1 |
20090210613 | Mueller et al. | Aug 2009 | A1 |
20100094780 | Trzcinski | Apr 2010 | A1 |
Number | Date | Country |
---|---|---|
2719919 | Nov 1995 | FR |
2005339228 | Dec 2005 | JP |
2006063919 | Jun 2006 | WO |
Entry |
---|
EFILive.Com Forum Post, “LMM Programming History & CVN's Explained” by Ross (GMPX), Jul. 2, 2008, 28 pages, downloaded from http://forum.efilive.com/archive/index.php/t-8471.html. |
Rodriguez, Jon, “Maintaining the . . . Computer'?”, Gears, Aug. 2008, pp. 20-27. |
Final Regulation Order: Title 13, California Code Regulations, Section 1968.2 (Malfunction and Diagnostic System Requirements for 2004 and Subsequent Model-Year Passenger Cars, Light-Duty Trucks, and Medium-Duty Vehicles and Engines (OBD II), 2003, 81 pages. |
Informal ISO document GRPE-52-12, draft document of ISO/PDPAS 27145-1.4, published Jun. 6-9, 2006, 211 pages, downloaded from http://www.unece.org/fileadmin/DAM/trans/doc/2006/wp29grpe/ECE-TRANS-WP29-GRPE-52-inf12e.pdf. |
International Search Report for corresponding nternational application No. PCT/SE2009/000394, (Dec. 2, 2011). |
Number | Date | Country | |
---|---|---|---|
20120245788 A1 | Sep 2012 | US |