Hallo,

> *Regarding P2P communication*
> 
> - If I understand correctly, Android uses a proprietary protocol
> (which I believe is called com.android.npp) on top of LLCP as
> specified by the NFC Forum, which is a protocol on top of NFCIP-1 as
> specified in ISO 18092.

Right, except that "proprietary protocol" should be replaced by "open
protocol".

> Or is there any other (documented) way for regular terminals or
> desktop readers to communicate with an Android phone over P2P?

No, for the moment there is no other documented way to communicate with
other devices over P2P. Also, for now I only know of one PC-based
library for the LLCP. (Actually a _commercial_ NFC stack.) Thus, if you
want to implement communication with a reader you would also need to
implement the LLCP.

> *Regarding Card Emulation*
> 
> - How would installation of an application on the SE work? // How
> would permission be given, and to whom? I don't yet clearly see how
> this would work in practice.

The "short" answer: In a production environment, the SE owner delegates
the management of the SE to some entity called TSM. If you want your
application to be available for users with a certain TSM you get make a
contract with this TSM that your applet (ticketing, payment,...) is
amade available for their users. Then if one specific user wants to use
your application you instruct the TSM to install the applet on the SE.
This installation can be done over the mobile phone network at any time.

In reality the process is even more complex. See this for further
information on this topic:
http://www.globalplatform.org/documents/GlobalPlatform_NFC_Mobile_White_Paper.pdf

> - And more specifically, how would one develop and test an application
> for the SE, if it requires permission by the SE owner.

I don't know how this topic will be handled for the Nexus S devices. One
possibility would certainly be to request test UICCs from some smart
card vendor. These UICCs would then belong to you and you could do
whatever you want with them.

In previous NFC phones that had only an integrated SE, the device vendor
(Nokia in that case) provided a way to "create" test devices by
unlocking the SE (i.e. setting the secret keys to some publicly known
value). Of course once this has happened that SE can never be trusted again.

> - You mentioned it's possible to emulate a card with some tweaking of
> the android source, how far could you go with this? Any pointers?

Not "emulate a card" but activate one of the available SEs. The
functions to activate (i.e. make available to external readers) an SE
are already integrated into the 2.3.3 sources but the
WRITE_SECURE_SETTINGS privilege is required to use them. As normal
applications can't request this permission you would either have to
trick the certificate and privilege verification of Android so that it
believes your app has this privilege. The other possibility would be to
recompile the sources and remove that privilege requirement from the
concerning functions of the NFC service. (That's certainly the easier
and more robust method.)

br,
Michael

-- 
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

Reply via email to