3.8 KiB
3.8 KiB
SPECS — Nils' MG4
Journal for this fork of fatihdonmezdev/FatihsMG4: what has been changed, and what is still to do.
- Our repository: https://git.stinnesbeck.com/nils/mg4
- Upstream: https://github.com/fatihdonmezdev/FatihsMG4 (itself a fork of malys / EVABRPUploader and Leon Kernan / ABRP_Uploader). Credited in the app's About dialog.
To do
- About dialog link and QR code → https://git.stinnesbeck.com/nils/mg4.
Both come from
REPOSITORY_URLinapp/src/main/java/com/evsuite/abrp/MainActivity.javaandabout_repositoryinapp/src/main/res/values/strings.xml. They still point to Fatih's GitHub repository. - Re-enable OTA updates against our own releases.
RELEASES_APIinapp/src/unstable/java/com/evsuite/abrp/OtaUpdater.javapoints atupdates.invalidon purpose, so checks fail. The updater speaks the GitHub releases API and only allows GitHub hosts (ALLOWED_HOSTS). For git.stinnesbeck.com it needs the host on the allowlist, and the response parsing checked against that server's releases API. Release assets must be namedNilsMG4-unstable-<version>.apkwith a.sha256sidecar (build-carwrites both). - ABRP upload is gone upstream. Upstream commit
ea8032a("chore", 2026-10-09) removed the ABRP tab, the config-file import (ConfigImport), the upload (AbrpApi,TelemetryPayload,UploadCadence),SecurePrefsandHeadUnitWeather. The app now only tracks consumption and syncs it to the MongoDB API. Leftoverstrings.xmlentries (btn_import,import_*,hint_api_key, …) belong to it. Decide whether to restore it. - Fix the unit tests. They don't compile upstream:
AbrpApiTest,TelemetryPayloadTestand others still useAbrpApi/TelemetryPayload, which upstream commitea8032adeleted. - Charging currency. Prices and costs are shown in Turkish lira (
₺/kWh,₺) inpane_charging.xmlandMainActivity.java. - Cloud consumption sync.
CONSUMPTION_INSTALLATION_IDinapp/build.gradleis a fixed UUID inherited from upstream. Set our own before configuringCONSUMPTION_API_URL/CONSUMPTION_API_TOKEN, so our data cannot land under upstream's id. - Translate the rest. The
web/dashboard (Next.js) and docs (CHANGELOG.md,OTA.md's message table, comments inmise.toml/app/build.gradle) are still Turkish or French. - Docs still use the old package ID.
README.md,OTA.md,CHANGELOG.md,mise.tomlanddocs/MG4_PLATFORM_INSTALL.mdrefer tocom.evsuite.abrp(.unstable)andFatihsMG4-*.apk. - Move hardcoded UI strings into
strings.xml. Many are inline in Java and layouts.
Done
- 2026-10-17 — Translated the app UI from Turkish to English.
- 2026-10-17 — Nix flake:
nix developprovides JDK 21 and the Android SDK.build-carbuilds the unstable APK and signs it with the AOSP test platform key, which the MG4 head unit uses (cert SHA-256c8a2e9bc…192ab8). - 2026-10-17 — OTA update checks disabled by pointing at an unresolvable host (see To do).
- 2026-10-17 — Renamed to "Nils' MG4": package ID
com.stinnesbeck.nilsmg4(.unstablefor the car build), APK namesNilsMG4-*.apk. It installs next to the old FatihsMG4 app instead of replacing it, and starts with empty settings and history. - 2026-10-17 — Temporary on-screen diagnostics (
b2a5b32) to debug blank values without adb; removed again (1002962) once values showed on the car. Revert1002962to bring them back.
Installing on the car
nix develop
build-car
adb push build/car/NilsMG4-unstable-<version>.apk /data/local/tmp/update.apk
adb shell "pm install -r -f -d -t /data/local/tmp/update.apk"
To remove the old upstream app: adb uninstall com.evsuite.abrp.unstable.