Skip to content
Marc Obrador edited this page Jul 24, 2015 · 3 revisions

SmartCard API

Version Date Code Android OMAPI
4.0.0 24.07.2015 8 5.0.0 3.0
3.2.1 15.07.2014 6 4.4.4 2.05
3.1.0 27.09.2013 5 4.3 2.04
3.0.0 07.04.2013 4 4.2.2 2.03
2.4.0 05.07.2012 3 4.0.3 2.03
2.3.2 06.02.2012 2 4.0.3 2.02
2.3.1-rc1 20.01.2012 0 4.0.3 2.02
2.3.0 05.12.2011 1 2.3.7 2.02
2.2.2 23.08.2011 - 2.3.5 1.01
2.2.1 15.07.2011 - 2.3.4 1.01
2.2.0 01.07.2011 - 2.3.4 1.01
2.1.2 21.06.2011 - 2.3
2.1.1 15.04.2011 - 2.3
2.0 28.02.2011 - 2.3
1.2 12.11.2010 - 2.2.1
1.1 25.10.2010 - 2.2
1.0 09.07.2010 - 2.2
0.1 18.01.2010 - 2.1

v4.0.0

  • Based on Android 5.0.0 (Lollipop)
  • Adapted to Open Mobile API v3.0
    • Implement openBasic/LogicalChannel with P2 parameter
    • Ensure support of Extended Length APDUs
  • Adapted to Open Mobile Test Spec v2.0
  • Architectural refactor for easier maintenance
  • New terminal interface: SmartcardService has no HW-related permissions, terminals run on their own context.
  • Fix issues: #37, #88
  • Other bug fixes

v3.2.1

  • Based on Android 4.4.4 (KitKat)
  • Adaptation to Open Mobile API v2.05
  • Adaptation to Open Mobile Test Spec 1.0 + Errata Document
  • Changelog:
    • Fix getSelectResponse()
    • Fix selectNext()
    • Implement openBasicChannel()
    • Implement openLogicalChannel(null)
    • Accept warning SW in openBasicChannel() and openLogicalChannel()
    • Fix getAtr()
    • Support T=1 protocol
    • Other bug fixes

v3.1.0

  • JB (Android-4.3) reference
  • SIMalliance Open Mobile API 2.04 Transport Layer (selectNext support)
  • Issues.57/59/63/64 resolved
  • Enhancements/Improvements:
    • default NFC access now compliant with GP SEAC spec
    • SCservice unregisters all broadcast receivers
    • reset of ACE when new UICC is inserted
    • implicit path replaced with absolute path in SIM_IO
    • unmasking of channel number in CLA byte in UiccTerminal
    • ignore MissingRessourceException in case SE is a UICC
    • fallback to ARF each time the ARA selection fails
    • cleanup duplicate AIDL files in build environment
    • added dump and debug functionalties in debug build
    • initialization of AC rules in a background handler

v3.0.0

  • GlobalPlatform ARF support
  • JB (Android-4.2.2) reference
  • AIDL interface to service reworked
  • Access Control performance:
    • service starts at boot time and caches all rules (get all rules)
    • refresh tag evaluation in session instead of channel
  • Issues.33/34/35/38/41/46/50 resolved

v2.4.0

  • GlobalPlatform ARA support
  • ACA removed
  • ICS (Android-4.0.3) reference
  • compatible with SCAPI-2.3.2
  • Issues.5/6/7/11/13/16/20/21/22/23/26 resolved

v2.3.2

  • ICS support (Android-4.0.3)
  • compatible with SCAPI-2.3.0
  • all open issues from 2.3.1-rc1 resolved

v2.3.1-rc1

  • Pre-release
  • ICS support (Android-4.0.3)
  • compatible with SCAPI-2.3.0

v2.3.0

  • Compliant to the latest SIMalliance Open Mobile API Specification V2.02 (transport layer only)
  • SmartCard API is only based on the Open Mobile API SIMalliance
  • The namespace "android.smartcard" was completely removed
  • SmartCard API is only provided as shared library.

