App 2.19.0: EVHardware updated from upstream (malys/EVHardware e4e1158)
Three-way merge from b595ccb, the commit Fatih copied, to upstream's current state; Fatih's vendor reads (tyres, mileage, charge status, SWI69) stay. LICENSE.md records the base for the next update. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
+34
-29
@@ -5,13 +5,14 @@
|
||||
[](https://github.com/malys/EVHardware/actions/workflows/tests.yml)
|
||||
[](https://github.com/malys/EVHardware/actions/workflows/security.yml)
|
||||
[](https://github.com/malys/EVHardware/actions/workflows/publish.yml)
|
||||
[](https://github.com/malys/EVHardware/releases)
|
||||
[](https://github.com/malys/EVHardware/releases)
|
||||
[](LICENSE)
|
||||
[](https://malys.github.io/EVSuite/)
|
||||
|
||||
> ⚠️ **This library reads and writes a car's settings.** It runs inside apps installed on
|
||||
> an MG4 head unit. Read [DISCLAIMER.md](DISCLAIMER.md) before depending on it.
|
||||
> MG and MG4 are third-party marks used only to identify compatibility; this project is
|
||||
> independent and is not approved by SAIC Motor or MG Motor.
|
||||
> MG and MG4 are third-party marks used only to identify compatibility; this independent
|
||||
> project is not affiliated with or approved by SAIC Motor or MG Motor.
|
||||
|
||||
Shared vehicle-access layer for the SAIC MG4 (Android Automotive OS 9, MT2712). One
|
||||
implementation of the reflection-based hardware layer, the 0 km/h safety gate, the driving
|
||||
@@ -22,14 +23,34 @@ The design line: **the apps are thin. EVHardware provides the vehicle.** EVTaske
|
||||
engine between shared conditions and actions; EVChargePilot and EVABRPUploader consume the
|
||||
same energy snapshot instead of carrying their own property ids, units and fallback order.
|
||||
|
||||
Consumers: EVProfile (drive-profile manager; owns the signature-protected TaskerBridge), EVTasker, EVABRPUploader
|
||||
and EVChargePilot. Each app consumes EVHardware as a git submodule (`EVHardware/lib` as the
|
||||
`:evhardware` subproject). Common toolchain: **AGP 9.1.1 / Gradle 9.3.1 / compileSdk 36 / JDK 17**.
|
||||
|
||||
## Part of EVSuite
|
||||
|
||||
EVHardware is the shared vehicle library of [**EVSuite**](https://malys.github.io/EVSuite/), a family of independent,
|
||||
offline-first apps for the MG4 head unit (Android Automotive OS 9). Each app installs on its
|
||||
own — pick only what you need. User guides and install instructions:
|
||||
<https://malys.github.io/EVSuite/>.
|
||||
|
||||
Discover the rest of the suite:
|
||||
|
||||
[](https://github.com/malys/EVProfile)
|
||||
[](https://github.com/malys/EVTasker)
|
||||
[](https://github.com/malys/EVABRPUploader)
|
||||
[](https://github.com/malys/EVChargePilot)
|
||||
[](https://github.com/malys/EVLauncher)
|
||||
[](https://github.com/malys/EVSwipe)
|
||||
|
||||
---
|
||||
|
||||
## Contents
|
||||
|
||||
- [Part of EVSuite](#part-of-evsuite)
|
||||
- [Overview](#overview)
|
||||
- [How it works](#how-it-works)
|
||||
- [Install](#install)
|
||||
- [The EVSuite](#the-evsuite)
|
||||
- [Building](#building)
|
||||
- [Project documents](#project-documents)
|
||||
- [Security](#security)
|
||||
@@ -114,9 +135,16 @@ permissions are `signature|privileged`); reads of standard AAOS properties work
|
||||
The library itself declares no permissions and no `sharedUserId` — that is the consuming
|
||||
app's decision.
|
||||
|
||||
---
|
||||
## Install
|
||||
|
||||
### External projects: consume the AAR
|
||||
EVHardware is a library, not an APK: it ships inside the consumer apps (EVProfile, EVTasker, EVABRPUploader,
|
||||
EVChargePilot). Those apps are sideloaded on the head unit via the keyboard route: open a
|
||||
text field, long-press `,` on the on-screen keyboard → **Language settings** → search
|
||||
`backup` then press back to reach Android Settings → enable **Developer options** +
|
||||
**Install unknown apps** → search `storage` and open the APK. See each app's README for
|
||||
the full steps.
|
||||
|
||||
### Consume the AAR
|
||||
|
||||
Projects outside this org can depend on EVHardware as a binary instead of a submodule. A
|
||||
version tag publishes the AAR to GitHub Packages (`com.evsuite:evhardware:<version>`), and
|
||||
@@ -133,29 +161,6 @@ dependencies { implementation("com.evsuite:evhardware:0.1.0-SNAPSHOT") }
|
||||
The AAR carries `consumer-rules.pro`, so a consumer's R8 keeps the reflected names. Vehicle
|
||||
writes still require the consuming app to be signed with the ROM platform key.
|
||||
|
||||
## Install
|
||||
EVHardware is a library — it ships inside the consumer apps (EVProfile, EVTasker), not
|
||||
as its own APK. Those apps are sideloaded on the head unit via the keyboard route: open a
|
||||
text field, long-press `,` on the on-screen keyboard → **Language settings** → search
|
||||
`backup` then press back to reach Android Settings → enable **Developer options** +
|
||||
**Install unknown apps** → search `storage` and open the APK. See each app's README for
|
||||
the full steps.
|
||||
|
||||
## The EVSuite
|
||||
Part of a small set of projects for the SAIC MG4 (AAOS 9, MT2712), all sharing the
|
||||
**EVHardware** vehicle layer:
|
||||
|
||||
| Project | Role |
|
||||
|---|---|
|
||||
| [EVHardware](https://github.com/malys/EVHardware) | Shared vehicle-access layer: reflection hardware layer, 0 km/h safety gate, driving models, condition/action catalogue + firmware matrix |
|
||||
| [EVProfile](https://github.com/malys/EVProfile) | Drive-profile manager; applies settings at startup; owns the signature-protected TaskerBridge |
|
||||
| [EVTasker](https://github.com/malys/EVTasker) | Rule engine — *when* conditions *then* actions — driving the car through EVProfile |
|
||||
| [EVABRPUploader](https://github.com/malys/EVABRPUploader) | Live telemetry uploader to A Better Route Planner |
|
||||
| [EVChargePilot](https://github.com/malys/EVChargePilot) | Offline live energy dashboard and local trip analyser |
|
||||
|
||||
Common toolchain: **AGP 9.1.1 / Gradle 9.3.1 / compileSdk 36 / JDK 17**. Each app consumes
|
||||
EVHardware as a git submodule (`EVHardware/lib` as the `:evhardware` subproject).
|
||||
|
||||
## Building
|
||||
```bash
|
||||
./gradlew :lib:testDebugUnitTest # unit tests + regenerates docs/firmware-matrix.md
|
||||
|
||||
Reference in New Issue
Block a user