DOWNLOAD_IOMATEX_APP/edge-client/android/README.md

39 lines
2.2 KiB
Markdown

# Edge Client Android channel
This channel is for `com.magicby.broadcaster.client`, ARM64 Qt Edge Client.
It is independent of the mobile IOMATEX `latest.json` at the repository root.
Public manifest: https://git.it-screen.com/An-J/DOWNLOAD_IOMATEX_APP/raw/branch/main/edge-client/android/latest.json
The client checks `build_number` against its installed Android versionCode;
only a higher value is eligible. Required manifest fields: package_name,
build_number, architecture (arm64-v8a), min_sdk, apk_url (HTTPS raw URL in this
repository), sha256, size_bytes. `enabled: false` pauses new downloads. This
cannot revoke an APK already handed to Android installation.
All published APKs here retain the existing Edge test-fleet certificate SHA256
071f8fc7b4324eb9584154810c203f9fad9b0d06409b5606e2f18eb8084fa103.
This is NOT the mobile IOMATEX production key or the legacy itscreen_21.apk key.
The client requires equality with its installed signing certificate.
## Release procedure
1. Increase the Edge Client versionName/versionCode and run regression tests.
2. Build ARM64 APK and sign using the retained Edge key outside Git.
3. Run It-screenClient/scripts/prepare-android-git-release.py with the signed APK,
this repository root and Android SDK build-tools paths.
4. Review APK/version/checksum and commit the new immutable release directory
together with edge-client/android/latest.json. Never modify root latest.json.
5. After authorized push, fetch both raw URLs without credentials and verify
size/SHA-256; test upgrade on a device with the matching package/signature.
6. Rollbacks require another build with a greater versionCode. Keep old releases.
Auto-update can install silently only with working root privileges. Otherwise
Android presents its installer, which may require user confirmation and install
permission. Failed automatic installation is not retried in a loop for the same
version; the user can explicitly retry. Error details are retained in service
preferences (`update_error`) and Android logs; root output is update-install.log.
The first migration from the old HTTP channel requires installing the new APK
once. Old binaries do not discover this Git channel by themselves.