Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#71 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust
領域
embedded-iot

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Rust
スター
1
フォーク
0
平均マージ
14時間 32分
マージ済み PR(30日)
21

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

OpenCarControls/firmware のほかの issue

OpenCarControls/firmware の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。