Releases: Simprints/Android-Simprints-ID
Release list
v2026.2.1
Simprints ID 2026.2.1
- Release Date: Jul 7, 2026 (Beta)
Highlights
Simprints ID 2026.2.1 makes the MFID workflow more flexible, fixes sync issues, and adds missing Amharic translations.
MFID
- QR codes no longer need to be manually confirmed.
- QR code readout values can no longer be edited.
- The MFID skip reason list is now more flexible. The GG2-specific reason
Has number, no document (Booklet)can be hidden from skip reasons with"mfidSkipReasonsHideHasNumber": true. - The skip reason screen can be bypassed entirely with
mfidDefaultSkipReason. When set, that value is recorded as the skip reason when MFID is skipped. - Amharic translations have been updated.
- Session events are now uploaded in FIFO order.
What's Changed
- Translatations update by @meladRaouf in #1718
- fix: upload session events in FIFO order by @meladRaouf in #1716
- Apk versiong + download apk from google play by @meladRaouf in #1719
- Update universal APK download ID key to
generatedUniversalApkby @meladRaouf in #1720 - Re-add release tagging by @meladRaouf in #1721
- Delete existing draft release to avoid conflicts during upload by @meladRaouf in #1722
- [MS-1484] MFID: QR codes are no longer required to be confirmed. QR code readouts cannot be edited. by @alexandr-simprints in #1723
- [MS-1485] MFID, "Skip reason" screen rework. Its visibility and contents can be controlled with custom config by @alexandr-simprints in #1730
Full Changelog: v2026.2.0...v2026.2.1
v2026.2.0
Simprints ID 2026.2.0
- Release Date: May 28, 2026 (Beta, Internal testing)
Highlights
Simprints ID 2026.2.0 delivers major enhancements to MFID:
- New support for non-credential field extraction, such as name and date of birth.
- Improved document scanning guidance with lighting assessment hints.
- Updated scanning animations and new reusable image-capture UI components.
- LibSimprints now supports MFID responses.
The release also includes a substantial sync architecture revamp to improve reliability and maintainability, a platform upgrade to Java 21, and numerous stability and usability improvements across the application, including improved logout handling.
Expanded OCR result set
SID 2026.2.0 enables projects to capture non-credential fields such as name and date of birth from Ghana NHIS and Ghana ID cards. This allows patient record fields to be filled automatically within data collector apps.
Low-light and overexposure detection
Card scanning in the MFID workflow now detects glare and images that are too dark, and informs the user about it.
Improved location tracking
Location monitoring has been improved to increase location data availability and better identify why location information may be missing. SID now records when location permissions are denied, first uses the device's last known location before requesting a fresh GPS fix, and includes a useBalancedLocationAccuracy feature flag to test balanced-accuracy location requests for faster results. These changes help reduce location collection timeouts and support the move away from using module IDs for location tracking.
Forced configuration update
Added support for remotely managing device modules by introducing forced module configuration updates from the backend. Devices can now receive updated module selections and automatically apply those changes locally. For now, this can only be done via PHC request.
Low storage capacity alert
SID now checks the device's available storage when users start the dashboard or a biometric workflow. If the available free space falls below a configurable threshold, a warning notification is displayed to help users take action before storage-related issues occur. The threshold is configured through the custom minimumFreeSpaceMb flag in Vulcan, or defaults to 1 GB if no custom value is specified. The app also records when these low-storage warnings are shown.
What's Changed
- [MS-1278] Spike: Sync architecture revamp, part 1 by @alex-vt in #1537
- MS-1311 Remove deprecations from Firebase Auth manager by @luhmirin-s in #1562
- MS-1275 Minor networking improvements by @luhmirin-s in #1559
- [MS-1299] Sync architecture revamp, part 2 by @alex-vt in #1561
- [MS-1300] Sync architecture revamp, part 3 by @alex-vt in #1569
- MS-1316 Move records room store migration tests to the correct package by @luhmirin-s in #1571
- [MS-1309] Suspending removed from functions that return flows by @alex-vt in #1579
- merge Release/2026.1.0 into main by @meladRaouf in #1578
- [MS-1317] Sync revamp: part 4 by @alex-vt in #1580
- [MS-1321] Sync revamp: part 5 by @alex-vt in #1583
- [MS-1347] Add External Credentials events to the bulk event data generator by @meladRaouf in #1585
- MS-1350 Worker scheduling simplification by @luhmirin-s in #1595
- Minor toolbar fixes by @luhmirin-s in #1597
- [MS-1087] Add dedicated CoSync model copies of exported classes by @BurningAXE in #1586
- Copilot instructions update by @BurningAXE in #1598
- [MS-1376] Add a guard against a race condition in MatcherFragment by @BurningAXE in #1604
- MS-1345 androidTest usage review by @luhmirin-s in #1607
- [MS-1068] Navigation crash upon state restoration by @BurningAXE in #1609
- [MS-1380] Launch camera setup in viewLifecycleOwner.lifecycleScope by @BurningAXE in #1610
- [MS-1377] Remove graph init state persistence that was never called by @BurningAXE in #1606
- [MS-1379] Don't crash on huge metadata by @BurningAXE in #1608
- MS-1382 Correct Response handling in backend api client by @luhmirin-s in #1620
- Updates LiveFeedbackFragment camera setup to use the correct resolution by @meladRaouf in #1621
- MS-1266 Explicitly ignore region part of the locale code by @luhmirin-s in #1626
- Upgrade project to Java 21 and update build configurations by @meladRaouf in #1622
- MS-1373 "Device" event scope by @luhmirin-s in #1623
- Add external credentials support to the bulk biometric records generator by @meladRaouf in #1627
- MS-1374 Forced configuration update by @luhmirin-s in #1625
- [MS-1343] MFID lighting conditions assessment hints for OCR by @alex-vt in #1619
- MS-1066 storage alert mvp by @luhmirin-s in #1628
- MS-856 Better alert screen tracking by @luhmirin-s in #1630
- [MS-1337] Adding generic UI tools for image capturing: target area cutout + mask + loading indicator by @alexandr-simprints in #1632
- MS-1232 Separate session closing from orchestrator cache reset by @luhmirin-s in #1631
- MS-1074 Use login error block instead of toast message by @luhmirin-s in #1635
- MS-1356 Better logout handling by @luhmirin-s in #1634
- [MS-1409] Fixing issue where the image preprocessing job is never started when fragment is opened by @alexandr-simprints in #1636
- [MS-1407] MFID document scanning animation is now similar to face biometrics by @alexandr-simprints in #1638
- MS-1411 Session location collection improvements by @luhmirin-s in #1641
- [MS-1412] Fix area calculation in RectF to handle negative values by @meladRaouf in #1642
- MS-1423 Remove FirebaseSampleUploader in favour of signed urls by @luhmirin-s in #1645
- MS-1203 Update to use MFID version of LibSimprints Identification by @luhmirin-s in #1644
- MS-1424 remove distortion config upload by @luhmirin-s in #1646
- [MS-1426]
MapStepsForLastBiometricEnrolUseCasenow considers matching results from the External Credential matching by @alexandr-simprints in #1648 - Mock Random generator to always choose the first path in session event insertion test by @meladRaouf in #1647
- MS-1427 Adjust screen insets on all MFID screens by @luhmirin-s in #1654
- [MS-1421] Creating OCR framework to work with the OCR readouts with text filter and spatial constraints by @alexandr-simprints in #1643
- Merge/main/2026.1.0 by @meladRaouf in #1655
- Add serialization to AlertButtonConfig by @meladRaouf in #1653
- [MS-1383] Non-credential fields (name, dob, etc.) can now be returned in the MFID by @alexandr-simprints in #1656
- Update dev version name to 2026.2.0 by @meladRaouf in #1661
- MS-1431 Sync during pool validation fix by @luhmirin-s in #1667
- MS-1411 Use timestamp model for last location time by @luhmirin-s in #1666
- [MS-1036] Close ImageProxy even when preview is empty to avoid leaks by @BurningAXE in #1668
- MS-1433 Persist data for MFID analytics events across activity recreation by @luhmirin-s in #1669
- Fix 2 memory leaks by @meladRaouf in #1670
- MS-14...
v2026.1.0
Simprints ID 2026.1.0
- Release Date: May 5, 2026 (Beta)
Highlights
Simprints ID 2026.1.0 focuses on important platform improvements and SDK changes. This release introduces SimFace, our in-house face biometric SDK, making it possible to demo SID without requesting ROC licenses. It also removes the NEC SDK due to technical incompatibilities. In addition, this version includes a major refactor of JSON serialization and deserialization, replacing Jackson with Kotlin Serialization to ensure compatibility with older Android OS versions that SID continues to support.
SimFace integration
SID 2026.1.0 enables projects to be configured to use SimFace for face capture, detection, verification, and identification. SimFace is fully developed in-house and does not require a license, making it easier to showcase SID face workflow demos.
NEC removal
The NEC fingerprint SDK has been removed from SID 2026.1.0 because it is not compliant with the new Google Play requirement to support 16 KB page size. As no active projects are currently using NEC, the SDK was removed so SID can continue submitting new updates to Google Play and meet the latest platform requirements.
JSON serialization and deserialization refactor
SID previously relied on Jackson, which now only supports Android API levels above 26, while SID continues to support a minimum API level of 23. Increasing the minimum supported SDK was not feasible, so Jackson was replaced with Kotlin Serialization. Removing Jackson also unblocked updates to several core dependencies, including Retrofit and Protobuf. These changes are strictly under the hood and do not impact user flows or behaviour.
What's Changed
- [CORE-3421] Multi-Factor ID Sync implementation by @alexandr-simprints in #1306
- [MS-1127] Multi-Factor ID: architecture groundwork by @alexandr-simprints in #1358
- [MS-1165] MF-ID: QR scanner screen by @alexandr-simprints in #1369
- [MS-1163] Implementation of the External Credential selection screen by @alexandr-simprints in #1367
- [MS-1190] Refactoring matching module module into
infra:matching+feature:matchby @alexandr-simprints in #1380 - [MS-1164] Multi-Factor ID. OCR Scanner screen by @alexandr-simprints in #1379
- [MS-1194] Add support for simFace allowed age range in ProjectConfiguration by @meladRaouf in #1392
- [MS-1167] MF-ID: Search screen by @alexandr-simprints in #1390
- [MS-1170] MF-ID: Confirm Identity Credential save by @alexandr-simprints in #1396
- MS-1182 "Last sync: " prefix for sync timestamps restored by @alex-vt in #1405
- [MS-1189] MF-ID: Consent update by @alexandr-simprints in #1409
- [MS-1166] MF-ID: Skip Form screen by @alexandr-simprints in #1408
- [MS-1169] MF-ID: Enrol Last, adding a Credential save dialog by @alexandr-simprints in #1407
- [MS-1208] Updating strings.xml with values required in MF-ID feature by @alexandr-simprints in #1417
- [MS-1177] Logout sync UX refinements by @alex-vt in #1418
- MS-1205 MFID events by @luhmirin-s in #1420
- Updates for project Simprints ID by @transifex-integration[bot] in #1419
- Copy full set of am strings to am-ET folder by @luhmirin-s in #1421
- Feature: Multi-Factor Identification by @alexandr-simprints in #1422
- [MS-1213] Creating separate UI layouts for Landscape orientation for tablets and phones by @alexandr-simprints in #1431
- [MS-1215] Using Full-Res image for OCR in MF-ID by @alexandr-simprints in #1432
- [MS-1222] UI Elements no longer resize after fade out animation is finished by @alexandr-simprints in #1435
- [MS-1217] Adding custom OCR configuration by @alexandr-simprints in #1434
- MS-1229 Use same starting time for both external capture events by @luhmirin-s in #1438
- [MS-1223] Enrolment record repository access prevented in sync info after project ID erased by @alex-vt in #1439
- [MS-1220] Fixing incorrect MF-ID resource texts by @alexandr-simprints in #1444
- [MS-1234] Fixing spelling mistake by @alexandr-simprints in #1446
- [MS-1216] Call viewModel.start() only on first creation of SetupFragment by @meladRaouf in #1447
- [MS-1231] Adding a check for credential to see if it is already linked to the subject that needs to be enroled by @alexandr-simprints in #1445
- MS-1228 Enrolment Record update event fix by @luhmirin-s in #1448
- [MS-1214] Validate that Confirmation GUID was in Identification results (cherry-pick) by @BurningAXE in #1451
- [MS-1214] Add test for allowConfirmingGuidsNotInCallback flag by @BurningAXE in #1453
- [MS-1243] Controlling the matcher execution with the
isMatcherRunningflag by @alexandr-simprints in #1462 - [MS-1240] Explicitly stopping camera on External Credential QR screen on pause by @alexandr-simprints in #1461
- [MS-1238] Crash fix: no longer accessing views when Fragment is destroyed by @alexandr-simprints in #1455
- [MS-1239] Fragment correctly restores OCR state after being rotated by @alexandr-simprints in #1456
- [MS-1244] Adding proper migration to updated ENROLMENT_V4 event by @alexandr-simprints in #1463
- MS-1135 Simplifying module APIs with common domain models by @luhmirin-s in #1464
- MS-1135 Combine per-modality duplication code by @luhmirin-s in #1466
- Add ProGuard rules to keep Realm classes and their names by @meladRaouf in #1472
- Remove redundant config refresh by @BurningAXE in #1468
- [MS-1251] Make Simber.w throwable argument non-optional to avoid lumping all warnings together in Crashlytics by @BurningAXE in #1467
- Enable SimFace in staging builds by @luhmirin-s in #1471
- MS-1235 Hiding Audio alert option only if fingerprint modality is configured by @luhmirin-s in #1489
- MS-1006 Minor project manager rework by @luhmirin-s in #1486
- MS-1269 Fully enable SimFace in all builds by @luhmirin-s in #1488
- [MS-799] Simplify CommCareIdentityDataSourceTest by @BurningAXE in #1479
- MS-1148 Sync state use case simplification spike by @luhmirin-s in #1495
- MS-1257 Terminology fix (the easy parts) by @luhmirin-s in #1506
- MS-1257 Terminology fix 2 (the hard parts) by @luhmirin-s in #1508
- MS-1279 Apply annotation target to all qualifier annotations in inject constructors by @luhmirin-s in #1510
- MS-1276 Replace LiveData with Flows in infra modules by @luhmirin-s in #1509
- Replace MacOS version of date with a Linux-compatible one in dev upload script by @luhmirin-s in #1516
- Fix new enrolment check in cases when match result is empty by @luhmirin-s in #1517
- MS-448 Ad-hoc tokenisation improvements by @luhmirin-s in #1520
- MS-448 ConfigManager removal by @luhmirin-s in #1521
- Use Kotlin serialization in the network layer (part 1 of the refactoring) by @meladRaouf in #1519
- [MS-1292] Refactor feature/login to use Kotlin Serialization instead of Jackson by @meladRaouf in #1526
- MS-1291 Add baseline copilot instruction...
v2025.4.2
Simprints ID 2025.4.2
- Release Date: Apr 28, 2026
Highlights
Simprints ID 2025.4 focuses on a major new feature: Multi-Factor Identification (MFID). This release enables projects to enhance searches by scanning a non-biometric credential, such as an ID card or QR code, alongside a patient's finger or face.
Register and search with credentials
Users can now register a non-biometric credential alongside their biometrics. The feature launches with support for QR codes and Ghanaian credentials: NHIS and Ghana Cards.
Enhanced search workflows
The combination of biometrics and non-biometric credentials allows users to find and biometrically verify the correct user.
Flexibility built in
The feature is built flexibly so that users without credentials can fall back to a biometric search.
Built for data collectors
The updated data collector API provides data collection platforms, such as DHIS2, with detailed credential data, enabling improved features on their end.
What's Changed
- MS-1382 Explicitly throw exception on unsuccessful event up/down sync responses by @luhmirin-s in #1613
Full Changelog: v2025.4.1...v2025.4.2
v2025.2.1
Simprints ID 2025.2.1
- Release Date: Jul 13, 2026
This is a minor release containing a translation backport and a sync reliability fix. It is recommended that all users upgrade from Simprints ID 2025.2.0 to this version.
Fixes and improvements
- Backported missing translations from
mainto fill in translation gaps. MS-1382: SID now explicitly throws an exception when an event up/down sync request returns a non-2xx response, ensuring sync failures are properly surfaced instead of being silently treated as successful.
What's Changed
- Hotfix/translations backport by @luhmirin-s in #1278
- MS-1382 Explicitly throw exception on unsuccessful event up/down sync responses by @luhmirin-s in #1617
Full Changelog: v2025.2.0...v2025.2.1
v2025.4.0
Simprints ID 2025.4.0
- Release Date: Feb 9, 2026 (Beta)
Highlights
Simprints ID 2025.4.0 focuses on a major new feature: Multi-Factor Identification (MFID). This release enables projects to enhance searches by scanning a non-biometric credential, such as an ID card or QR code, alongside a patient's finger or face.
Register and search with credentials
Users can now register a non-biometric credential alongside their biometrics. The feature launches with support for QR codes and Ghanaian credentials: NHIS and Ghana Cards.
Enhanced search workflows
The combination of biometrics and non-biometric credentials allows users to find and biometrically verify the correct user.
Flexibility built in
The feature is built flexibly so that users without credentials can fall back to a biometric search.
Built for data collectors
The updated data collector API provides data collection platforms, such as DHIS2, with detailed credential data, enabling improved features on their end.
What's Changed
- [CORE-3421] Multi-Factor ID Sync implementation by @alexandr-simprints in #1306
- [MS-1127] Multi-Factor ID: architecture groundwork by @alexandr-simprints in #1358
- [MS-1165] MF-ID: QR scanner screen by @alexandr-simprints in #1369
- [MS-1163] Implementation of the External Credential selection screen by @alexandr-simprints in #1367
- [MS-1190] Refactoring matching module module into
infra:matching+feature:matchby @alexandr-simprints in #1380 - [MS-1164] Multi-Factor ID. OCR Scanner screen by @alexandr-simprints in #1379
- merge Release/2025.3.0 by @meladRaouf in #1385
- [MS-1194] Add support for simFace allowed age range in ProjectConfiguration by @meladRaouf in #1392
- [MS-1167] MF-ID: Search screen by @alexandr-simprints in #1390
- Bump simmatcher version to 1.3.0 by @meladRaouf in #1394
- [MS-1170] MF-ID: Confirm Identity Credential save by @alexandr-simprints in #1396
- Release/2025.3.0 back-merge by @luhmirin-s in #1398
- MS-1182 "Last sync: " prefix for sync timestamps restored by @alex-vt in #1405
- [MS-1189] MF-ID: Consent update by @alexandr-simprints in #1409
- [MS-1166] MF-ID: Skip Form screen by @alexandr-simprints in #1408
- [MS-1169] MF-ID: Enrol Last, adding a Credential save dialog by @alexandr-simprints in #1407
- [MS-1208] Updating strings.xml with values required in MF-ID feature by @alexandr-simprints in #1417
- [MS-1177] Logout sync UX refinements by @alex-vt in #1418
- MS-1205 MFID events by @luhmirin-s in #1420
- Updates for project Simprints ID by @transifex-integration[bot] in #1419
- Copy full set of am strings to am-ET folder by @luhmirin-s in #1421
- [MF-ID] Preview build 2025.4.0 by @alexandr-simprints in #1410
- Feature: Multi-Factor Identification by @alexandr-simprints in #1422
- Merge/main/2025.3.0 by @meladRaouf in #1424
- [MS-1213] Creating separate UI layouts for Landscape orientation for tablets and phones by @alexandr-simprints in #1431
- [MS-1215] Using Full-Res image for OCR in MF-ID by @alexandr-simprints in #1432
- [MS-1222] UI Elements no longer resize after fade out animation is finished by @alexandr-simprints in #1435
- [MS-1217] Adding custom OCR configuration by @alexandr-simprints in #1434
- MS-1229 Use same starting time for both external capture events by @luhmirin-s in #1438
- [MS-1223] Enrolment record repository access prevented in sync info after project ID erased by @alex-vt in #1439
- [MS-1220] Fixing incorrect MF-ID resource texts by @alexandr-simprints in #1444
- [MS-1234] Fixing spelling mistake by @alexandr-simprints in #1446
- [MS-1216] ] Call viewModel.start() only on first creation of SetupFragment by @meladRaouf in #1447
- 2025.3.0 bugfix cherry-pick onto 2025.4.0 by @luhmirin-s in #1449
- [MS-1231] Adding a check for credential to see if it is already linked to the subject that needs to be enroled by @alexandr-simprints in #1445
- MS-1228 Enrolment Record update event fix by @luhmirin-s in #1448
- [MS-1214] Validate that Confirmation GUID was in Identification results (cherry-pick) by @BurningAXE in #1451
- [MS-1214] Add test for allowConfirmingGuidsNotInCallback flag by @BurningAXE in #1453
- [MS-1243] Controlling the matcher execution with the
isMatcherRunningflag by @alexandr-simprints in #1462 - [MS-1240] Explicitly stopping camera on External Credential QR screen on pause by @alexandr-simprints in #1461
- [MS-1238] Crash fix: no longer accessing views when Fragment is destroyed by @alexandr-simprints in #1455
- [MS-1239] Fragment correctly restores OCR state after being rotated by @alexandr-simprints in #1456
- [MS-1244] Adding proper migration to updated ENROLMENT_V4 event by @alexandr-simprints in #1463
- [MS-1272] Back button on MF-ID sub-workflow screens now navigate to the 'skip credential scan' screen by @alexandr-simprints in #1497
- [MS-1271] Identification results now always return the MF-ID credential matches first, ignoring the confidence threshold by @alexandr-simprints in #1496
- [MS-1290] Each credential match now produces a OneToOne event by @alexandr-simprints in #1532
Full Changelog: v2025.3.0...v2025.4.0
v2025.3.1
Simprints ID 2025.3.1
- Release Date: Nov 11, 2025
This is a minor release containing bug fixes and small improvements. It is recommended that all users upgrade from Simprints ID 2025.3.0 to this version to ensure maximum stability.
Fixes and improvements
- Added additional checks when confirming a 1:N result to ensure that the confirmed GUID appeared in the original list of results (
MS-1214). - Resolved a bug where records were wiped from a user's device following changes to the Vulcan sync schedule (
MS-1225). - Handled a crash triggered when a user updates the app before a session is closed (
MS-1224;com.simprints.core.tools.json.JsonHelper.fromJson).
What's Changed
- MS-1225 Do not reset local data when sync frequency changes by @luhmirin-s in #1437
- MS-1224 closing session on update by @luhmirin-s in #1436
- [MS-1214] Validate that Confirmation GUID was in Identification results by @BurningAXE in #1433
- [MS-1214] Add test for allowConfirmingGuidsNotInCallback flag by @BurningAXE in #1452
Full Changelog: v2025.3.0...v2025.3.1
v2025.3.0
Simprints ID 2025.3.0
- Release Date: Oct 22, 2025
Highlights
CoSync performance improvements
Simprints ID 2024.1 introduced CoSync 1:N functionality, allowing SID to access biometric templates from CommCare projects. This release refines that implementation by changing how records are read, significantly reducing 1:N matching times.
Sync UI/UX improvements
Simprints ID allows users to manually synchronise biometric records and events. This is very helpful for devices with ad-hoc connectivity, however users fed back that the level of information and control when syncing could be improved. This release gives users more information on what is being synced and the progress of each individual sync.
Selected features, bug fixes, and improvements
MS-1039: Added flashlight controls. If your device has a flashlight, you can now use it to get the best capture possible in low-light conditions.MS-1061: Resolved an issue where logging out from one project and into another could lead to loss of synced records.
What's Changed
- Bump kermit_version from 2.0.5 to 2.0.6 by @dependabot[bot] in #1224
- [MS-1031] Remove App Sweep step from internal deployment pipeline by @meladRaouf in #1231
- Bump robolectric_version from 4.14.1 to 4.15.1 by @dependabot[bot] in #1238
- Bump androidx_room_version from 2.7.1 to 2.7.2 by @dependabot[bot] in #1236
- Bump androidx_work_version from 2.10.1 to 2.10.2 by @dependabot[bot] in #1237
- Bump com.google.crypto.tink:tink-android from 1.17.0 to 1.18.0 by @dependabot[bot] in #1235
- Bump com.simprints.biometrics:simface from 2025.2.1 to 2025.3.0 by @dependabot[bot] in #1234
- Fix SimFace initialisation in latest version by @luhmirin-s in #1240
- Bump mockk_version from 1.14.2 to 1.14.4 by @dependabot[bot] in #1242
- Bump gsm_plugin_version from 4.4.2 to 4.4.3 by @dependabot[bot] in #1241
- Bump com.google.firebase:firebase-analytics from 22.4.0 to 22.5.0 by @dependabot[bot] in #1245
- Bump android_gradlePlugin_version from 8.10.1 to 8.11.0 by @dependabot[bot] in #1243
- [MS-932] Improve CoSync analytics part 1 - add biometricDataSource to Callout event by @BurningAXE in #1217
- Add biometricDataSource to expectedKeys of Enrol, Identify and Verify requests by @BurningAXE in #1230
- MS-122 Secure prefs everywhere by @luhmirin-s in #1221
- MS-997 Reset local records when sync partitioning changes by @luhmirin-s in #1219
- Add explicit assertions on withArg in the unit tests by @BurningAXE in #1227
- Provide default base url if is none in the legacy prefs by @luhmirin-s in #1246
- Bump androidx_navigation_version from 2.9.0 to 2.9.1 by @dependabot[bot] in #1248
- Merage Release/2025.2.0 into main by @meladRaouf in #1252
- MS-1058 Prep work for sample upload with signed urls by @luhmirin-s in #1251
- MS-941/MS-1058 Update sync configuration to the new structure by @luhmirin-s in #1254
- Bump android_gradlePlugin_version from 8.11.0 to 8.11.1 by @dependabot[bot] in #1260
- Bump com.google.android.gms:play-services-base from 18.7.0 to 18.7.2 by @dependabot[bot] in #1259
- MS-1058 Implementation of signed url sample upload by @luhmirin-s in #1255
- MS-1039 Add camera flash button if available on the device by @luhmirin-s in #1266
- Bump androidx_lifecycle_version from 2.9.1 to 2.9.2 by @dependabot[bot] in #1273
- Bump commons-io:commons-io from 2.19.0 to 2.20.0 by @dependabot[bot] in #1271
- Bump mockk_version from 1.14.4 to 1.14.5 by @dependabot[bot] in #1270
- Updates for project Simprints ID by @transifex-integration[bot] in #1276
- Hotfix/translations backport by @luhmirin-s in #1278
- Bump androidx_navigation_version from 2.9.1 to 2.9.2 by @dependabot[bot] in #1272
- [MS-855] generate bulk of biometric records by @meladRaouf in #1263
- MS-124 Use decision policy to determine very good/good/fair matches by @luhmirin-s in #1277
- 2025.2.0 Backport by @luhmirin-s in #1280
- MS-1070 Persistent step cache fix by @luhmirin-s in #1274
- Automation triggers by @luhmirin-s in #1281
- Bump firebase_crashlyticsPlugin_version from 3.0.4 to 3.0.5 by @dependabot[bot] in #1286
- Bump firebase_perfPlugin_version from 1.4.2 to 2.0.0 by @dependabot[bot] in #1285
- Bump com.google.firebase:firebase-storage from 21.0.2 to 22.0.0 by @dependabot[bot] in #1283
- Bump com.google.firebase:firebase-analytics from 22.5.0 to 23.0.0 by @dependabot[bot] in #1284
- Fix Firebase Imports & Dependencies by @meladRaouf in #1288
- Parse the variable to ensure it is likelier to turn into a number by @luhmirin-s in #1291
- Bump androidx_navigation_version from 2.9.2 to 2.9.3 by @dependabot[bot] in #1296
- Bump espresso_version from 3.6.1 to 3.7.0 by @dependabot[bot] in #1298
- Bump android_gradlePlugin_version from 8.11.1 to 8.12.0 by @dependabot[bot] in #1297
- Bump androidx_work_version from 2.10.2 to 2.10.3 by @dependabot[bot] in #1300
- Bump androidx.test:runner from 1.6.2 to 1.7.0 by @dependabot[bot] in #1299
- MS-1062 Add logging to application class to attempt to track the state by @luhmirin-s in #1301
- [MS-1093] Implement bulk session event generation and insertion logic by @meladRaouf in #1295
- MS-976 Close event scope after down-syncing a single subject by @luhmirin-s in #1302
- Add AI exclusions file according to best practices by @luhmirin-s in #1305
- MS-109 Add custom field for installed version history tracking by @luhmirin-s in #1304
- Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #1312
- Bump androidx.test:orchestrator from 1.5.1 to 1.6.1 by @dependabot[bot] in #1311
- Bump firebase_crashlyticsPlugin_version from 3.0.5 to 3.0.6 by @dependabot[bot] in #1309
- Bump com.google.firebase:firebase-auth from 24.0.0 to 24.0.1 by @dependabot[bot] in #1308
- Bump net.zetetic:sqlcipher-android from 4.9.0 to 4.10.0 by @dependabot[bot] in #1307
- Bump androidx.test.ext:junit from 1.2.1 to 1.3.0 by @dependabot[bot] in #1313
- Bump androidx.security:security-crypto from 1.0.0 to 1.1.0 by @dependabot[bot] in #1315
- Bump firebase_perfPlugin_version from 2.0.0 to 2.0.1 by @dependabot[bot] in #1314
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #1320
- Bump androidx.core:core-ktx from 1.16.0 to 1.17.0 by @dependabot[bot] in #1319
- Bump androidx_fragment_version from 1.8.8 to 1.8.9 by @dependabot[bot] in #1321
- [MS-1044] CoSync Background Syncing - Phase 1 (MVP) by @BurningAXE in #1247
- [MS-1112] Always attempt showing foregr...
v2025.2.0
Simprints ID 2025.2.0
- Release Date: Nov 17, 2025
Simprints ID 2025.2.0 is a major release with a focus on stability improvements.
Highlights
Database migration
The current database SID uses to store records on Android devices, Realm, will no longer be supported going forward. This release introduces a new database, Room, and support for migrating records from Realm to Room in a seamless way that won't impact user experience. An added benefit of Room is that it appears to significantly increase the speed of 1:N matching across devices.
1:N metadata support
Metadata is Simprints' solution for passing custom data to Simprints ID when performing biometric operations. This was previously supported in all operations except 1:N confirmations. This is now supported, which may be helpful for projects wishing to pass intervention data to SID at a later stage in a 1:N session.
Selected features, bug fixes, and improvements
- Updates to support automated testing.
- Improved UI for face capture instructions.
- Foundational work to facilitate enrolment record updates in the future.
- CoSync analytics improvements.
What's Changed
- Back-merge release/2025.1.0 into main by @luhmirin-s in #1118
- Bump android_gradlePlugin_version from 8.8.1 to 8.8.2 by @dependabot[bot] in #1120
- Bump mockk_version from 1.13.16 to 1.13.17 by @dependabot[bot] in #1121
- Bump com.google.firebase:firebase-analytics from 22.2.0 to 22.3.0 by @dependabot[bot] in #1119
- Bump androidx_navigation_version from 2.8.7 to 2.8.8 by @dependabot[bot] in #1123
- [MS-919] Organize Enrolment Records Modules by @meladRaouf in #1117
- MS-871 Record update support by @luhmirin-s in #1088
- MS926 Upload count fixes by @luhmirin-s in #1127
- [MS-925] Run modality migrations only if modality is present in configuration by @BurningAXE in #1124
- [MS-929] Fix 1:N pool count for CoSync by @BurningAXE in #1128
- SM-673 Add basic PR templates by @luhmirin-s in #1129
- MS-673 Use combined PR template by @luhmirin-s in #1130
- Bump android_gradlePlugin_version from 8.8.2 to 8.9.0 by @dependabot[bot] in #1133
- Bump androidx.coordinatorlayout:coordinatorlayout from 1.2.0 to 1.3.0 by @dependabot[bot] in #1136
- Bump androidx.datastore:datastore from 1.1.2 to 1.1.3 by @dependabot[bot] in #1134
- improve OkHttpClient reuse & efficiency by @meladRaouf in #1131
- merge Release/2025.1.0 into main by @meladRaouf in #1137
- Bump androidx.constraintlayout:constraintlayout from 2.2.0 to 2.2.1 by @dependabot[bot] in #1144
- Bump com.google.crypto.tink:tink-android from 1.16.0 to 1.17.0 by @dependabot[bot] in #1143
- Bump com.google.firebase:firebase-crashlytics from 19.4.0 to 19.4.1 by @dependabot[bot] in #1141
- Bump androidx_navigation_version from 2.8.8 to 2.8.9 by @dependabot[bot] in #1140
- [MS-936] Fix the db locked issue by Refactor EventDatabaseFactory to create a single instance of the event DB by @meladRaouf in #1139
- MS-245 Better enrol last error by @luhmirin-s in #1145
- Bump com.google.firebase:firebase-crashlytics from 19.4.1 to 19.4.2 by @dependabot[bot] in #1149
- Bump hilt_version from 2.55 to 2.56 by @dependabot[bot] in #1148
- Bump com.google.android.gms:play-services-base from 18.5.0 to 18.6.0 by @dependabot[bot] in #1147
- Bump com.google.firebase:firebase-perf from 21.0.4 to 21.0.5 by @dependabot[bot] in #1146
- MS-930 Implement stateful face matcher that reduces amount of allocations by @luhmirin-s in #1151
- MS-904 Remove unsupported language files by @luhmirin-s in #1153
- Bump sonar_plugin_version from 6.0.1.5171 to 6.1.0.5360 by @dependabot[bot] in #1159
- Bump androidx.datastore:datastore from 1.1.3 to 1.1.4 by @dependabot[bot] in #1157
- Bump hilt_version from 2.56 to 2.56.1 by @dependabot[bot] in #1155
- Bump android_gradlePlugin_version from 8.9.0 to 8.9.1 by @dependabot[bot] in #1156
- [MS-961] Remove templateQualityScore from FingerprintSample by @meladRaouf in #1154
- MS-828 MD file review by @luhmirin-s in #1160
- Bump com.google.firebase:firebase-analytics from 22.3.0 to 22.4.0 by @dependabot[bot] in #1166
- Bump kotlin_coroutine_version from 1.10.1 to 1.10.2 by @dependabot[bot] in #1165
- Bump androidx_camerax_version from 1.4.1 to 1.4.2 by @dependabot[bot] in #1167
- Bump androidx_room_version from 2.6.1 to 2.7.0 by @dependabot[bot] in #1168
- MS-969 Another stab at edge-to-edge support by @luhmirin-s in #1162
- Bump androidx.core:core-ktx from 1.15.0 to 1.16.0 by @dependabot[bot] in #1176
- Bump org.jacoco:org.jacoco.core from 0.8.12 to 0.8.13 by @dependabot[bot] in #1175
- Bump commons-io:commons-io from 2.18.0 to 2.19.0 by @dependabot[bot] in #1174
- Bump hilt_version from 2.56.1 to 2.56.2 by @dependabot[bot] in #1172
- [MS-961] [MS-961] Update Realm schema version to 17 by @meladRaouf in #1171
- Bump com.simprints:libsimprints from 2025.1.3-SNAPSHOT to 2025.1.3 by @dependabot[bot] in #1181
- [MS-973] Fix sorting logic in MatchResultSet to handle equal confidence scores by @meladRaouf in #1170
- [MS-971] Bump sqlCipher-core from 4.5.4 to 4.7.2 by @meladRaouf in #1163
- [MS-580] Removing remaining NavController::navigate - from READMEs by @alex-vt in #1178
- [MS-120] Skipping non-existent privacy notice download 404 logging by @alex-vt in #1179
- [MS-862] Skipping Preparation for face Capture after 1st time + Instructions button. by @alex-vt in #1177
- Bump mockk_version from 1.13.17 to 1.14.2 by @dependabot[bot] in #1186
- Bump android_gradlePlugin_version from 8.9.1 to 8.10.0 by @dependabot[bot] in #1184
- Bump androidx_lifecycle_version from 2.8.7 to 2.9.0 by @dependabot[bot] in #1185
- Bump androidx_room_version from 2.7.0 to 2.7.1 by @dependabot[bot] in #1183
- Bump androidx_navigation_version from 2.8.9 to 2.9.0 by @dependabot[bot] in #1182
- MS-951: Add git tag release step to pipeline-deploy-to-internal by @meladRaouf in #1188
- Bump sonar_plugin_version from 6.1.0.5360 to 6.2.0.5505 by @dependabot[bot] in #1191
- Bump retrofit_version from 2.9.0 to 3.0.0 by @dependabot[bot] in #1190
- Bump androidx_fragment_version from 1.8.6 to 1.8.7 by @dependabot[bot] in #1195
- Bump com.google.android.gms:play-services-base from 18.6.0 to 18.7.0 by @dependabot[bot] in #1196
- Bump com.google.firebase:firebase-auth from 23.2.0 to 23.2.1 by @dependabot[bot] in #1198
- Bump androidx.datastore:datastore from 1.1.4 to 1.1.7 by @dependabot[bot] in #1197
- Bump protobuf_plugin_version from 0.9.4 to 0.9.5 by @dependabot[bot] in #1199
- [MS-949] Introduce Concurrency for Face and Fingerprint Matching by @meladRaouf in https...
v2025.1.0
Simprints ID 2025.1.0
- Release Date: Mar 17, 2025 (Beta)
Simprints ID 2025.1.0 is a major release which includes a mixture of new features and stability improvements. Looking ahead to Gavi Ghana 2 scale up, we have continued to add refinements, most notably with our first ever face auto-capture implementation.
Warning: As this version contains a breaking bug on devices using Android 6 and 7, this release should never be published as Production on Google Play Store.
Highlights
Face autocapture (experimental)
Projects can try out the new experimental autocapture feature, which should make capturing much easier, particularly for more mobile subjects.
Advanced troubleshooting
Users are now just 5 secret taps away from information that will help us understand their device, past workflows, and what might be going wrong if they have issues.
Manual config sync
SID now includes a button to manually update configuration, meaning users won't need to wait for SID to sync configuration in the background.
Selected features, bug fixes, and improvements
- Improved UI for record matching, showing more detailed progress against the total records on the device.
- Transformed the tier categorisation returned by SID to match the decision policy, providing more meaningful insight to result categories.
- Refreshed the fingerprint capture UI.
- Added a configurable threshold to limit the number of
No finger detectedscan attempts. - Improvements to CoSync functionality aimed at improving accuracy.
- Fixed an issue where Vero scanners temporarily lose connection.
- Resolved the Split Session Bug, which was creating multiple session IDs across a workflow.
What's Changed
- MS-197 Assemble consent text using activity context instead of application by @luhmirin-s in #875
- MS-364 Do not show consent screen if consent not required by @luhmirin-s in #874
- MS-671 Replace custom constructor with factory method in setting password dialog fragment by @luhmirin-s in #876
- MS-407 Licence renewal if face SDK init fails by @luhmirin-s in #878
- MS-276 Respect subject query by @luhmirin-s in #880
- [MS-697] Ask the user to retry NFC pairing after the tag has left the field by @meladRaouf in #881
- MS-569 Add more info logging in the orchestrator activity by @luhmirin-s in #882
- Revert protobuf version update by @luhmirin-s in #887
- [MS-474] use secugen wsq decoder by @meladRaouf in #879
- MS-617 commcare session id fix by @luhmirin-s in #889
- MS-605 enrolment record created by @luhmirin-s in #890
- MS-617 Take into account blank session IDs as well by @luhmirin-s in #891
- [MS-710] Add UNCOOPERATIVE_CHILD exit option by @meladRaouf in #895
- MS-718 Use accurate face detection method from ROC v3 by @luhmirin-s in #900
- MS-676 Sync config button by @luhmirin-s in #907
- MS-71 Moving image manipulation closer to CameraX API by @luhmirin-s in #906
- [MS-491] limit fingerprint scan attempts by @alexandr-simprints in #905
- [MS-719] Missing callback event after license error by @alexandr-simprints in #908
- [MS-732] address hilt and ksp compatibility issue by @meladRaouf in #914
- Revert "[MS-732] address hilt and ksp compatibility issue" by @meladRaouf in #917
- [MS-732] Fix ProGuard issue causing release build failure with Hilt modules by @meladRaouf in #916
- Ms 720 add audio notification for finger removal after scanning by @meladRaouf in #913
- [MS-742] Remove ProGuard rules from library modules and consolidate them in the app module by @meladRaouf in #918
- MS-760 Project configuration ID by @luhmirin-s in #934
- MS-773 Limit module list logging to avoid crashes in debug by @luhmirin-s in #943
- [MS-104] Update the scanner mock module to simulate the latest UN20 commands by @meladRaouf in #957
- MS-825 Ignore image transfer cancellation exception to avoid breaking user flow by @luhmirin-s in #980
- Refresh full project configuration when requested by @luhmirin-s in #983
- [MS-790] Add follow-up steps to session steps instead of replacing them by @BurningAXE in #970
- MS-801 Add data export button to alert screen by @luhmirin-s in #974
- Remove the duplicate Audio Alert preference in the dashboard settings by @ybourgery in #993
- [MS-826] Implement concurrent execution in scanner module by @meladRaouf in #982
- Send STM OTA GO_ADDRESS command with lock by @BurningAXE in #994
- [MS-831] Ensure audio alerts play immediately by @meladRaouf in #995
- Do not consider caller package name unexpected paramerer by @luhmirin-s in #997
- [MS-826] Refactor MessageChannel to use coroutines instead of RxJava for handling message sending and receiving by @meladRaouf in #1002
- MS-802 Troubleshooting screen base by @luhmirin-s in #984
- [MS-565] Ensure any needed firmware is downloaded after successful login by @BurningAXE in #998
- MS-803 Network troubleshooting information by @luhmirin-s in #985
- MS-804 Troubleshooting event scope log by @luhmirin-s in #996
- MS-806 Basic worker info log by @luhmirin-s in #1005
- MS-805 Vero information in troubleshooting overview by @luhmirin-s in #1006
- BONUS: Troubleshooting module by @luhmirin-s in #1007
- MS-628 Use the new LibSimprints data models if intent comes for latest LibSimprints version by @luhmirin-s in