39 lines
2.2 KiB
Markdown
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. The current manifest must always reference a retained release.
|
|
|
|
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.
|