Erwin Erwin - 1 month ago 18
Android Question

Android phone based NFC device which has inbuilt SAM slot

I want to make an application on an Android phone for reading an NFC card. A SAM card is required for the authentication process while reading the NFC card.

My question:


  1. What Android phone type has a special slot for a SAM card?

  2. Can the SAM card be attached to the SIM card slot, without rooting phone?

  3. What Android API can be used for reading a SAM card installed in the SIM card slot?


Answer

What Android phone type has a special slot for SAM card?

I'm not aware of any such phone, thought that does not necessarily mean there is none. Typically, Android smartphones are not designed for tasks that require a SAM. You might want to look for Android devices specifically designed for point-of-sale tasks/mobile ordering systems/as merchant terminals.

Can a SAM card be attached to the SIM card slot, without rooting the phone?

Android phones usually require the smartcard in the SIM/UICC slot to act as a SIM/UICC card. Otherwise, the card will not be activated and consequently remains inaccessible. A tyical SAM only acts as a key/value store (+ possibly as protocol processor) for a specific target platform and does not have SIM/UICC functionality. Consequently, such a SAM won't be activated in the SIM/UICC slot. However, you might be able to overcome this by

  1. modifying the Android system to accept even cards that do not provide SIM/UICC functionality in the SIM/UICC slot. However, depending on the hardware, this decision might not be made by the open source Android system but by closed source parts such as the RIL or the baseband modem firmware which you can't (easily?) modify. Moreover, you indicated that rooting is not an option.
  2. adding a basic SIM applet to the SAM. If the SAM is a programmable smartcard and if you have sufficient access to load an additional application onto that card, you may be able to implement some basic dummy SIM functionality on that card. The card would then be dscoverable as SIM card by the phone.

What Android API can be used for reading a SAM card installed in the SIM card slot?

Once your SAM is discoverable as SIM card and once you also added a GlobalPlatform ARA-M applet that grants your application sufficient permissions, you may be able to use either the icc*() methods of TelephonyManager or, if your device supports it, the Open Mobile API (e.g. provided through SEEK-for-Android) to access applications on the smartcard in the SIM/UICC slot.