Licence: the original is MIT; EVHardware is noncommercial

Leon Kernan's ABRP_Uploader has carried the MIT Licence since
2026-07-29 (lkernan/ABRP_Uploader commit 75d8f2bc), so the inherited
"no licence upstream, status unresolved" notes no longer hold.

- LICENSE: MIT, now naming every copyright holder in the fork chain
  (Leon Kernan, EVABRPUploader contributors, FatihsMG4 contributors,
  Nils Stinnesbeck).
- LICENSE.md: rewritten. The repository is MIT except EVHardware/,
  which is PolyForm Noncommercial 1.0.0; the app links it into the APK,
  so the built app is non-commercial. EVHardware's own caveat about
  EVProfile stays with it.
- README, AGENTS.md, CONTRIBUTING.md and SPECS.md say the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
2026-10-18 19:38:21 +02:00
co-authored by Claude Opus 5.5
parent c71fa4504e
commit a293a0fa94
6 changed files with 44 additions and 19 deletions
+3 -2
View File
@@ -21,8 +21,9 @@ Wide layouts start at 1000dp; narrower windows use a bottom navigation bar.
An Android Automotive app for the **MG4 (SAIC eh32)** that reads vehicle telemetry and An Android Automotive app for the **MG4 (SAIC eh32)** that reads vehicle telemetry and
pushes it to A Better Route Planner. It runs on the car's head unit (AAOS 9, MT2712). pushes it to A Better Route Planner. It runs on the car's head unit (AAOS 9, MT2712).
Fork of Leon Kernan's `ABRP_Uploader`. See `LICENSE.md` — the licence status is Fork of Leon Kernan's `ABRP_Uploader` (MIT, like every fork after it). See `LICENSE.md`: the
**unresolved** and that is a real constraint, not paperwork. repository is MIT except `EVHardware/`, which is PolyForm Noncommercial — so the built APK may
only be used and shared non-commercially. Keep every copyright line in `LICENSE`.
## Non-negotiables ## Non-negotiables
+2 -3
View File
@@ -91,6 +91,5 @@ say what the failure looked like, so the next person recognises it.
## Licensing ## Licensing
Read [`LICENSE.md`](LICENSE.md) first. The project's licence status is unresolved because Read [`LICENSE.md`](LICENSE.md) first. Contributions are accepted under the MIT Licence,
the upstream fork source has none. Contributions are accepted on the understanding that except changes to `EVHardware/`, which fall under its PolyForm Noncommercial licence.
they are offered under MIT once that is settled.
+2
View File
@@ -2,6 +2,8 @@ MIT License
Copyright (c) 2026 Leon Kernan (original ABRP_Uploader) Copyright (c) 2026 Leon Kernan (original ABRP_Uploader)
Copyright (c) 2026 EVABRPUploader contributors Copyright (c) 2026 EVABRPUploader contributors
Copyright (c) 2026 FatihsMG4 contributors
Copyright (c) 2026 Nils Stinnesbeck (Nils' MG4)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+29 -11
View File
@@ -1,19 +1,37 @@
# Licence # Licence
This project is released under the **MIT Licence** — see [`LICENSE`](LICENSE). Everything in this repository is released under the **MIT Licence** — see
[`LICENSE`](LICENSE) — **except the `EVHardware/` library**, which has its own licence (below).
## Attribution ## Where it comes from
EVABRPUploader is a fork of Leon Kernan's `ABRP_Uploader`, and a meaningful part of Nils' MG4 is a fork of a chain of forks, all MIT:
the original work survives in it. The copyright line names both him and this fork's
contributors, and MIT requires that notice to travel with any copy or substantial portion
of the software. Keep it.
The upstream repository carried no licence file of its own. Applying MIT here is the - [Leon Kernan's `ABRP_Uploader`](https://github.com/lkernan/ABRP_Uploader), the original. It
project owner's decision; if Leon Kernan ever objects, the right response is to honour carries the MIT Licence since 2026-07-29
that rather than argue about it. ([its LICENSE](https://github.com/lkernan/ABRP_Uploader/blob/master/LICENSE), commit
`75d8f2bc`). Upstream's note that it had no licence predates that.
- malys' EVABRPUploader, then
[fatihdonmezdev/FatihsMG4](https://github.com/fatihdonmezdev/FatihsMG4), both under MIT.
- This fork, under MIT as well.
MIT requires the copyright notice to travel with any copy or substantial portion of the
software. `LICENSE` names all of them; keep every line.
## The EVHardware library
`EVHardware/` (the shared vehicle layer from EVSuite) is source-available under the
**PolyForm Noncommercial License 1.0.0** — see [`EVHardware/LICENSE`](EVHardware/LICENSE) and
[`EVHardware/LICENSE.md`](EVHardware/LICENSE.md). Commercial use is not permitted, and its
`Required Notice: Copyright (c) 2026 EVHardware contributors` must go with any copy.
The car app links EVHardware into its APK, so the **built app** may only be used and passed on
non-commercially, whatever the MIT parts would allow on their own. The server, the Kubernetes
manifests and the docs do not contain EVHardware and are plain MIT. EVHardware's own notes say
that parts of it come from EVProfile, whose upstream licence situation it calls unresolved;
that caveat is EVHardware's and stays with it.
## No warranty ## No warranty
MIT disclaims all warranty and liability, and this software runs on a **vehicle** — see Both licences disclaim all warranty and liability, and this software runs on a **vehicle** —
[`DISCLAIMER.md`](DISCLAIMER.md) for what that means concretely. see [`DISCLAIMER.md`](DISCLAIMER.md) for what that means concretely.
+4 -3
View File
@@ -17,8 +17,9 @@ APIs.
> [`DISCLAIMER.md`](DISCLAIMER.md). Not affiliated with SAIC, MG Motor or Iternio. > [`DISCLAIMER.md`](DISCLAIMER.md). Not affiliated with SAIC, MG Motor or Iternio.
> MG and MG4 are third-party marks used only to identify compatibility. > MG and MG4 are third-party marks used only to identify compatibility.
> **Licence.** The original `ABRP_Uploader` carries no licence, which limits what may legally > **Licence.** MIT, like Leon Kernan's original `ABRP_Uploader` and the forks in between —
> be published. Read [`LICENSE.md`](LICENSE.md) before redistributing anything. > except the bundled `EVHardware/` library, which is PolyForm Noncommercial, so the built app
> may only be used and shared non-commercially. See [`LICENSE.md`](LICENSE.md).
--- ---
@@ -224,7 +225,7 @@ flake.nix dev shell and build-car
| [SECURITY.md](SECURITY.md) | Threat model | | [SECURITY.md](SECURITY.md) | Threat model |
| [DISCLAIMER.md](DISCLAIMER.md) | Vehicle-safety disclaimer; read before installing | | [DISCLAIMER.md](DISCLAIMER.md) | Vehicle-safety disclaimer; read before installing |
| [CHANGELOG.md](CHANGELOG.md) | Upstream release history | | [CHANGELOG.md](CHANGELOG.md) | Upstream release history |
| [LICENSE.md](LICENSE.md) | Licence status | | [LICENSE.md](LICENSE.md) | Licences: MIT, and PolyForm Noncommercial for `EVHardware/` |
## Credits ## Credits
+4
View File
@@ -109,6 +109,10 @@ tyre pressures, GPS (lat, lon, elevation, heading) and the is_* flags. It does *
INGEST_TOKEN) into git and pushed it. Commit amended and force-pushed; both values regenerated in INGEST_TOKEN) into git and pushed it. Commit amended and force-pushed; both values regenerated in
the now gitignored `k8s/secrets.yaml` (since moved to `k8s/secrets/secrets.yaml`, outside the now gitignored `k8s/secrets.yaml` (since moved to `k8s/secrets/secrets.yaml`, outside
`kubectl apply -f k8s/`). Filled-in secrets live only there from now on. `kubectl apply -f k8s/`). Filled-in secrets live only there from now on.
- 2026-10-18 — Licence: Leon Kernan's `ABRP_Uploader` has been MIT since 2026-07-29 (its commit
`75d8f2bc`), so the "unresolved" notes are gone. `LICENSE` names every copyright holder in the
fork chain; `LICENSE.md` explains that `EVHardware/` is PolyForm Noncommercial, which makes the
built APK non-commercial. README, AGENTS.md and CONTRIBUTING.md updated.
- 2026-10-18 — App 2.16.1: the Overview reads the car every 0.5 s (was 2 s), on a background - 2026-10-18 — App 2.16.1: the Overview reads the car every 0.5 s (was 2 s), on a background
thread; the consumption and charging trackers stay on the 2-second tick (they integrate over thread; the consumption and charging trackers stay on the 2-second tick (they integrate over
time, and the charging tracker writes its session to storage on every sample). Note for time, and the charging tracker writes its session to storage on every sample). Note for