Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

E-GMP: confirm the car identity without the VIN on M-CAN

Abierto
#71 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
embedded-iot

Línea de trabajo

Start with docs/can.md and the existing confirm_car_identity(), vin_matches(), and read-only gate behavior described in the issue. Compare the listed identity options and determine what evidence and captures are needed to choose one. Done means E-GMP identity confirmation has tests with captured matching frames and non-matching traffic, is documented, and revokes identity when the bus goes away.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

e-gmp enhancement

Part of the prerequisites for real commands (tracking issue to follow).

Problem

Since #49, set_can_read_only(false) is refused until the vehicle calls confirm_car_identity(). E-GMP never calls it, so its bus can never leave read-only and no E-GMP command can transmit.

The plan in #49 was to read the VIN from a passive broadcast. The VIN is not on the M-CAN bus (checked in all of the maintainer's existing captures), which is the only bus the project uses so far. vin_matches() exists but has nothing to feed it.

What the check is for

Stopping a firmware built for one platform from transmitting on a car it wasn't made for, where the same arbitration IDs can mean different things. It isn't authentication of the owner.

Constraints

  • Nothing may transmit before the identity is confirmed, so a diagnostic request (UDS) can't be used without an explicit, narrow exception to the read-only gate.
  • Keep the gate as it is: is_can_read_only() stays the only path to the bus, and the identity can be revoked (revoke_car_identity()).

Options

  • A VIN from another bus. It may be on a CAN-FD bus; the project only supports classic CAN today, so this means new hardware and driver work.
  • Passive fingerprint of M-CAN. Expect a set of arbitration IDs (with DLC and cycle time) within a few seconds of the bus waking. Identifies the platform, not the exact car or trim. Needs captures from other E-GMP cars and from non-E-GMP cars (including other Hyundai/Kia platforms) to see how strict it must be.
  • A diagnostic VIN request over OBD. Reliable, but needs a transmit before the identity is known. If ever chosen, it must be one fixed request, on fixed IDs, documented as the only exception.
  • Owner confirmation. The owner confirms the car in the app and the device stores it. Weaker, and needs a contracts message.
  • A combination, for example fingerprint plus owner confirmation.

Open questions

  • Is a platform-level fingerprint enough for the failure we want to prevent?
  • What revokes the identity afterwards (bus-off, a silent bus, a different fingerprint)?
  • Can we get captures from other E-GMP cars to test the fingerprint?

Done when

E-GMP confirms its identity with the chosen method, with tests using real captured frames and a negative test with non-matching traffic, the behaviour is documented in docs/can.md, and the identity is revoked when the bus goes away.

Lenguaje dominante
Rust
Estrellas
1
Forks
0
Merge medio
14 h 32 min
PR fusionados (30 d)
21

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenCarControls/firmware

Todos los issues de OpenCarControls/firmware

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.