Hallo Martin, > After enabling the card emulation mode on the Nexus S, I am able to > read and write data to the emulated MiFare Classic 4k card by an > external NFC reader. I would like to do that within an android app.
Have you verified that you actually wrote data to the MIFARE Classic? I really doubt that you did. What MIFARE keys did you use? In my tests authentication passed regardless of the keys I used. In fact every command seemed to return successfully, but in fact no data was ever written to the card. > You have > spoken about the access keys, but aren't they the same for internal > and external access? Yes, they would be the same for internal and external access. br, Michael > On 19 Mai, 00:59, Michael Roland <[email protected]> wrote: >> Hallo, >> >>> I more or less understand how to do it but I don't understand if after >>> is possible to build application on card emulation. >> >> Regarding the internalsecureelement(SmartMX): No. Even if you >> activate this chip as thesecureelement, you could only use its UID for >> your application. To edit data on it/install applications into it you >> would need to have the access keys for thatsecureelement. >> >> Regarding an externalsecureelementon the UICC ("SIM" card): Partly >> yes. You can activate an SWP-UICC assecureelement. But access is >> limited to external readers for the moment. Until now, there is no known >> way to get access to application on the UICC from a phone application. >> >>> Moreover some of you speak about authentication, and about a password >>> that is not possible to have? (What are you talking about when you >>> speak about this stuff). >> >> The SmartMX in the Nexus S contains a JavaCard operating system that is >> compliant to GlobalPlatform. GlobalPlatform defines methods to manage >> multiple applications on this JavaCard. A central component of this card >> management is the Card Manager, which itself is one application on >> thesecureelement. The card manager provides an interface to load, install, >> ... delete applications on thesecureelement. Additionally it controls >> access to these methods. To establish asecurechannel with the card >> manager (i.e. a connection that provides authenticity, integrity and >> possibly confidentiality) both, the entity that wants to manage the card >> and the card manager need to know one or more shared secrets, the >> authentication keys. >> >>> Anyway some news aboutNFCcard emulation >>> [nearfieldcommunicationworld] >>> it seems that Google dev will not give use api about that in the next >>> future. >> >> Still there is some developments towards card emulation going on >> (cf.http://www.nfctimes.com/news/android-card-emulation-expected-despite-... >> ) >> >>> Moreover, what does it mean "And if you improperly authenticate >>> yourself a certain number of times, there aresecureelements out >>> there that will physically destroy themselves and can never be >>> recovered"? Is related to the password of my previous questions? >> >> While the card manager is protected by access keys, there still exist >> some methods to find such keys. One of these methods would be brute >> forces (i.e. trying each possible key value). While such methods are >> usually very inefficient (if the key has an appropriate length) there >> might be some methods that could significantly speed up this process. As >> a safety mechanism the card manager usually implements an additional >> protection against such an attack: After ten consecutive authentication >> failures, the card manager locks itself and refuses any further >> commands. (Other applications that were previously installed on that >> card will continue to function as usual.) Once this lockdown has >> happened, there is *NO* way of reversing this. THerefore, once in >> lockdown no applications can be installed on, removed from, ... >> thesecureelement. >> >> br >> Michael >> >> >> >> >> >> >> >>> On May 16, 3:48 pm, Goo_Goo <[email protected]> wrote: >>>> Could someone please post the the image withcardemulationenabled >>>> for Nexus S? >> >>>> On May 13, 5:08 am, Markus <[email protected]> wrote: >> >>>>> mtk >>>>> you wrote after call >>>>> phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeWired,nfc_jni_se_set_mode_callb >>>>> ack, >>>>> (void *)nat); >>>>> your nexus s was incardemulation >> >>>>> I called it with mode default >>>>> phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeDefault,nfc_jni_se_set_mode_cal >>>>> lback, >>>>> (void *)nat); >>>>> and get following log >>>>> 5-12 22:08:54.421: DEBUG/NFCJNI(303):NFCcapabilities: HAL = >>>>> 8150100, FW = a70414, HW = 620003, Model = 0, HCI = 1, Full_FW = 104, >>>>> FW Update Info = 0 >>>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): >>>>> phLibNfc_SE_GetSecureElementList() >>>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): > Number ofSecure >>>>> Element(s) : 1 >>>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): >>>>> phLibNfc_SE_GetSecureElementList(): SMX detected, handle=0xabcdef >>>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): phLibNfc_SE_SetMode() returned >>>>> 0x000d[NFCSTATUS_PENDING] >>>>> 05-12 22:08:54.828: INFO/NFCJNI(303):NFCInitialized >>>>> 05-12 22:08:54.828: DEBUG/NfcService(303):NFC-EE routing OFF >>>>> 05-12 22:08:54.847: DEBUG/NfcService(303):NFC-C discovery ON >> >>>>> BUT reader is not detecting a Tag on my phone >>>>> Is there maybe a problem to setting the mode >>>>> returned 0x000d[NFCSTATUS_PENDING] sounds not so great >> >>>>> I am working with CyanogenMod 7 (Android 2.3.4) >> >>>>> regards >>>>> Markus- Hide quoted text - >> >>>> - Show quoted text - > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

