diff --git a/edge-client/android/README.md b/edge-client/android/README.md new file mode 100644 index 0000000..25220e5 --- /dev/null +++ b/edge-client/android/README.md @@ -0,0 +1,38 @@ +# 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. diff --git a/edge-client/android/latest.json b/edge-client/android/latest.json new file mode 100644 index 0000000..e1c7598 --- /dev/null +++ b/edge-client/android/latest.json @@ -0,0 +1,14 @@ +{ + "schema_version": 1, + "package_name": "com.magicby.broadcaster.client", + "version": "4.410.160", + "build_number": 4410160, + "architecture": "arm64-v8a", + "min_sdk": 23, + "enabled": true, + "apk_url": "https://git.it-screen.com/An-J/DOWNLOAD_IOMATEX_APP/raw/branch/main/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk", + "sha256": "aa8a38cc136477325246dfb1f731b112c62f354f1a47c7f9c7dc4f25238e522c", + "size_bytes": 25588971, + "signer_sha256": "071f8fc7b4324eb9584154810c203f9fad9b0d06409b5606e2f18eb8084fa103", + "published_at": "2026-10-14T05:55:09.667878+00:00" +} diff --git a/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk b/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk new file mode 100644 index 0000000..1a196a9 Binary files /dev/null and b/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk differ diff --git a/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk.sha256 b/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk.sha256 new file mode 100644 index 0000000..a756f23 --- /dev/null +++ b/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk.sha256 @@ -0,0 +1 @@ +aa8a38cc136477325246dfb1f731b112c62f354f1a47c7f9c7dc4f25238e522c itscreen-4.410.160-arm64-v8a.apk diff --git a/edge-client/android/releases/4.410.160-4410160/manifest.json b/edge-client/android/releases/4.410.160-4410160/manifest.json new file mode 100644 index 0000000..e1c7598 --- /dev/null +++ b/edge-client/android/releases/4.410.160-4410160/manifest.json @@ -0,0 +1,14 @@ +{ + "schema_version": 1, + "package_name": "com.magicby.broadcaster.client", + "version": "4.410.160", + "build_number": 4410160, + "architecture": "arm64-v8a", + "min_sdk": 23, + "enabled": true, + "apk_url": "https://git.it-screen.com/An-J/DOWNLOAD_IOMATEX_APP/raw/branch/main/edge-client/android/releases/4.410.160-4410160/itscreen-4.410.160-arm64-v8a.apk", + "sha256": "aa8a38cc136477325246dfb1f731b112c62f354f1a47c7f9c7dc4f25238e522c", + "size_bytes": 25588971, + "signer_sha256": "071f8fc7b4324eb9584154810c203f9fad9b0d06409b5606e2f18eb8084fa103", + "published_at": "2026-10-14T05:55:09.667878+00:00" +}