v2.2.2

  • SmartCard API is only provided as shared library.
  • SmartCard API is only based on the Open Mobile API SIMalliance
  • The SmartCard API can be extended with the old API (V 1.X) with the backward compatibilty add on patch.
  • The permission for using the SmartCardAPI was changed from "android.permission.SMARTCARD" to "org.simalliance.openmobileapi.SMARTCARD".

v2.2.1

  • Fully compliant to the latest SIMalliance Open Mobile API Specification (V1.01)
  • New SE Access Control Enforcer can restrict the access to Secure Elements by predefined policies. See the SE Access Control description.
  • CTS extension for SmartCard API. (Some corrections were made to enable CTS also for the shared library based SmartCard API)
  • Support of ASSD to access SD memory cards with an embedded security system (Note: The also provided ASSD kernel patch for creating the ASSD kernel driver has to be used for enabling the ASSD support)
  • The ASSD solution replaces the interim proprietary solution "MSC" for accessing a Secure SD cards.
  • SmartCard API is also provided as a shared library. A new alternative (but experimental) solution.

v2.2.0

  • Fully compliant to SIMalliance Open Mobile API Specification V1.01.
  • New SE Access Control Enforcer can restrict the access to Secure Elements by predefined policies. See the SE Access Control description.
  • CTS extension for SmartCard API. (as provided in v2.1.2)
  • Patch for ASSD (Advanced Security SD) was removed again as the needed ASSD kernel driver is not available yet (but will coming soon).
  • SmartCard API is also provided as a shared library. A new alternative (but experimental) solution (as provided in v2.1.2)
  • UICC and Emulator patch files are now compliant to Android 2.3.4r1 (UICC/Emulator patch files in v2.1.2 cause a version mismatch with Android 2.3.4r1)

v2.1.2

  • Fully compliant to SIMalliance Open Mobile API Specification V1.01.
  • New SE Access Control unit can restrict the access to Secure Elements by predefined policies. See the SE Access Control description.
  • CTS test suite for SmartCard API.
  • Support of ASSD (Advanced Security SD).
  • API is now also provided as a shared library.

v2.1.1

  • fully SIM Alliance Open Mobile API compliant
  • added Terminal provider interface
  • minor bugfixes and extensions in the terminal implementation:
    • MscTerminal is connected at later time if initial connect failed
    • SmartMxTerminal was adapted to the latest interface
    • UiccTerminal was improved in terms of error handling

v2.0

  • Gingerbread support
  • API redesign to provide a better abstraction of the SE sevices

v1.2

  • MscTerminal redesign
  • Msc native JNI: better APDU waiting loop
  • dynamic card terminal instantiation:
    • add or remove supported XvyTerminal.java implementations by adding or removing files
    • no further source code adaptions required
  • internal cleanup: moved all terminal implementation into terminal namespace
  • bugfix: APDU size of 255 bytes with MscTerminal

v1.1

  • getAtr() removed from ISmartcardService
  • major internal redesign
    • PC/SC transport system replaced by Terminal implementations on the Java layer
    • PC/SC moved to a separate package that accesses the SmartCard API with a single IFD Handler
  • UICC handler added with reference implementation for OEMs and emulator support
    • AT commands AT+CCHO, AT+CGLA, AT+CCHC and AT+CSIM supported
  • new sample application ApduTester available

v1.0

  • SmartCardService as the final architecture for a smart card library for Android
  • minor bugfixes
    • mapping of logical channels to CLA bytes
    • compilation issues
  • renaming of seek service to SmartcardService
  • shutdown() function added
  • integrated in Android build system
  • Channel management not ISO conform to allow non ISO CLA bytes to be used for channel management

v0.1

  • initial alpha release
  • first release of a Service-based approach for the main instance of the library instead of plain framework extensions
Clone this wiki locally