Driver & SDK | Description | Version | Release Notes | Supported OS Platform | File | Checksum (SHA256) |
---|
| AirID SDK for Android | AirID SDK for Android | 3.0. | 0-GA2 Improvements & Changes- Make use of Nordic Bluetooth Libs instead of native implementations for compatibility
- "no.nordicsemi.android:ble" and "no.nordicsemi.android.support.v18:scanner" have to be added as dependency (see HowTo documentation)
- Updates of DeviceConnector class are published from the UI thread
- Integrated pairing process in DeviceConnector class
- DeviceConnector registers a Reciever for ACTION_PAIRING_REQUEST to handle it within the SDK instead of using the system
- A popup with the passkey is displayed and connection is initiated after accepting
- This can be enabled/disabled by calling DeviceConnector#enablePairing
- DeviceListener API change:
- removed #onPairingFailed(AirIdCardTerminal
- added #onPaired(AirIdCardTerminal, boolean)
- Added support for new Settings
- BLEPrivacy: Off, RandomMac, AnonymousAdvertising, All
- BLENightMode: Disabled, Enabled
- USBMode: Flash, Card, FIDO2, Charge
- FidoAutoUserPresence: Disabled, Enabled
- BleFidoServiceRevision: FIDO2, U2F
- Marked Settings as deprecated
- since FW 1.4.0: SignalStrength, AdvertisingMode, ContrastLevel
- since FW 2.2.0: DisplaySetting, BacklightSetting
- Added support for new DeviceDescriptor keys: "ota", "fido", "rk"
- Added unpair behavior if notifications could not be registered indicating broken paring caused by resetting the AirID
- Added support for T=0, T=1 (compatible with firmware > 2.2.0)
- manual connect: AirIdCardTerminal#connect
- auto connect: DeviceConnector#setProtocol
- the chard gets reconnected on protocol update
- Connection can be recovered if pairing is lost no matter what side lost the Pairing
- Connection can be recovered if a firmware update changes BLE services
- Updated HowTo documentation for permissions:
- The application has to request permission ACCESS_COARSE_LOACTION on runtime. BLE can not be used.
- Refactored security code to use Bouncy Castle library for encryption
- "org.bouncycastle:bcpkix-jdk15to18" and "org.bouncycastle:bcprov-jdk15to18" have to be added as dependency (see HowTo documentation)
- Optimized GATT transmission speed (Firmware > 2.2.0)
- Firmware updares are speed up by factor ~3
Bugfixes- Fixed concurrency issues during pairing and connection process
- Fixed a connection bug related to outdated LTK
- Fixed previos undefined behavior if connection was lost before established compleatly
- Fixed a bug where AirIdCardTerminal#wairForCardPresent waited even thoug the connection was lost
- Fixed issues during automatic pairing caused by asyncrounously waiting for the system component
- Fixed bugs related to Nordic lib refactoring (pairing and connect)
- Fixed a bug where the long term key (LTK) could not be saved/loaded when AirIdCardTerminal#setPackageName was not called
- Fixed resourceleak where Bluetooth Receivers where not unregistered
- Fixed a bug resulting in wrong MTU length
Removed- Removed deprecated function AirIdCardTerminal#receiveCardInfo
- Use of deprecated indications RepeatCardStatus and RepeatUsbCableState
- Compatibilitiy to prior to but not including AirID1 (not AirID2) Firmware 1.2.1 / 1.3.0-GOV
- Removed compatibility code that used ECB encryption
| - compiled for API 30;
- minSdk is still at API 24
- Android Studio 2020.3.1 Patch 4
- gradle 7.0.2
| AirID-Android-SDK-v3.0.0-GA2.zipAirID-Android-SDK-v3.0.0-GA.zip.sha2_256
AirID SDK for Android | AirID SDK for Android | 2.0.3-GA | Improvements & Changes- Cleanup release code for RCPTunnelService
- Stabalized connection process
- Handling of sporadic exceptions when disconnect
- Optimized DeviceConnector for reconnect reliability
Bugfixes- Fixed release of Bluetooth Receiver
- Fixed sporadic Exceptions when Androids Bluetooth Stack resets itself
- Fixed deadlock in DeviceConnector
| - compiled for API 30;
- minSdk is still at API 23
- Android Studio 2020.3.1 Patch 3
- gradle 6.1.1
| | |
3-GA 08.04.2022 | Bugfixes- Fixed accidential obfuscation of DeviceConnector.Protocol
- Set correct protocol after card reset without disconnect
| - compiled for API 30;
- minSdk is still at API 24
- Android Studio 2020.3.1 Patch 4
- gradle 7.0.2
| | |
| AirID SDK for Android | 3.0.2-GA2 24.03.2022 | Improvements & Changes- Increased timeouts for card communication from 20s to 60s
- Optimized transmition rate for small packages
- Improved setProtocol behavior for CardTerminal#connect and DeviceConnector#setProtocol:
- "T=0" and "T=1" will always be favored, if supported by the card and Firmware >= 2.3.0
- Firmware < 2.3.0 always selects the first appearing protocol of the ATR
- "*" always selects the first appearing protocol of the ATR
- after connection the protocol in use can be obtained using Card#setProtocol, this may differ from the protocol previously passed but will always be one of "T=0" and "T=1"
Bugfixes- Fixed a regression where connection to AirID1 was broken
- Fixed a logic error regarding fallback szenarios on setProtocol
| - compiled for API 30;
- minSdk is still at API 24
- Android Studio 2020.3.1 Patch 4
- gradle 7.0.2
| AirID-Android-SDK-v3.0.2-GA2.zip | |
| AirID SDK for Android | 3.0.1-GA 14.02.2022 | Improvements & Changes- Added AirIdCardTerminal#getApduCommandSize and AirIdCardTerminal#getApduResponseSize
- Context used for register and unregister Receivers is not changed to getApplicationContext
- Applications may have to pass getApplicationContext() instead of (Activity)this when calling DeviceConnector or TerminalFactory if used across Activity boundries
- Added documentation for Android 12 (SDK 31) Permissions
- Added documentation for AirIdCardTerminal#waitForConnection for manual connection
Bugfixes- Fixed unregistration of Receivers registered by BLEManager of 3rd-party library
| - compiled for API 30;
- minSdk is still at API 24
- Android Studio 2020.3.1 Patch 4
- gradle 7.0.2
| | |
| AirID SDK for Android | 3.0.0-GA2 | Improvements & Changes- Make use of Nordic Bluetooth Libs instead of native implementations for compatibility
- "no.nordicsemi.android:ble" and "no.nordicsemi.android.support.v18:scanner" have to be added as dependency (see HowTo documentation)
- Updates of DeviceConnector class are published from the UI thread
- Integrated pairing process in DeviceConnector class
- DeviceConnector registers a Reciever for ACTION_PAIRING_REQUEST to handle it within the SDK instead of using the system
- A popup with the passkey is displayed and connection is initiated after accepting
- This can be enabled/disabled by calling DeviceConnector#enablePairing
- DeviceListener API change:
- removed #onPairingFailed(AirIdCardTerminal
- added #onPaired(AirIdCardTerminal, boolean)
- Added support for new Settings
- BLEPrivacy: Off, RandomMac, AnonymousAdvertising, All
- BLENightMode: Disabled, Enabled
- USBMode: Flash, Card, FIDO2, Charge
- FidoAutoUserPresence: Disabled, Enabled
- BleFidoServiceRevision: FIDO2, U2F
- Marked Settings as deprecated
- since FW 1.4.0: SignalStrength, AdvertisingMode, ContrastLevel
- since FW 2.2.0: DisplaySetting, BacklightSetting
- Added support for new DeviceDescriptor keys: "ota", "fido", "rk"
- Added unpair behavior if notifications could not be registered indicating broken paring caused by resetting the AirID
- Added support for T=0, T=1 (compatible with firmware > 2.2.0)
- manual connect: AirIdCardTerminal#connect
- auto connect: DeviceConnector#setProtocol
- the chard gets reconnected on protocol update
- Connection can be recovered if pairing is lost no matter what side lost the Pairing
- Connection can be recovered if a firmware update changes BLE services
- Updated HowTo documentation for permissions:
- The application has to request permission ACCESS_COARSE_LOACTION on runtime. BLE can not be used.
- Refactored security code to use Bouncy Castle library for encryption
- "org.bouncycastle:bcpkix-jdk15to18" and "org.bouncycastle:bcprov-jdk15to18" have to be added as dependency (see HowTo documentation)
- Optimized GATT transmission speed (Firmware > 2.2.0)
- Firmware updares are speed up by factor ~3
Bugfixes- Fixed concurrency issues during pairing and connection process
- Fixed a connection bug related to outdated LTK
- Fixed previos undefined behavior if connection was lost before established compleatly
- Fixed a bug where AirIdCardTerminal#wairForCardPresent waited even thoug the connection was lost
- Fixed issues during automatic pairing caused by asyncrounously waiting for the system component
- Fixed bugs related to Nordic lib refactoring (pairing and connect)
- Fixed a bug where the long term key (LTK) could not be saved/loaded when AirIdCardTerminal#setPackageName was not called
- Fixed resourceleak where Bluetooth Receivers where not unregistered
- Fixed a bug resulting in wrong MTU length
Removed- Removed deprecated function AirIdCardTerminal#receiveCardInfo
- Use of deprecated indications RepeatCardStatus and RepeatUsbCableState
- Compatibilitiy to prior to but not including AirID1 (not AirID2) Firmware 1.2.1 / 1.3.0-GOV
- Removed compatibility code that used ECB encryption
| - compiled for API 30;
- minSdk is still at API 24
- Android Studio 2020.3.1 Patch 4
- gradle 7.0.2
| AirID-Android-SDK-v3.0.0-GA2 | AirID SDK for Android | AirID SDK for Android | 2.0.2-GA | Improvements & Changes- Reveal all public methods throght the obvuscator instead of naming them individually
- Replaced remaining busy loops with wait (AirIdCardTerminal#waitForConnection, FutureValue#get)
- Replaced Exception#printStackTrace with call to Log
- AirIdCardTerminal#waitForCardPresent and #waitForCardAbsent throw an Exception when connection is not established or lost to prevent wrong useage
- Updated gradle targetSdkVersion to 30
- Unregister android.content.BroadcastReceiver in all cases
| - compiled for API 30;
- minSdk is still at API 23
- Android Studio 4.2.1
- gradle 6.1.1
| AirID-Android-SDK-v2.0.2-GA.zip | AirID-Android-SDK-v2v3.0.20-GA.zip.sha2_256 |
AirID SDK for Android | AirID SDK for Android | 2.0. | 13-GA | Improvements & Changes | - Fixed some regressions in regards to update callbacks when something goes wrong in between
- Changed Android Support Library to use the AndroidX 1.2.0 Support Library
Removed Functionality
- Removed allowBackup in SDK manifest
- Cleanup release code for RCPTunnelService
- Stabalized connection process
- Handling of sporadic exceptions when disconnect
- Optimized DeviceConnector for reconnect reliability
Bugfixes- Fixed release of Bluetooth Receiver
- Fixed sporadic Exceptions when Androids Bluetooth Stack resets itself
- Fixed deadlock in DeviceConnector
| | compiled for Android 10 (API 29)- ;
- minSdk is still at API 23
- Android Studio
| 4 | .0 | | 1 | | 1 |
AirID SDK for Android | AirID SDK for Android | 2.0.02-GA New Functions- NEW Over-The-Air (OTA) AirID firmware update function
- AirID firmware update includes download from AirID update server and wireless transfer via BLE to AirID device
- Firmware update can be called manually and automatic through AirIDCardTerminal class
- Current Firmware Version can be obtained through AirIDCardTerminal class
- dependency on ed25519 library is required for this feature
- Added support for AirID2 Firmware 2.0.0
- Added pairing option from within SDK when using DeviceConnector
Improvements & Changes- Updated Documentation to include manual and automatically updates via SDK
- Marked deprecated functionality
- CardType and CardOS
- Settings: SignalStrength, AdvertisingMode, ContrastLevel
- Enhanced logging
- Permissions are now managed individually on APP level, not by SDK
Fixed- Fixed issues in regards to BluetoothGATT references
Removed FunctionalityRemoved permissions from SDK library. Apps are now free to define & manage their individual required permissions on their own. | Improvements & Changes- Reveal all public methods throght the obvuscator instead of naming them individually
- Replaced remaining busy loops with wait (AirIdCardTerminal#waitForConnection, FutureValue#get)
- Replaced Exception#printStackTrace with call to Log
- AirIdCardTerminal#waitForCardPresent and #waitForCardAbsent throw an Exception when connection is not established or lost to prevent wrong useage
- Updated gradle targetSdkVersion to 30
- Unregister android.content.BroadcastReceiver in all cases
| - compiled for API 30;
- minSdk is still at API 23
- Android Studio 4.2.1
- gradle 6.1.1
| AirID-Android-SDK-v2.0.2-GA.zip | |
AirID SDK for Android | AirID SDK for Android | 2.0.1-GA | Improvements & Changes- Fixed some regressions in regards to update callbacks when something goes wrong in between
- Changed Android Support Library to use the AndroidX 1.2.0 Support Library
Removed Functionality- Removed allowBackup in SDK manifest
| - compiled for Android 10 (API 29);
- minSdk is still at API 23
- Android Studio 4.1.0
- gradle 6.1.1
| | Driver | 0 | AirID-Android- | DriverSDK-v2.0. | 01-GA.zip.sha2_256
|
AirID SDK for Android | AirID SDK for Android | 12.90.50-GA | - updated: Android Studio 4.1.0 / Gradle 6.1.1 was used to build the final GA Release
- updated: API compileSdkVersion and targetSdkVersion raised to API 29 (Android 10), minSdk is left to API 23
- fixed: AirIdCardTerminalScanner caused Application Not Responsible (ANR)
- fixed: Register for BluetoothAdaper events to better handle global Bluetooth states (BLE on / BLE off)
- fixed: NullPointerException when using AirIdCardTerminalScanner with Mode#Scan_Lollipop
- optimized: DeviceConnector#waitForCardPresent and DeviceConnector#waitForCardAbsent now use async waiting instead of busy loops
- added: preparations for future over the air firmware update functionality
| New Functions- NEW Over-The-Air (OTA) AirID firmware update function
- AirID firmware update includes download from AirID update server and wireless transfer via BLE to AirID device
- Firmware update can be called manually and automatic through AirIDCardTerminal class
- Current Firmware Version can be obtained through AirIDCardTerminal class
- dependency on ed25519 library is required for this feature
- Added support for AirID2 Firmware 2.0.0
- Added pairing option from within SDK when using DeviceConnector
Improvements & Changes- Updated Documentation to include manual and automatically updates via SDK
- Marked deprecated functionality
- CardType and CardOS
- Settings: SignalStrength, AdvertisingMode, ContrastLevel
- Enhanced logging
- Permissions are now managed individually on APP level, not by SDK
Fixed- Fixed issues in regards to BluetoothGATT references
Removed Functionality- Removed permissions from SDK library. Apps are now free to define & manage their individual required permissions on their own.
| - compiled for Android 10 compiled for Android 10 (API 29);
- minSdk is still at API 23
- Android Studio 4.1.0
- gradle 6.1.1
| AirID-Android-Driver-v1v2.90.50-GA.zip | AirID-Android-Driver-v1v2.90.50-GA.zip.sha2_256 |
AirID SDK for Android | AirID SDK for Android | 1.9.45-GA | - updated: Android Studio 3.4.1.0 / Gradle 6.3 1.1 was used to build the final GA Release
- updated: API compileSdkVersion and targetSdkVersion raised to API 29 (Android 10 is now fully supported but we still targeting API version 28
- The Driver now uses android.permission.ACCESS_FINE_LOCATION to support Android 10 in AndroidManifest.xml
- The Driver now uses android.permission.ACCESS_BACKGROUND_LOCATION to support Android 10
- Better support for HW revision A2XX1.1.0 and firmware 1.3.1+.
- Added A2XX and A2MX serial number parsing to DeviceType enum.
- Fixed an issue with AirID1 key management and Android 10
- ), minSdk is left to API 23
- fixed: AirIdCardTerminalScanner caused Application Not Responsible (ANR)
- fixed: Register for BluetoothAdaper events to better handle global Bluetooth states (BLE on / BLE off)
- fixed: NullPointerException when using AirIdCardTerminalScanner with Mode#Scan_Lollipop
- optimized: DeviceConnector#waitForCardPresent and DeviceConnector#waitForCardAbsent now use async waiting instead of busy loops
- added: preparations for future over the air firmware update functionality
| - compiled for Android 10 (API 29);
- minSdk is still at API 23
- Android Studio 4.1.0
- gradle 6.1.1
Android 8 upwards (API 26); Android Studio 3.6.3 | | |
AirID SDK for Android | AirID SDK for Android | 1.9.34-GA | - Updated Gradle version to v3.4.1
- Activated NSLogger for debug version
- Implementation of accessibility for AirID2 Mini readers
- Defined new setting for LEDs for AirID2 Mini
| Android 8 upwards (API 26); Android Studio 3.4.1 | AirID-Android-Driver_v1.9.3-GA.zip | AirID-Android-Driver_v1.9.3-GA.zip.sha2_256 | AirID SDK for Android | AirID SDK for Android | 1.9.2-GA | - Android Studio 3.6.3 was used to build the final GA Release
- Android 10 is now fully supported but we still targeting API version 28
- The Driver now uses android.permission.ACCESS_FINE_LOCATION to support Android 10 in AndroidManifest.xml
- The Driver now uses android.permission.ACCESS_BACKGROUND_LOCATION to support Android 10
- Better support for HW revision A2XX1.1.0 and firmware 1.3.1+.
- Added A2XX and A2MX serial number parsing to DeviceType enum.
- Fixed an issue with AirID1 key management and Android 10
| Android 8 upwards (API 26); Android Studio 3.6.3 | | |
AirID SDK for Android | AirID SDK for Android | 1.9.3-GA | - Updated Gradle version to v3.4.1
- Activated NSLogger for debug version
- Implementation of accessibility for AirID2 Mini readers
- Defined new setting for LEDs for AirID2 Mini
| Analyze code with regards to initial pairing and LTK/SK creation to make initial LTK key agreement more robust against LTK and SK negotiation failures with AirID1 devices.Analyze and test code with regards to time intervals to eliminate AirID reader stuck on "not bonded yet".Test and change the time intervals and delays on Bluetooth connection to make the connection more stable.Set the key remotely from the app for saving LTKs is available. (Optional) | Android 8 upwards (API 26); Android Studio 3.4.1 | AirID-Android-Driver | -_v1.9. | 23-GA | .aar.zip | AirID-Android-Driver | -_v1.9. | 23-GA | .aar.zip.sha2_256 |
AirID SDK for Android | AirID SDK for Android | 1. | 89.2-GA | - Analyze code with regards to initial pairing and LTK/SK creation to make initial LTK key agreement more robust against LTK and SK negotiation failures with AirID1 devices.
- Analyze and test code with regards to time intervals to eliminate AirID reader stuck on "not bonded yet".
- Test and change the time intervals and delays on Bluetooth connection to make the connection more stable.
- Set the key remotely from the app for saving LTKs is available. (Optional)
| Android 8 upwards (API 26); Android Studio 3.4.1 | | |
AirID SDK for Android | AirID SDK for Android | 1.8.6 | Bugfixes - handling of AirID no random number
- disconnect after card reset
- loop after force AES-256 mode is enabled
- AirID2 discovery and pairing
| Android 4.4 | 6Bugfixes - handling of AirID no random number
- disconnect after card reset
- loop after force AES-256 mode is enabled
- AirID2 discovery and pairing
| Android 4.4 upwards | | |