Chrysler: fuzzy fingerprint on part numbers - #3727
Open
singhharsh1708 wants to merge 1 commit into
Open
Conversation
Contributor
Car behavior reportReplays driving segments through this PR and compares the behavior to master. Testing 40 segments for: CHRYSLER_PACIFICA_2018_HYBRID, CHRYSLER_PACIFICA_2019_HYBRID, CHRYSLER_PACIFICA_2018, CHRYSLER_PACIFICA_2020 ✅ 0 changed, 35 passed, 5 errors Show errors |
singhharsh1708
force-pushed
the
chrysler-fuzzy-fingerprint
branch
from
September 8, 2026 16:43
90f4f23 to
49ce97e
Compare
singhharsh1708
force-pushed
the
chrysler-fuzzy-fingerprint
branch
from
September 9, 2026 08:51
49ce97e to
5f58c98
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Chrysler has no fuzzy fingerprinting, so a car whose exact firmware combination is not in the database does not match at all. Mopar part numbers are an 8 character part followed by a two character software revision, so matching on the part number alone survives a revision bump.
This matches on combinationMeter, engine, srs and transmission, requires two of them to agree, and tolerates one carrying an unseen part number, which is what a new model year usually looks like. Which ECUs carry the part number matters more than the matching rule: across the 652 firmware strings in the database, no part number on engine, transmission or combinationMeter is shared between two platforms, while srs shares one, abs two, eps three and fwdRadar six, with 04672758 appearing on all four Pacificas.
The brand hook only runs when the generic matcher finds nothing, so the case it actually changes is an unseen software revision. With every revision bumped to one not in the database, master matches 0 of 10 platforms on full firmware, 0 of 51 when two platform code ECUs respond, and 0 of 31 when three do. With this it is 10 of 10, 51 of 51 and 31 of 31, and no wrong car in any of them. On exact firmware the generic matcher already matches every platform and the hook is never reached, so nothing there changes.
Tolerating one unseen ECU is #3717's idea and I kept it. Without it every ECU set drops to zero the moment one part number is unseen.
Grand Cherokee and Grand Cherokee 2019 share srs part number 68355363. A shared code only makes a match ambiguous, and ambiguous matches are rejected, so it is safe, but a new one would quietly shrink what can be identified, so there is a test pinning the known set. Both thresholds are covered too: raising the unseen tolerance or lowering the minimum number of agreeing ECUs each fails a test.
No dongle ID or route applies, this does not change anything a car does.
PRs #3520, #3717 and #3725 are open on this and got here first. If one of theirs lands, it lands.
Closes #1092