# Changelog

#### 9.2.0 – Apr. 16, 2026

* The **Scan** gesture has been made easier to pass: resolved the issue with conflicting hints.
* The `Action rules unavailable error`, which might have appeared on the first liveness attempt, no longer occurs.
* Sessions that might have failed with the `CameraDevice was already closed` error due to a camera pipeline race condition now complete successfully. The `VIDEO_RECORD_ERROR` result code is now correctly returned for the remaining edge cases.
* Added edge-to-edge display support required for Android 16. The UI now correctly adapts to system insets — the close button no longer overlaps the status bar.

#### 9.1.0 – Mar. 12, 2026

* Selfie gesture recording now stops strictly at the configured timeout to normalize video duration across devices.
* If user can’t take a video, the new timeout counter for video capture now starts after the error timeout dialog is shown.

#### 9.0.2 – Feb. 25, 2026

* Updated internal dependencies.

#### 9.0.1 – Feb. 18, 2026

* Fixed the bug with “Unknown Error” being returned even in case of successful video capture.
* Resolved the issue with occasional crashes caused by improper preview scaling on some devices.

#### 9.0.0 – Feb. 10, 2026

* You can now [customize the logo position](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#logocustomization) (if allowed by license).
* In case of lost internet connection during license checking, SDK now returns the proper error.
* Updated code sample in align with OzCapsula functionality.

#### 8.23.1 – Jan. 30, 2026

* Fixed the bug with green videos appearing on some devices.
* Resolved the issue with occasional SDK crashes caused by restrictions of device camera.
* Fixed minor bugs.

#### 8.23.0 – Dec. 30, 2025

* Fixed the bug with SDK crashes caused by the “Invalid to call at Released state” and “Pending dequeue output buffer request cancelled” errors.
* Fixed the bug with "java.util.concurrent.TimeoutException" causing crashes.
* Android SDK now passes orientation and media type tags along with the action one.
* Enhanced security.

#### 8.22.1 – Dec. 10, 2025

* Fixed a minor bug.

#### 8.22.0 – Dec. 01, 2025

* <mark style="background-color:$primary;">Implemented a new proprietary data format: OzCapsula Data Container.</mark>
* Fixed occasional SDK crashes in specific cases and / or on specific devices.
* Enhanced security.

#### 8.21.0 – Nov. 12, 2025

* Improved SDK performance for some devices.
* Updated SDK to support the upcoming security features.

#### 8.20.0 – Oct. 10, 2025

* Fixed the bug with green videos on some smartphone models.
* Resolved the issue with `mediaId` appearing `null`.
* Enhanced security.

#### 8.19.0 – Sept. 15, 2025

* Resolved an issue with warning that could appear when running Fragment.
* SDK no longer crashes when calling `copyPlane`.
* When you choose to send compressed videos for a hybrid analysis, SDK no longer saves original media as well as compressed.
* Updated Oz Forensics website link.
* Enhanced security.

#### 8.18.4 – Aug. 29, 2025

* To support memory page size of 16 KB, switched TensorFlow to LiteRT.

#### 8.18.2 – Aug. 7, 2025

{% hint style="warning" %}
We highly recommend updating to this version.
{% endhint %}

* Fixed the bug that caused video duration and file size to increase.

#### 8.18.0 – July 16, 2025

* Added support for Google Dynamic Feature Delivery.
* Resolved an issue that might have caused crashes when taping the close button on the Liveness screen.
* Fixed a bug where the SDK would crash with "CameraDevice was already closed" exception.
* Security and telemetry updates.

#### 8.17.3 – July 02, 2025

* Resolved the issue with OkHttp compatibility.
* Fixed the bug with Fragment missing context.&#x20;

#### 8.17.2 – June 26, 2025

* Resolved a camera access issue affecting some mobile device models.

#### 8.17.1 – June 23, 2025

* Security updates.

#### 8.17.0 – May 22, 2025

* Security updates.

#### 8.16.3 – Apr. 08, 2025

* Security updates.

#### 8.16.2 – Mar. 19, 2025

* Resolved the issue with possible SDK crashes when closing the Liveness screen.

#### 8.16.1 – Mar. 14, 2025

* Security updates.

#### 8.16.0 – Mar. 11, 2025

* Updated the authorization logic.
* Improved voiceover.
* Fixed the issue with SDK lags and the non-responding error that users might have encountered on some devices after completing the video recording.
* Resolved the issue with SDK crashes on some devices that might have occurred because of trying to access non-initialized or closed resources.
* Security updates.

#### 8.15.6 – Feb. 26, 2025

* Security updates.

#### 8.15.5 – Feb. 18, 2025

* You can now disable video validation that has been implemented to avoid recording of extremely short videos (3 frames and less): switch the option off using [`disableFramesCountValidation`](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#disableframescountvalidation).
* Fixed the bug with green videos on some smartphone models.
* Security updates.

#### 8.15.4 – Feb. 11, 2025

* Fixed bugs that could have caused crashes on some phone models.

#### 8.15.0 – Dec. 30, 2024

* Changed the wording for the head\_down gesture: the new wording is “tilt down”.
* Added proper focus order for TalkBack when the antiscam hint is enabled.
* Added the public setting extract\_action\_shot in the Demo Application.
* Fixed bugs.
* Security updates.

#### 8.14.1 – Dec. 5, 2024

* Fixed the bug when the recorded videos might appear green.
* Resolved codec issues on some smartphone models.

#### 8.14.0 – Dec. 2, 2024

* Accessibility updates according to WCAG requirements: the SDK hints and UI controls can be voiced.
* Improved user experience with head movement gestures.
* Moved the large video compression step to the Liveness screen closure.
* Fixed the bug when the best shot frame could contain an image with closed eyes.
* Minor bug fixes and telemetry updates.

#### 8.13.0 – Nov. 12, 2024

* Security and telemetry updates.

#### 8.12.4 – Oct. 01, 2024

* Security updates.

#### 8.12.2 – Sept. 10, 2024

* Security updates.

#### 8.12.0 – Aug. 29, 2024

* Security and telemetry updates.

#### 8.11.0 – Aug. 19, 2024

* Fixed the `RuntimeException` error with the server-based Liveness that appeared on some devices.
* Security updates.

#### 8.10.0 – July 26, 2024

* Security updates.
* Bug fixes.

#### 8.9.0 – July 18, 2024

* Updated the Android Gradle plugin version to 8.0.0.
* Internal SDK improvements.

#### 8.8.3 – July 11, 2024

* Internal SDK improvements.

#### 8.8.2 – June 21, 2024

* Security updates.

#### 8.8.1 – June 12, 2024

* Security updates.

#### 8.8.0 – June 04, 2024

* Security updates.

#### 8.7.3 – June 03, 2024

* Security updates.

#### 8.7.0 – May 06, 2024

* Added a description for the error that occurs when providing an empty string as an ID in the `setFolderID` method.
* Fixed a bug causing an endless spinner to appear if the user switches to another application during the Liveness check.
* Fixed some smartphone model specific-bugs.

#### 8.6.0 – Apr. 05, 2024

* Upgraded the on-device Liveness model.
* Security updates.

#### 8.5.0 – Feb. 27, 2024

* The length of the **Selfie** gesture is now [configurable](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#setselfielength) (affects the video file size).
* You can [set your own logo](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#logocustomization) instead of Oz logo if your license allows it.
* Removed the pause after the **Scan** gesture.
* If the recorded video is larger than 10 MB, it gets compressed.
* Security and logging updates.

#### 8.4.4 – Feb. 06, 2024

* Changed the master license validation algorithm.

#### 8.4.3 – Jan. 29, 2024

* Downgraded the required `compileSdkVersion` from 34 to 33.

#### 8.4.2 – Jan. 15, 2024

* Security updates.

#### 8.4.0 – Jan. 04, 2024

* Updated the on-device Liveness model.
* Fixed some bugs.

#### 8.3.3 – Dec. 11, 2023

* Internal licensing improvements.

#### 8.3.2 – Nov. 30, 2023

* Internal SDK improvements.

#### 8.3.1 – Nov. 24, 2023

* Bug fixes.

#### 8.3.0 – Nov. 17, 2023

* Implemented the possibility of using a master license that works with any `bundle_id`.
* Video compression failure on some phone models is now fixed.

#### 8.2.1 – Nov. 01, 2023

* Bug fixes.

#### 8.2.0 – Oct. 23, 2023

* The `Analysis` structure now contains the `sizeReductionStrategy` field. This field defines what type of media is being sent to the server in case of the hybrid analysis once the on-device analysis is finished successfully.
* The messages for the errors that are retrieved from API are now detailed.

#### 8.1.1 – Oct. 02, 2023

* If multiple analyses are applied to the folder simultaneously, the system sends them as a group. It means that the “worst” of the results will be taken as resolution, not the latest. Please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status-1) for details.
* For the Liveness analysis, the system now treats the highest score as a quantitative result. The Liveness analysis output is described [here](https://doc.ozforensics.com/oz-knowledge/guides/api/oz-api/types-of-analyses-and-what-they-check#output-1).

#### 8.1.0 – Sept. 07, 2023

* Updated the Liveness on-device model.
* Added the Portuguese (Brazilian) locale.
* You can now add a custom or update an existing language pack. The instructions can be found [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-localization-adding-a-custom-or-updating-an-existing-language-pack).
* If a media hasn't been uploaded correctly, the system repeats the upload.
* Created a new method to retrieve the telemetry (logging) identifier: `getEventSessionId`.
* The `login` and `auth` methods are now deprecated. Use the `setAPIConnection` method instead.
* `OzConfig.baseURL` and `OzConfig.permanentAccessToken` are now deprecated.
* If a user closes the screen during video capture, the appropriate error is now being handled by SDK.
* Fixed some bugs and improved the SDK work.

#### 8.0.3 – Aug. 24, 2023

* Fixed errors.

#### 8.0.2 – July 13, 2023

* The SDK now works properly with `baseURL` set to `null`.

#### 8.0.1 – June 28, 2023 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* The dependencies' versions have been brought into line with Kotlin version.

#### 8.0.0 – June 19, 2023 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Added the new analysis mode – hybrid (Liveness only). If the score received from an on-device analysis is too high, the system initiates a server-based analysis as an additional check.
* Kotlin version requirements lowered to 1.7.21.
* Improved the on-device models.
* For some phone models, fixed the fatal device error.
* The hint text width can now exceed the frame width (when using the main camera).
* Photos taken during the One Shot analysis are now being sent to the server in the original size.
* Removed the `OzAnalysisResult` class. The `onSuccess` method of`AnalysisRequest.run` now uses the `RequestResult` structure instead of `List<OzAnalysisResult>.`
* All exceptions are moved to the `com.ozforensics.liveness.sdk.core.exceptions` package (See changes below).
* Classes related to `AnalysisRequest` are moved to the `com.ozforensics.liveness.sdk.analysis`package (See changes below).
* The methods below are no longer supported:

| **Removed method**                        | **Replacement**                     |
| ----------------------------------------- | ----------------------------------- |
| OzLivenessSDK.uploadMediaAndAnalyze       | AnalysisRequest.run                 |
| OzLivenessSDK.uploadMedia                 | AnalysisRequest.Builder.uploadMedia |
| OzLivenessSDK.runOnDeviceBiometryAnalysis | AnalysisRequest.run                 |
| OzLivenessSDK.runOnDeviceLivenessAnalysis | AnalysisRequest.run                 |
| AnalysisRequest.build(): AnalysisRequest  | -                                   |
| AnalysisRequest.Builder.addMedia          | AnalysisRequest.Builder.uploadMedia |

<details>

<summary>Public interface changes</summary>

#### New entities

* `AnalysisRequest.Type.HYBRID` in `com.ozforensics.liveness.sdk.analysis.entity`
* `AnalysisError` in `com.ozforensics.liveness.sdk.analysis.entity`
* `SourceMedia` in `com.ozforensics.liveness.sdk.analysis.entity`
* `ResultMedia` in `com.ozforensics.liveness.sdk.analysis.entity`
* `RequestResult` in `com.ozforensics.liveness.sdk.analysis.entity`

#### Moved entities

* `NoAnalysisException` from `com.ozforensics.liveness.sdk.exceptions` в `com.ozforensics.liveness.sdk.core.exceptions`
* `NoNetworkException` from `com.ozforensics.liveness.sdk.exceptions` в `com.ozforensics.liveness.sdk.core.exceptions`
* `TokenException` from `com.ozforensics.liveness.sdk.exceptions` в `com.ozforensics.liveness.sdk.core.exceptions`
* `NoMediaInAnalysisException` from `com.ozforensics.liveness.sdk.exceptions` to `com.ozforensics.liveness.sdk.core.exceptions`
* `EmptyMediaListException` from `com.ozforensics.liveness.sdk.exceptions` to `com.ozforensics.liveness.sdk.core.exceptions`
* `NoSuchMediaException` from `com.ozforensics.liveness.sdk.exceptions` to `com.ozforensics.liveness.sdk.core.exceptions`
* `LicenseException` from `com.ozforensics.liveness.sdk.exceptions` to `com.ozforensics.liveness.sdk.security.exception`
* `Analysis` from `com.ozforensics.liveness.sdk.analysis.entity` to `com.ozforensics.liveness.sdk.core.model`
* `AnalysisRequest` from `com.ozforensics.liveness.sdk.analysis` to `com.ozforensics.liveness.sdk.core`
* `AnalysisListener` from `com.ozforensics.liveness.sdk.analysis` to `com.ozforensics.liveness.sdk.core`
* `AnalysisStatus` from `com.ozforensics.liveness.sdk.analysis` to `com.ozforensics.liveness.sdk.core`
* `AnalysisRequest.Builder` from `com.ozforensics.liveness.sdk.analysis` to `com.ozforensics.liveness.sdk.core`
* `OzException` from `com.ozforensics.liveness.sdk.exceptions` to `com.ozforensics.liveness.sdk.core.exceptions`

#### Changed classes

`OzLivenessSDK`

* Removed `uploadMediaAndAnalyze`
* Removed `uploadMedia`
* Removed `runOnDeviceBiometryAnalysis`
* Removed `runOnDeviceLivenessAnalysis`

`AnalysisRequest`

* Removed `build(): AnalysisRequest`

`AnalysisRequest.Builder`

* Removed `addMedia`
* Removed `onSuccess(result: List<OzAnalysisResult>)`
* Added `onSuccess(result: RequestResult)`

</details>

#### 7.3.1 – June 07, 2023 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Restructured the settings screen.
* Added the center hint background customization.
* Added new face frame forms (Circle, Square).
* Added the antiscam widget and its [customization](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#h.cql8r016fga9-1). This feature allows you to alert your customers that the video recording is being conducted, for instance, for loan application purposes. The purpose of this is to safeguard against scammers who may attempt to deceive an individual into approving a fraudulent transaction.
* The `OzLivenessSDK::init` method no longer crashes if there is a `StatusListener` parameter passed.
* Changed the scan gesture animation.

{% hint style="info" %}
Please note: for this version, we updated Kotlin to 1.8.20.
{% endhint %}

#### 7.2.0 – May 04, 2023 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Improved the SDK algorithms.

#### 7.1.4 – Mar. 30, 2023

* Updated the model for the on-device analyses.
* Fixed the animation for sunglasses/mask.
* The oval size for Liveness is now smaller.

#### 7.1.3 – Mar. 03, 2023

* Fixed the error with the server-based analyses while using `permanentAccessToken` for authorization.

#### 7.1.2 – Feb. 22, 2023

* Added customization for the [hint animation](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android-sdk-methods-and-properties#hintanimation).
* You can now hide the status bar and system buttons (works with 7.0.0 and higher).
* `OzLivenessSDK.init` now requires `context` as the first parameter.
* `OzAnalysisResult` now shows the server-based analyses' scores properly.
* Fixed initialization issues, displaying of wrong customization settings, authorization failures on Android <7.1.1.

#### 7.1.1 – Jan. 16, 2023 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Fixed crashes for Android v.6 and below.
* Fixed oval positioning for some phone models.
* Internal fixes and improvements.

#### 7.1.0 – Dec. 16, 2022 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Updated security.
* Implemented some internal improvements.
* The `addMedia` method is now deprecated, please use `uploadMedia` for uploading.

#### 7.0.0 – Nov. 23, 2022 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Changed the way of sharing dependencies. Due to security issues, now we share two types of libraries as shown below: `sdk` is a server analysis only, `full` provides both server and on-device analyses:

```
implementation 'com.ozforensics.liveness:full:7.0.0'
implementation 'com.ozforensics.liveness:sdk:7.0.0'
```

* `UICustomization` has been implemented instead of `OzCustomization`.
* Implemented a range of [UI customization](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/customizing-android-sdk) options and switched to the new design. To restore the previous settings, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/customizing-android-sdk/how-to-restore-the-previous-design-after-an-update).
* Added the Spanish locale.

#### 6.4.2.3 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Fixed the bug with freezes that had appeared on some phone models.
* SDK now captures videos in 720p.

#### 6.4.1 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Synchronized the names of the analysis modes with iOS: SERVER\_BASED and O&#x4E;*\_*&#x44;EVICE.
* &#x20;Fixed the bug with displaying of localization settings.

#### 6.4.0 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Now you can use Fragment as Liveness screen.
* Added a new field to the `Analysis` structure. The `params` field is for any additional parameters, for instance, if you need to set extracting the best shot on server to true. The best shot algorithm chooses the most high-quality frame from a video.

#### 6.3.7 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* The Zoom in and Zoom out gestures are no longer supported.

#### 6.3.6 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Updated the biometry model.

#### 6.3.5 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Added a new simplified API – AnalysisRequest. With it, it’s easier to create a request for the media and analysis you need.

#### 6.3.4 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Published the on-device module for on-device liveness and biometry analyses. To add this module to your project, use:

```
    implementation 'com.ozforensics.liveness:on-device:6.3.4'
```

To launch these analyses, use `runOnDeviceBiometryAnalysis` and `runOnDeviceLivenessAnalysis` methods from the `OzLivenessSDK` class:

```
val mediaList: List<OzAbstractMedia> = ...
val biometryAnalysisResult: OzAnalysisResult = OzLivenessSDK.runOnDeviceBiometryAnalysis(mediaList)
val livenessAnalysisResult: OzAnalysisResult = OzLivenessSDK.runOnDeviceLivenessAnalysis(mediaList)
```

#### 6.3.3 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* Liveness now goes smoother.
* Fixed freezes on Xiaomi devices.
* Optimized image converting.

#### 6.3.1 <a href="#h.5wzlen14wnj8" id="h.5wzlen14wnj8"></a>

* New metadata parameter for `OzLivenessSDK.uploadMedia` and new `OzLivenessSDK.uploadMediaAndAnalyze` method to pass this parameter to folders.

#### 6.2.8 <a href="#h.2468h84xtlvn" id="h.2468h84xtlvn"></a>

* Added functions for SDK initialization with LicenseSources: `LicenseSource.LicenseAssetId` and `LicenseSource.LicenseFilePath`. Use the `OzLivenessSDK.init` method to start initialization.
* Now you can get the license info upon initialization `val licensePayload = OzLivenessSDK.getLicensePayload()`.

#### 6.2.4 <a href="#h.117gnfg4rebg" id="h.117gnfg4rebg"></a>

* Added the Kyrgyz locale.

#### 6.2.0 <a href="#h.g1s27k3vugaf" id="h.g1s27k3vugaf"></a>

* Added local analysis functions.
* You can now configure the face frame.
* Fixed version number at the Liveness screen.

#### 6.1.0 <a href="#h.1ujq47ldpi" id="h.1ujq47ldpi"></a>

* Added the main camera support.

#### 6.0.1 <a href="#h.i195nzx7q08q" id="h.i195nzx7q08q"></a>

* Added configuration from license support.

#### 6.0.0 <a href="#h.zdpnpqi9npx" id="h.zdpnpqi9npx"></a>

* Added the OneShot gesture.
* Added new states for `OzAnalysisResult.Resolution.`
* Added the `uploadMediaAndAnalyze` method to load a bunch of media to the server at once and send them to analysis immediately.
* `OzMedia` is renamed to `OzAbstractMedia` and got subclasses for images and videos.
* Fixed camera bugs for some devices.

#### 5.1.0 <a href="#h.fpmmf25msz21" id="h.fpmmf25msz21"></a>

* Access token updates automatically.
* Renamed `accessToken` to `permanentAccessToken`.
* Added R8 rules.
* Configuration became easier: config settings are mutable.

#### 5.0.2 <a href="#h.pyulaph8remt" id="h.pyulaph8remt"></a>

* Fixed the oval frame.
* Removed the unusable parameters from `AnalyseRequest`.
* Removed default attempt limits.

#### 5.0.0 <a href="#h.4bjdhqpp9dt3" id="h.4bjdhqpp9dt3"></a>

* To customize the configuration options, the config property is added instead of baseURL, accessToken, etc. Use `OzConfig.Builder` for initialization.
* Added license support. Licences should be installed as raw resources. To pass them to `OzConfig`, use `setLicenseResourceId`.
* Replaced the context-dependent methods with analogs.
* Improved the image analysis.
* Removed unusable dependencies.
* Fixed logging.
