I have few questions when the reader initiates the transaction with NFC emulated payment application using HCE
Does the reader send the PPSE command as with the regular contactless card infrastructure?
Does the host controller respond to PPSE command with the list of AID's from the registered AIDs listed in the routing table?
So after the reader selects the AID, the host controller directs to the right HCE service?
Please correct my understanding on the above concept.
An EMV payment card terminal will not distinguish plastic cards, secure element based cards or HCE emulated cards. In all cases it will speak the same protocol. Actually "protocols" as EMV has several different kernel variants that speak (slightly) different protocols with card applications. But that differentiation is based on application variants and brands (e.g. MasterCard EMV, MasterCard MagStripe, Visa, etc.) and not on form factor/"smartcard" hardware.
So a contactless EMV reader will select the PPSE for any type of card (plastic, SE, HCE, etc.) to detect the actual payment application.
Android does not interpret the PPSE selection command and, consequently, it does not generate or send a list of available payment applications. Note that HCE payment applications are selected by the user through the settings UI and only one payment application can be active/accessible at a time.
It's left up to applications to handle the PPSE. So, typically, a HCE payment application based on EMV standards would register for both, the payment application AID and the PPSE DF name. Note that from a protocol perspective there is no difference between a DF name and an AID, so you can register for it in your host APDU service XML file with an AID filter for the DF name ("2PAY.SYS.DDF01") in its ASCII hexadecimal representation 325041592E5359532E4444463031
:
<aid-filter android:name="325041592E5359532E4444463031" />
Consequently, your host APDU service will need to handle the PPSE selection command and respond to it will an FCI that contains the list of EMV payment applications in its discretionary data template.
来源:https://stackoverflow.com/questions/26208056/initial-handshake-between-nfc-controller-and-pos-reader