Hello all,

Michael as you already mentioned, it is possible to activate the card
emulation mode and the Secure Element in the Nexus S.
I did that and also changed the permissions from
android.permission.WRITE_SECURE_SETTINGS to android.permission.NFC in
NfcService.java to get access to the Secure Element.
Now I am able to create and open a connection to the Secure Element
and get its UID.
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.
Why is that not possible through an android application? You have
spoken about the access keys, but aren't they the same for internal
and external access?
If I have understood you correctly, there is nothing more I can do so
far, right?

Thanks a lot!

Martin

On 19 Mai, 00:59, Michael Roland <mi.rol...@gmail.com> 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 <danny.w.s...@gmail.com> wrote:
> >> Could someone please post the the image withcardemulationenabled
> >> for Nexus S?
>
> >> On May 13, 5:08 am, Markus <markus.tau...@gmail.com> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to