Sorry if this appears elsewhere but I've searched on what I can think of and haven't found the answer.
I'm trying to load an applet to a SIM so that it will only run when the NFC phone it's sitting in communicates with the reader using the Type A protocol (and then I want to do the same for another applet that only runs when Type B is the protocol).
I've tried using the following at the end of the INSTALL for INSTALL command
EF0D // Contactless specific parameters
A00B // Contactless Protocol Parameters
800181 // Assigned Protocols for Implicit Selection (Type A only)
810101 // Initial Contactless Activation State (Activated)
A503 // Communication Interface Access Parameters
8201C0 // Communication Interface Access per Instace (Contact & C'less)
This loads the applet to the card OK but when I then issue a SELECT command in Type B protocol, the application is selected - which is not what I want.
On further reading it appears the 800181 command is to program the applet as the default "goto" applet when the card is addressed without a SELECT command (the so called Implicit Selection). The system I use always issues an explicit SELECT command (it's in the spec) and so I realise now it's not the correct command to use.
Reading through the GP spec it seems it's possible to get an applet to only respond to SELECT commands that are coming from one protocol or the other but I cannot see which command to use :(
Can someone please point me in the right direction as to which GP command to use to load an applet that will only work with a Type A (or type B) protocol?
From my understanding, you can either set the contactless activation state to ACTIVATED, DEACTIVATED and NOT_ ACTIVATABLE. The communication interface access is for access over either contact or contacless interface. Neither of these are fine grained enough to only allow on a given CL protocol. The protocol setting seems to only be for applications that don't support explicit selection and only support a subset of the CL protocols.