Docs: new package ID and APK names
OTA.md, mise.toml and docs/MG4_PLATFORM_INSTALL.md now use com.stinnesbeck.nilsmg4(.unstable) and NilsMG4-*.apk. OTA.md says the updater is switched off and that its publishing steps are upstream's GitHub process; it also drops the old four-part version example. CHANGELOG.md keeps the old ID as upstream history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
@@ -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-<version>.apk`, then create its required integrity sidecar:
|
||||
`NilsMG4-unstable-<version>.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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
'''
|
||||
|
||||
Reference in New Issue
Block a user