Update Factory Service Release Notes¶
Android Service releases¶
The following table provides the list of UF Android Service releases published so far.
The Version code is reported to the UF server as the client_version_code
attribute and can be used to filter devices based on their installed UF Android Service version.
Service version | Version code |
---|---|
v1.6.1 | 10601 |
v1.6.0 | 10600 |
v1.5.2 | 37 |
v1.5.1 | 36 |
v1.5.0 | 35 |
v1.4.1 | 34 |
v1.4.0 | 33 |
v1.3.1 | 32 |
v1.3.0 | 31 |
v1.2.0 | 30 |
v1.1.2 | 29 |
v1.1.1 | 26 |
v1.1.0 | 25 |
v1.0.1 | 24 |
v1.0.0 | 23 |
v1.6.1¶
versionCode 10601
Bug fixes¶
- Regenerate Android system master keys if they are unusable. This fixes a crash that occurred in some rare cases at the first startup of the service
- [Hara] Fix crash when an invalid token including a newline char is provided
v1.6.0¶
versionCode 10600
Enhancements¶
- Improve force ping behavior to send a new NoNewState message if the target status on the server is not changed. See ForcePing documentation for more details.
- New Authorization response behavior. See AuthorizationResponse documentation for more details
- Add Kotlinx serialization proguard rules
- Remove unnecessary logs
- Implement feedback message to the server to communicate UF Service self-update completed successfully
- Implement automated use of dedicated Update Factory ddi API URL
- Add UF Service version in Settings screen
- Add Android API level to built-in target attributes
- [Hara] Improve handling of multiple tokens. When both Target Token and Gateway Token are available to the Service, separate requests are sent to improve support for HTTP standards. The second request is sent only if the first fails.
- [Hara] Implement debouncing of force ping, to avoid server overloading. See Force Ping Debouncing documentation for more details
- [Hara] Update the target's polling failure back-off strategy to reduce polling frequency after a request to server times out.
- [Hara] Time-forced deployments are now handled properly
- Release communication API version 1.2.1, New event is notified to third-parties applications:
- NoNewState
Bug fixes¶
- [Hara] Fix reporting of certain deployment feedback messages to the server
- Fix UF Service self-update failure when deployed via Update Factory server if the original UF Service was either installed via ADB or restored to the default version bundled with the OS (e.g. by uninstalling updates from Android Settings)
v1.5.2¶
versionCode 37
Bug fixes¶
- Fix an issue causing deployment actions to stall on the server if the device is rebooted during the installation of a double-copy system OTA.
v1.5.1¶
versionCode 36
Bug fixes¶
- Fix incorrect error message when installing invalid apk files. The error was reported correctly but the message was misleading.
- Fix issue causing deployment actions to stall on the server when deploying system OTA updates which upgrades UF Service from versions below 1.5.0 to version 1.5.0.
v1.5.0¶
versionCode 35
Enhancements¶
- Update the license from EPLv1 to EPLv2.
- Upgrade Kotlin to 1.8.21 which fixes the false positive type mismatch in Android Studio.
- The "uf-client-example" module has moved to a new repository and renamed to UF Service API Reference Implementation
- Exclude the "os-mock" module from the Jitpack build.
- For security reasons, the
ufConf.conf
file is ignored when the Service API is used to configure the client.
Bug fixes¶
- Handle crash caused by failing to evaluate the file scheme used by
ufConf.conf
file. - Fix the "Reboot on the same partition" bug, when the UF Client Service crashes during a double-copy OTA update.
v1.4.1¶
versionCode 34
Enhancements¶
- Retry sending undelivered messages to the update-server
- Improve messages sent to the update-server during A/B updates, by marking messages generated by the Android UpdateEngine
Bug fixes¶
- [Hara] Fix
Kotlinx.coroutines.channels.ClosedSendChannelException
exception - [Hara] Fix "cannot make a new request because the previous response is still open: please call response.close" error
v1.4.0¶
versionCode 33
New features¶
- Add API to configure target attributes without resending the service configuration
Enhancements¶
- Release communication API version 1.2. New events are notified to third-parties applications:
- Service started;
- Service stopped;
- Configuration updated;
- Target token received from update-server.
v1.3.1¶
versionCode 32
Enhancements¶
- Hide target token and gateway token in preferences UI and on sync response.
Bug fix¶
- Fix service configuration using uf-client-service-api v0.x
v1.3.0¶
versionCode 31
New features¶
- Implement time windows feature for forced updates
Enhancements¶
- Sort app installation order (the service is always the first app installed, to ensure newer APIs are supported as soon as possible)
- Upgrade of hara-ddiclient dependency
- Release of API communication version v1.1
- Use of os-mock implementation for calling hidden-api
v1.2.0¶
versionCode 30
Enhancements¶
- Increase number of download attempts retries after a failure using the Exponential backoff algorithm (36 attempts in ~24h).
- Replace deprecated uf-ddiclient library with hara-ddiclient.
- Upgrade Kotlin to 1.6.10.
- Upgrade Gradle to 7.2.
- Removed withRetryDelay property from UI Example Setting page.
- Upgrade dependencies.
- Fix some warnings.
Bugs fixed¶
- Don't send the Authorization header with an empty token.
- Handle crashes caused by encrypted tokens in shared preferences.
- [Hara] Fix download progress updates keep coming even after the download failed due to connection issues.
- Fix UF UI Example does not show download authorization dialog again after pressing cancel once.
v1.1.2¶
versionCode 29
Bugs fixed¶
- The download authorization pop-up shows up twice when applying a soft update with API Mode ON and the UF example UI open in full screen.
- When the service starts it doesn't check the md5 file of the already downloaded files that could be corrupted.
- Service crashes when receives an unexpected serialized class.
- The service isn't restarted when its configuration is changed using api.
v1.1.1¶
versionCode 26
Bugs fixed¶
- Fix service configuration while using old api module (v0.x). When a client configures the service using an old module (v0.x) the isEnable and isApiMode fields are ignored (default value for these fields are false)
v1.1.0¶
versionCode 25
New features¶
- Store target token received from server
- Store gateway token and target token as encrypted strings
Enhancements¶
- Update logger tag to Update Factory Client
v1.0.1¶
versionCode 24
Bugs fixed¶
- Automatic send updated target attributes to the server
- Allowed connection to servers that use http instead of https
v1.0.0¶
versionCode 23