diff --git a/OTA.md b/OTA.md index 1e1ad16..79d4c66 100644 --- a/OTA.md +++ b/OTA.md @@ -17,7 +17,8 @@ UI; it becomes available to OTA only after publication as a pre-release asset na `FatihsMG4-unstable-2.2.7.apk`, together with `FatihsMG4-unstable-2.2.7.apk.sha256`. -The vehicle artifact uses `com.evsuite.abrp.unstable`, `android.uid.system`, and the +The vehicle artifact uses `com.stinnesbeck.nilsmg4.unstable` (upstream: `com.evsuite.abrp.unstable`), +`android.uid.system`, and the DriveHub_Kamera platform key. Its certificate SHA-256 must be `c8a2e9bccf597c2fb6dc66bee293fc13f2fc47ec77bc6b2b0d52c11f51192ab8`. The stable build used for a Samsung UI preview is a separate package without OTA or the @@ -25,8 +26,12 @@ vehicle's shared UID; do not use that preview APK for the MG4 upgrade. ## What the updater actually looks for -`OtaUpdater.check()` reads `https://api.github.com/repos/fatihdonmezdev/FatihsMG4/releases` -and walks **every** entry, keeping the highest version rather than the first match. A +> **Switched off in Nils' MG4.** `RELEASES_API` points at `updates.invalid`, so every check +> fails. To re-enable it, point it at this repository's releases and add the host to +> `ALLOWED_HOSTS` (see `SPECS.md`). The steps below are upstream's GitHub process. + +`OtaUpdater.check()` reads the `RELEASES_API` URL (upstream: +`https://api.github.com/repos/fatihdonmezdev/FatihsMG4/releases`) and walks **every** entry, keeping the highest version rather than the first match. A release is a candidate only if all of these hold: | Requirement | Where it is enforced | What happens otherwise | @@ -55,7 +60,7 @@ The version comes from the **asset filename**, not the git tag. The tag can stay versionName "2.2.7" ``` - The unstable flavour appends its own suffix, so `2.2.7` becomes `2.2.7.0-unstable`. + The unstable flavour appends its own suffix, so `2.2.7` becomes `2.2.7-unstable`. Check what the installed build reports before picking a number: the app's About dialog shows it, and `isNewer` compares numerically segment by segment. @@ -79,24 +84,24 @@ The version comes from the **asset filename**, not the git tag. The tag can stay "$BT/apksigner" sign \ --key "$KEYS/platform.pk8" \ --cert "$KEYS/platform.x509.pem" \ - --out FatihsMG4-unstable-2.2.7.apk \ + --out NilsMG4-unstable-2.2.7.apk \ aligned.apk rm aligned.apk ``` The output filename **is** the version the updater reads. Name it - `FatihsMG4-unstable-.apk`, then create its required integrity sidecar: + `NilsMG4-unstable-.apk` (`build-car` does steps 2 to 4 and names it so), then create its required integrity sidecar: ```bash - shasum -a 256 FatihsMG4-unstable-2.2.7.apk \ - > FatihsMG4-unstable-2.2.7.apk.sha256 + shasum -a 256 NilsMG4-unstable-2.2.7.apk \ + > NilsMG4-unstable-2.2.7.apk.sha256 ``` 4. **Verify the signer** before uploading. It must say `CN=Android`: ```bash - "$BT/apksigner" verify --print-certs FatihsMG4-unstable-2.2.7.apk + "$BT/apksigner" verify --print-certs NilsMG4-unstable-2.2.7.apk ``` 5. **Publish.** On github.com/fatihdonmezdev/FatihsMG4 → Releases → Draft a new release: diff --git a/SPECS.md b/SPECS.md index ce32a63..5bb8cc2 100644 --- a/SPECS.md +++ b/SPECS.md @@ -82,8 +82,6 @@ tyre pressures, GPS (lat, lon, elevation, heading) and the is_* flags. It does * - [ ] **Telemetry queue survives restarts.** Unsent live samples are kept in memory only. - [ ] **Translate the rest.** The docs (`CHANGELOG.md`, `OTA.md`'s message table, comments in `mise.toml`/`app/build.gradle`) are still Turkish or French. -- [ ] **Docs still use the old package ID.** `README.md`, `OTA.md`, `CHANGELOG.md`, `mise.toml` and - `docs/MG4_PLATFORM_INSTALL.md` refer to `com.evsuite.abrp(.unstable)` and `FatihsMG4-*.apk`. - [ ] **Move hardcoded UI strings into `strings.xml`.** Many are inline in Java and layouts. ## Done @@ -114,6 +112,9 @@ 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 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. +- 2026-10-18 — README rewritten for Nils' MG4. `OTA.md`, `mise.toml` and + `docs/MG4_PLATFORM_INSTALL.md` use the new package ID and `NilsMG4-*.apk` names; `OTA.md` notes + that updates are switched off. `CHANGELOG.md` keeps the old ID as upstream history. - 2026-10-18 — App 2.8.2: full screen uses the whole display. The MG4 hid its bars but left a black band where they were: LAYOUT_STABLE kept reporting the bars' insets and the fitsSystemWindows root padded for them. Both are off in full screen now. diff --git a/docs/MG4_PLATFORM_INSTALL.md b/docs/MG4_PLATFORM_INSTALL.md index 32f923d..816f234 100644 --- a/docs/MG4_PLATFORM_INSTALL.md +++ b/docs/MG4_PLATFORM_INSTALL.md @@ -57,15 +57,15 @@ later install says `No such file or directory`, re-push. ## Verifying the Install ```bash -adb shell pm path com.evsuite.abrp.unstable -# -> package:/data/app/com.evsuite.abrp.unstable-.../base.apk +adb shell pm path com.stinnesbeck.nilsmg4.unstable +# -> package:/data/app/com.stinnesbeck.nilsmg4.unstable-.../base.apk ``` To confirm the platform signature matches the system: ```bash BUILD_TOOLS="$ANDROID_HOME/build-tools/36.0.0" -adb pull "$(adb shell pm path com.evsuite.abrp.unstable | sed 's/package://')" /tmp/installed.apk +adb pull "$(adb shell pm path com.stinnesbeck.nilsmg4.unstable | sed 's/package://')" /tmp/installed.apk "$BUILD_TOOLS/apksigner" verify --print-certs /tmp/installed.apk # SHA-256 cert digest should match tools/platform.x509.pem ``` @@ -73,7 +73,7 @@ adb pull "$(adb shell pm path com.evsuite.abrp.unstable | sed 's/package://')" / ## Uninstalling ```bash -adb uninstall com.evsuite.abrp.unstable +adb uninstall com.stinnesbeck.nilsmg4.unstable ``` Add `-k` to keep data/cache around (useful when re-installing to test without @@ -92,7 +92,7 @@ SDK="$HOME/Library/Android/sdk" BT="$SDK/build-tools/36.0.0" IN=app/build/outputs/apk/unstable/debug/app-unstable-debug.apk ALIGNED=app/build/outputs/apk/unstable/debug/app-unstable-debug-aligned.apk -OUT=FatihsMG4-unstable-platform.apk +OUT=NilsMG4-unstable-platform.apk "$BT/zipalign" -f 4 "$IN" "$ALIGNED" "$BT/apksigner" sign --key tools/platform.pk8 --cert tools/platform.x509.pem --out "$OUT" "$ALIGNED" "$BT/apksigner" verify --verbose "$OUT" diff --git a/mise.toml b/mise.toml index 932bafb..35eb1ab 100644 --- a/mise.toml +++ b/mise.toml @@ -216,6 +216,6 @@ fi APK=$(ls -t app/build/outputs/apk/stable/debug/*.apk | head -1) echo "Installation de $APK" $ADB install -r -g "$APK" -$ADB shell am start -n "com.evsuite.abrp/com.evsuite.abrp.MainActivity" +$ADB shell am start -n "com.stinnesbeck.nilsmg4/com.evsuite.abrp.MainActivity" echo "Lancé. Logs : mise run logs" '''