[Q] nfc-tools on Android? - NFC Hacking

Has anyone tried porting anything based on libnfc (libnfc.org), such as nfc-tools (code.google.com/p/nfc-tools), to Android?
I've heard of the odd person or two managing to cross-compile libnfc for Android and get it working with an external reader, but I'm more interested in getting nfcutils and mfoc to run on my Galaxy Nexus...

Hi,
I was looking for the same thing as you.
Indeed some people succeeded to compile libnfc on android (android 2.3 if I remember well) and they have published a little outdated tutorial.
The problem that is their porting use libusb and permits to use an external NFC reader connected via the phone USB link.
I think you are most interested in using the internal one.
On my galaxy SIII, the NFC device seems to use an I2C link (the device is /dev/pn544). So you will need to make a libnfc "driver" for your device wich link to the I2C. I you look into libnfc code, you have some code to mange serial links but it seems a little experimental.
Moreover, there is already a driver and a lib that manage your NFC device, so you'll probably have some conflicts by trying to add libnfc.
The built-in lib is libnfc-nxp wich also includes drivers, hardware abstraction and a upper level libraries (called "FRI") providing services to manage cryptography, NDEF messages and so on. This lib is completely different from the linux libnfc.
So if you want to get lib-utils working, you will probably need to compile them after developing a wrapper between libnfc functions using libnfc-nxp. (or something like this)
In my knowledge, nobody did the job yet.
I found some tries to recode mfoc utility in an android apk but nothing functional yet (and there is often no recent activity of these projects).
Sorry.

I found this:
https://github.com/ehabkost/nfc-tools (last activity two years ago)
It appears the Android API lacks some features to get the mfoc running.
It may be possible to overcome this modifying the libnfc-nxp source in the android repo....... who knows.

Porting [nfc-tools] libnfc to Android 4.4.2
Does anyone have news about this ?
I did some research though but instead of creating a new thread, I ended up here.

if anyone is still interested, I have compiled libnfc and nfc-list from last commit on git and works on my Nexus 5 5.0.1
You can find here github.com/etmatrix/libnfc and github.com/etmatrix/libusb01 for libusb
I attached an usb device SCL3711-NFC&RW and nfc-list show me a Mifare Classic and SRIX4K.
I need to improve external module libusb, libnfc look at /tmp/libusb-0.1.12 for linking.

etmatrix said:
if anyone is still interested, I have compiled libnfc and nfc-list from last commit on git and works on my Nexus 5 5.0.1
You can find here github.com/etmatrix/libnfc and github.com/etmatrix/libusb01 for libusb
I attached an usb device SCL3711-NFC&RW and nfc-list show me a Mifare Classic and SRIX4K.
I need to improve external module libusb, libnfc look at /tmp/libusb-0.1.12 for linking.
Click to expand...
Click to collapse
Hey! I'm just trying to get into this issue, and I would really appreciate if you could help with some piece of advice
I've digged up all google, but all instructables are dated 2010-2012, I am sure that there should be some progress in this area! My goal is to flash libnfc to Android and make it use an internal nfs chip
Can you contact me? It would also be great to have a compiled file to install libnfc to my galaxy s3 and some explanation, because unfortunately I'm just a beginner in this, though a really ambitious
Thank you!

Bump.
Any news on this? I'd really like to be able to read my public transportation pass to see how much I have credit left (It is mifare classic 1k). There is no official app to read it either (nor unofficial for what I know).

You can try the app "västtrafikreader" or vasttrafikreader. You have to google it yourself.
Classik k1 efter carry heavy encryption wich makes is almost impossible to ream them. But in vasttrafikreader they got the keys for the swedish system and the cards can even be manipulated.
Its rather safe to say that you basicly cant carry out the hack w/o the proper keys.

There have been ports of mfoc and similar tools for Android in the past, but only for externally connected NFC-Readers, since the Android APIs don't allow the necessary access to the internally embedded NFC chips. The best app for working with Mifare Classic NFC chips is the "MTC - Mifare Classic Tool", which is available on the Play Store. It's open-source on GitHub and supports reading and writing to the chips if you add the keys to the dictionary file or if the sector you're trying to access uses one of the default keys. This app could totally be expanded with mfoc-like functionality, at least on rooted devices, but for now you have to run mfoc on the PC once to get the keys, add them to the dictionary and afterwards you're able to get full read/write access to all sectors of the specific chip from a supported Android handset (hardware-wise, depends on the NFC chip used).

hello, its been 4 yearsany news on an internally embedded NFC chips mfoc functionality ?

Related

[singularity]

[SINGULARITY] -
Singularity
Singularity (and the language of such Sing#) is a Microsoft operating system currently on codeplex as RDK 2.0 which is now core to this project - getting Sing# and Singularity to run on ARM (hd2) then can easily boot NT or anything and everything - essentially, NT will happen, but is irrelevant, as need to here first give MAGLDR an d HD2 ability to run Common Language Runtime AND Singularity (.ARM ver of .X86) -
GOAL= make ARM Singularity Kernel run on HD2 then run apps using this core as native apps or strap out onto whatever...
See update on last page of this thread.
ntonhd2 said:
Cotulla: repsonse to your question along with basic test build, just for compile practice run (check for errors), was succesfull; this is for ARM low level bootloader (ARMLDR ) which runs on ARM (hd2, ultimately here) and then grabs LDR (ntldr) then all other files (see my reply) then NTOSKRNL.EXE -> its attached for you to download on next page - thanks again for your input .
NT on ARM:
http://www.microsoft.com/presspass/press/2011/jan11/01-05SOCsupport.mspx
http://www.microsoft.com/Presspass/Features/2011/jan11/01-05SinofskySOC.mspx
http://www.bloomberg.com/news/2010-...ion-of-windows-for-arm-chips-at-ces-show.html
http://thecoffeedesk.com/news/index.php/2009/04/23/net-could-be-key-in-windows-on-arm-netbooks/
http://www.osnews.com/story/24165/Windows_NT_on_ARM_It_s_a_Server_Thing
Please also read my last post regarding Xbox running NT.
And understand I AM TALKING ABOUT NTOSKRNL with Native CLI and not running full WindowsXP or 7 or watever! .
hi xda, put this in hd2 general as could be relevant to linux or wp7 or hd2. Thinking of starting project here of pretty grand scale if people are interested. Now that a lot of work has already been done i think it will not be as hard as it may appear or sound at first.
I am thinking about using new wp7 bldr +- oal +- nk.exe to set up emulation of bios expected on pc then trying to jump to 2003 server equiv ntoskrnl.exe. (and then probably just a native command line interface like alex ionescu tinykrnl project back in the day, a ncli for nt with usb keyboard and not much more to start with: Further dev much later).
Nk will handle underlying lack of pci, bios, ints, and addresses, (+is firmware) but actual switching to nt kernel is for real after that: To build a strapping kernel with ce7/wp7 architecture and initial drivers that goes on to then launch full nt kernel.
Yeah - i have \nt\private\ntos\ source code and no it is not the normal nt4 or other w2k leak- it is a complete and buildable kernel; pm me and i will give proof, or the code if you can build and want to work on this. This is not x86/x64 work obviously so is not for those without ability: Need to do some heavy lifting to get recompile build happening for arm, qualcomm ' snapdragon nt :d. Otherwise is only emulation and not a good idea. This is 2be real. As non-x86/x64 support for nt (nt4 did ppc, mips, and now ia64) this kinda porting is not a foreign concept: There is sufficient info out there with reference to everything from softpc.new (inside ms code) to wow64cpu.dll and other x86/x64 specific init routines, spinlock and interrupt handling, asm code samps, bochs methods, qemu methods, et.al. Which can be used in one way or another or taken over if required: If all taken into account to paint big picture: Use of emulation technology methods for non-emulation project just opens up underlying logic. That is it. This is also why i suggest using wp7/ce7 base 4 init. Do not want emulation. Real deal here only. I refer to all these items above as observations which could be taken into account if need be: From tinykrnl, reactos, bochs, wine, efi, and other such things can make porting over kernel easier: At the end of the day, ce7/wp7 ' bldr, oal, nk.exe (or whatever derivatives thereof) will be 'firmware' in big picture. Another reason i am considering wp7 as base to strap is drivers are there to make a ce+bios or efi-type (?) pre-loader that takes all ce7 initialization further and passes on to nt (nk.exe runs including all setup as would be done by ntldr, a fake or psuedo-real ntdetect.com, system.hiv then passes data structs to our ntoskrnl.exe) and do all that needs be done. I can handle pc side completely but need bit of help with someone who gets nkglobal and other structures and use of platform builder with experience prefered in creation of new bsp. Maybe other ways - instead of ce, ie- grub, linux, openbios, openefi, but either way just want to prove it could be done is all.
Click to expand...
Click to collapse
anybody here capable?
to quote Da_G:
Yup, RustyGrom pretty much has it covered. First, it's called "CE" for Compact Edition, and this is not a misnomer in any way. The system is designed to be as compact as possible (There are build-time switches for everything, so you can toggle off nearly all the components to acheive a very "light" image) obviously, including drivers for components not present would be a waste of space, as they would never get used. So there are none included. On the PC side of things the BIOS provides a basic level of functionality using a standard interface so generic drivers are created to bring the platform up to that level, and from there vendor-specific drivers can be loaded.
If you want to put an embedded device in terms of a desktop computer and loading Windows 7 on it, you start out with a fully assembled computer (video card, motherboard, cpu, ram, etc.) - power it on. It loads up the BIOS which initializes the basic hardware and begins to load the rest from the hard drive. The embedded device loads up the NAND XLDR, which provides only flash read/write support. The XLDR then loads the "EBOOT" or "IPL" into ram on typical devices. HTC doesn't use the EBOOT/IPL model as such (here already we're breaking away from the "standard" even further) and instead has that split out into mARM AMSS (a custom designed RtOS that loads and runs the Modem ARM CPU) and SPL. Once the AMSS loads the SPL into ram and executes it, the SPL initializes the aARM (apps ARM CPU), does various checks (are we in update mode? do we need to expose a flash interface to update the rest of the OS? do we just boot up the os and move aside?)
Then finally you get past the highly device-specific code and on to the (slightly) more generic CE Kernel/drivers which get copied into ram by the SPL and executed (Native Kernel/XIP partition)
So, how different is CE7/WP7 from that model? (Which is the model we have now in CE5.x/WM6.x) - The mARM AMSS provides a different interface and initialization proceedure. That means any of the WP7 drivers from a donor device we might port from would not work at all with our current AMSS. Which in turn means no boot without re-writing the drivers/kernel or AMSS.
So to compare it to a desktop PC once again, we need to write a BIOS, a Hardware Abstraction Layer, and a set of drivers for each component on the system (likely a good deal of the drivers would be usable once the rest is done)
Do I sound jaded yet? Yes, yes I am It's probably a factor of 10 more complicated than I thought it would be initially.
Here's the JTAG pinouts that need to be connected, btw. There are pins on both sides of the motherboard which also is truely a pain in my ****, as i originally intended to mount an external port on the HD2 so I could easily keep a JTAG connection with it, but you basically have to remove the entire motherboard to maintain a reliable connection, which really precludes running it on a live device.
Click to expand...
Click to collapse
JTAG working now .
Ummm expect to hear from Microsoft lawyers in 5....4....3....
RustyGrom said:
Ummm expect to hear from Microsoft lawyers in 5....4....3....
Click to expand...
Click to collapse
Yeah i would be in breach of the non-disclosure-agreement i signed so removed.
But i am in inner city cbd wifi hotspot area and jump around unsecured cafe signals and other businesses and also use proxy servers and..... on top of that..... my own added tweaks for safe measure!
so, cafe+wifi+proxy, +other_anon, means there is absolutely no chance.
RustyGrom said:
Ummm expect to hear from Microsoft lawyers in 5....4....3....
Click to expand...
Click to collapse
reading your stuff on ce7. is this a bad idea you think? or not possible? no interest? i think it can be done.
ntonhd2 said:
reading your stuff on ce7. is this a bad idea you think? or not possible? no interest? i think it can be done.
Click to expand...
Click to collapse
I just don't think it's possible or worth it to bother trying to port NT to ARM while Microsoft is doing the same already. You're not going to be able to put together the team required meanwhile hiding from MS. It's just a stupid idea imo and really has no benefit. I mean what's your end goal here? To run Win7 on our devices?
Judging from this and other posts you have made, I suspect the most "source" you have is the "Windows Research Kernel", which is the source for a portion of ntoskrnl.exe from Server 2003 SP1, approximately. That would be no-where near enough, and it's not even enough to compile "just a kernel". It actually has a number of pre-compiled parts that it just pulls in.
Not to mention such a project is just asking to get shot down in a legal firefight. The WRK is given to academic institutions for studying the world's most popular desktop kernel, and is done so under a strict NDA.
ntoskrnl.exe by itself isn't enough to produce a workable OS anyway, especially one from the Server 2003 era.
hounsell said:
Judging from this and other posts you have made, I suspect the most "source" you have is the "Windows Research Kernel", which is the source for a portion of ntoskrnl.exe from Server 2003 SP1, approximately. That would be no-where near enough, and it's not even enough to compile "just a kernel". It actually has a number of pre-compiled parts that it just pulls in.
Not to mention such a project is just asking to get shot down in a legal firefight. The WRK is given to academic institutions for studying the world's most popular desktop kernel, and is done so under a strict NDA.
ntoskrnl.exe by itself isn't enough to produce a workable OS anyway, especially one from the Server 2003 era.
Click to expand...
Click to collapse
Sigh.. why don't people read before they make these ridiculous and thoughtless posts? Realize that there are people from Microsoft ON these threads. Also, RESEARCH IN DEPTH BEFORE POSTING SUCH A THREAD.
snickler said:
Sigh.. why don't people read before they make these ridiculous and thoughtless posts? Realize that there are people from Microsoft ON these threads. Also, RESEARCH IN DEPTH BEFORE POSTING SUCH A THREAD.
Click to expand...
Click to collapse
There are more microsoft people on xda than most realize .
RustyGrom said:
I just don't think it's possible or worth it to bother trying to port NT to ARM while Microsoft is doing the same already. You're not going to be able to put together the team required meanwhile hiding from MS. It's just a stupid idea imo and really has no benefit. I mean what's your end goal here? To run Win7 on our devices?
Click to expand...
Click to collapse
sure, sourcecode factor (nda) and secrecy/MS are complexities: but not as hard as people think here: it is TWO COMPLETELY DIFFERENT THINGS TO TRY AND GET WINDOWS7-ON-ARM to what I suggested (NT-CONCEPT-ON-ARM-WITH-Native-CLI) and no I would not use WRK sourcecode (lol) as part of my daywork i have access to (not ce) full sourcecode.
see my last post here,
can be done .
hounsell said:
Judging from this and other posts you have made, I suspect the most "source" you have is the "Windows Research Kernel", which is the source for a portion of ntoskrnl.exe from Server 2003 SP1, approximately. That would be no-where near enough, and it's not even enough to compile "just a kernel". It actually has a number of pre-compiled parts that it just pulls in.
Not to mention such a project is just asking to get shot down in a legal firefight. The WRK is given to academic institutions for studying the world's most popular desktop kernel, and is done so under a strict NDA.
ntoskrnl.exe by itself isn't enough to produce a workable OS anyway, especially one from the Server 2003 era.
Click to expand...
Click to collapse
What does this statement really mean?
might be a bad idea on hd2, fine, accepted, but your comment at the end doesn't make sense to me. so, ntoskrnl.exe for wp7 or nt4 (another era than 2003 .net) would make a difference? that is silly. besides, i made it clear that a psuedo-firmware setup would be required to setup the datastructures that NTLDR would prepare (along with NTDETECT.COM, and bios+pci_bus+ACPI interaction, (plus system or setupreg.hiv)), etc: so what are you saying exactly? my point was to not run any win32 or win64 gui or subsystem. never even mention win32k, gdi, etc. I was very clearly talking about native cli (ntdll.dll) and a prompt- maybe usb keyboard- as ARM NT Conceptual. Please, enlighten me . PS> yeah, I know the wrk and am fully aware of \prebuilt\ libraries and obj code: but, no, I was not intending on using this as base. I admit, hd2 nt prob bad idea: btw was ARM NT concept more than anything! and yeah, with the secrecy and legal issues it would be too complex and overwhelming to do so, accepted, but if I were truly to do this NO i would not use WRK lol .
And regarding Microsoft, yes, I accept that there are a LOT of employees on xda and it is crawled and watched for obvious reasons: covered that.
PPS> re WRK, no, would (if i were to try doing this that is) use what I already have access to as part of my work> under full NDA I have full source to a few different bases including all of 2003 and even HyperVServer and AzureOS trees. .
unfortunately I do not have windows phone 7 code access though! Thanks.
RustyGrom said:
I just don't think it's possible or worth it to bother trying to port NT to ARM while Microsoft is doing the same already. You're not going to be able to put together the team required meanwhile hiding from MS. It's just a stupid idea imo and really has no benefit. I mean what's your end goal here? To run Win7 on our devices?
Click to expand...
Click to collapse
Yep...... but there is a LOT of portability in the original nt4 and even w2k trees with alpha, mips, ppc, os2+posix, original softpc.new+ntvdm, and even newer, that would let this be done a lot easier than most realize: remember here that:
I AM NOT SAYING LETS RUN WIN32 ON OUR HD2: I AM SAYING LETS TRY RUN NTOSKRNL ON ARM.
big difference guys.
RustyGrom, I assume your talking about ARM-Cortex etc (msnt-2-arm)..... THIS is what i wanted to do but a much more lightweight and ms-testing-protocol-free-process; homebrew version in experimental state would ensure much speedier development: it is not that hard a concept to attempt to port over an earlier (nt4 or w2k) kernel FIRST then look at better (2003 & 7) memory management etc: the point here is PROOF OF CONCEPT NT ON ARM: that is it, like what you refer to. Read my first post: any remember tinykrnl.org? Alex Ionescu ? Reactos? it could be done a LOT easier than you all think!
only NT on ARM official stuff i am aware of is this (rumour/talk/concept/theory/design atm):
http://www.microsoft.com/Presspass/Features/2011/jan11/01-05SinofskySOC.mspx
http://thecoffeedesk.com/news/index.php/2009/04/23/net-could-be-key-in-windows-on-arm-netbooks/
http://www.osnews.com/story/24165/Windows_NT_on_ARM_It_s_a_Server_Thing
If you know NT like i do- then you would see it could readily be done but yes, I admit I do not know enoug about 'phones'/ce-platform. That's why I started THIS THREAD HERE: to get some thought on the subject is all .
what then would be major problems to overcome then and this is assuming concept of say:
0). hd2 power on
1). ipl/equiv
2). hspl.
3). magldr
4). dft leo70 rom
5). bsp/oal, bldr/uldr, OS.NB ->(NK.EXE).
6). remap, reinit, load and place (prep) data structures expected by ntoskrnl.exe (osloader, detect, pci, bios, etc).
7). jump to ntoskrnl.exe
?
For the record, a few years ago i did this exact thing: ported nt kernel over to another platform. myself and others re-wrote ntoskrnl.exe (+hal+drivers) and integrated osloader.exe(ntldr), and all data structures as would be passed to kernel from ntldr, registry system hiv, ntdetect, missing bios, missing interrupt+dma+pci-bus+acpi+power, etc into one (debug/xdk) single DEFAULT.XBE.
it only worked on XDK debug kit xbox consoles with serial+scsi+128mbRAM (and a custom lpc debug mod) but it worked. using code from intel and tianocore EFI/UEFI toolkits (and bits and pieces from here and there) and concepts such as PALcode as used by non-x86 osloader (.exe not ntldr) for simulacrum bios/firmware you can pass a predefined set of structures to ntoskrnl and ensure processor regs etc ARE ALL GOOD AND SYSTEM IS READY then call into KiSystemStartup, ExpInitializeExecutive, and begin modified phase0 of NTOSKRNL.EXE.
similar thing was done with CE.NET for Xbox - a default.xbe with linux code b4 NK.NB0
worked and works .
anyway, how u wanna solve the next problems?
1)missing CL compiler for ARM with same set of features like CL for X86.
(CL version for ARM for WCE doesn't have all features supported and usually outdated)
2)this ARM compiler store exception info in other format (not SEH frames, but universal table for functions ".pdata")
3)which files u exactly wanna build for ARM? is it "ntoskrnl.exe bootvid.dll hal.dll"?
4)which final results u gotta got?
5)why u need touch WP7? u can just look to example code in Android kernel and implement something. so replace PC standard timer realization inside HAL.dll with QSD8250 specific timer code. it's much better to start.
how many ppl u have in ur team?
Cotulla said:
anyway, how u wanna solve the next problems?
1)missing CL compiler for ARM with same set of features like CL for X86.
(CL version for ARM for WCE doesn't have all features supported and usually outdated)
2)this ARM compiler store exception info in other format (not SEH frames, but universal table for functions ".pdata")
3)which files u exactly wanna build for ARM? is it "ntoskrnl.exe bootvid.dll hal.dll"?
4)which final results u gotta got?
5)why u need touch WP7? u can just look to example code in Android kernel and implement something. so replace PC standard timer realization inside HAL.dll with QSD8250 specific timer code. it's much better to start.
how many ppl u have in ur team?
Click to expand...
Click to collapse
************************************************************
update: Attached is ARM low level bootloader just built; this could be used to load LDR and then ntoskrnl.exe .
************************************************************
Please let me know your thoughts and please try to get this to run with debug if you can and pass results & thoughts back to me - Cheers. Hopefully it built ok. What do you think of using this method then? but with FULL & PROPER NTOSKRNL.EXE!
************************************************************
Hi Cotulla, thanks for your reply: appreciate it here.
[also much thanks for hspl, magldr, dft android, leo70ROM. .]
ok, sorry if this is a bit all over the place, i have cut and pasted my answers around to try clean it up but it is late and i think my brain is a bit dead sorry, but answers are here anyway . hope makes sense. firstly please have a look at this video and let me know what you think .
http://www.youtube.com/watch?v=RFNuY2OFRjU
that is ARM..... i am going through build environment and sourcecode now..... thoughts?
http://www.youtube.com/watch?v=n3v4YC9RT-g&feature=related
can learn a lot from wine. i agree with you on linux. same for virtualization, emulation, etc, like bochs qemu everything . sandboxing and hypervisor unveils a LOT . another thing i wanted to ask you was what do you think of FPGA technology for reverse engineering unknown systems? for example, if i were to start almost any project, like say leo70DFTrelease, or NT on Xbox, or whatever, doesnt matter, i think it is worth spending the time or money (for private company to do it for you) and have an FPGA version of the target device being hacked (hd2 in leo70rom case) and then undo the software problems from a hardware logic perspective. just the way i have worked on things many times and it works for me anyway. but I digress.......... . if i were to have done wp7hd2 (leo70rom) and magldr, then i would have had to have had (for me, not as good a dev as you) a FPGA based HD2 made up that ran in every way same but with which i could get right in there and do whatever i needed to do to see response& debug. let me know what you reckon... ok... digress now :
1)missing CL compiler for ARM with same set of features like CL for X86.
(CL version for ARM for WCE doesn't have all features supported and usually outdated)
what features specifically we need here?
what about tweaking this:
http://reactos.colinfinck.de/files/RosBE-Windows/RosBE-ARM-1.0.exe
2)this ARM compiler store exception info in other format (not SEH frames, but universal table for functions ".pdata")
http://www.reactos.org/wiki/PSEH
http://www.reactos.org/forum/viewtopic.php?f=9&t=5716
reading up on _IMAGE_CE_RUNTIME_FUNCTION_ENTRY. just going over stacks and frames and overall exception handling on ARM. are there any issues with reverse execute, virtual unwind? for this type of execution- how would you handle?
more to the point- how would you do this project lol.
problems with prolog/epi? what about moving over x86 asm code? i am right now typing this to you whilst getting updated on specifics on registerslooking at emulators to see this in action. i am reading these here. let me know if on right path and please put up links to whatev will make this project concept a reality . Cheers .
see here
http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html
http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=2818356
can you recommend any compiler, emulator, os, setup, even equipment (JTAG etc etc) i should use, buy, try?
3)which files u exactly wanna build for ARM? is it "ntoskrnl.exe bootvid.dll hal.dll"?
depends on method: i agree (see below) that probably android or (htc-)linux is probably more likely to work but leo70_rom made me think maybe jump from (touch wp7) nk.exe? and are you saying use linux as in LinuxBios type setup?
would need emulated bios, pci bus fixed up (?), QSD timer HAL, ACPI (?), etc ,,, so probably would end up with the following:
a) BIOS (ce7 exe or linux ?): options here could be to make NT think it is running on PALcode, uEFI, or standard ACPI BIOS (your thoughts?). I think uEFI (tianocore/Intel) is best bet here perhaps. this would include MBR code (efi equiv or pal equiv depending) and any psuedo-real or "real" initialization i think.
b) mbr execution merged to and included in above, bootsect. in sim' 'firmware'.
c) $LDR$ @ OSLOADER.EXE (osloader.exe is non-x86 ntldr as im sure you know WITHOUT the code to run ntdetect.com and acts in PALcode architecture to pass on predefined data structues from firmware: tells NTOSKRNL.EXE where and what 2 execute).
d) HAL.DLL (timer, power/acpi, spinlocks, interrupts). another reason i leant towards WP7 as pre-NT launcher is because i assumed that something like BSP, OAL, etc, could be maybe used as base: if not for code, then logical base. what base(s) did you use to create WP7 if i may ask? ie: CE7? I have just installed Platform-Builder. but yeah, i here you regarding android/linux kernel example: ultimately are you saying better, easier, more logical, to go with android/linux you think Cotulla?
e) BOOTVID.DLL
f) KDCOM.DLL (if wp7 would make use of KITL?)
g) drivers as required including the following: ntbootdd.sys (?) might allow easier diversion from bios lack of INT13 and other support: remap to whatever can handle this properly. equivalents for ACPI.sys, filesystem drivers, other power, basics. how should i be looking at things from NT side of things, as in \ObjectTypes like \??, \Global?? etc .... and items like ROOT device in ARM (either CE or linux preloaded) context? any thoughts on how object manager would need to be brought up? for me, now, that is where it gets crucial and is core.
h)SMSS.EXE (NATIVE.EXE) but to begin with could just get drivers and all that working first and strap up into cmdcons (SPCMDCON.SYS). just blue-screen SMSS (windows setup) enough to prove kernel to run on ARM cpu. your thoughts?
i) SYSTEM reg key hive (setupreg.hiv etc?)
...
4)which final results u gotta got?
Tinykrnl type native CLI.
http://www.betaarchive.co.uk/imageupload/1193217573.or.99024.jpg
with USB keyboard support like htc-linux then go from there..... would love a prompt from which could just call any given call - be it CreateProcess or NtCreateProcess or ANYTHING: and it just does it (with debug/KITL) without question . but native NT command line is good for now. not going near win32.
5)why u need touch WP7? u can just look to example code in Android kernel and implement something. so replace PC standard timer realization inside HAL.dll with QSD8250 specific timer code. it's much better to start.
yeah....
I thought linux probably would end up being better: just liked symmetry of windowsCEx-strapping-windowsNTx: making a windowsCE-EFI/BIOS: but yeah, something like LinuxBios (android kernel etc) would be a lot easier in the end yeah? All this is overly simplified and very conceptual but there are basic answers. . once a solid idea has been formed then this could actually be done i think. and before Microsoft . Do you believe Reactos-ARM-build environment could be used? Am i missing anything? 9 people team+myself (+any help you can offer) would make 10 (+1). I think this is a good idea to at least try and i believe with your assistance, guidance, well, it would get done and then complete the HD2 line up fully. . In conclusion, right now, I need ARM emulator software, platform builder, and fully working Compact Edition 7 on HD2 to get some more thoughts and try few things out in platform builder debug then can get final decision, design, plan and start to get everything working. Even though will probably go with Linux/Android obviously as above, I still need 2see init on CE7 on HD2 and be able 2use this along with whatever else we can! have a look at all above links... thanks.
Cotulla, thanks again 4reply>please PM [email protected] something but not posting..... await your PM.
what about this ( http://research.microsoft.com/en-us/projects/singularity/ ) could be of use to NT port with respect to CLR ? haha, or just outright hd2 port Microsoft RDK OS ' singularity ' ? .
************************************************************
update: Attached is ARM low level bootloader just built; this could be used to load LDR and then ntoskrnl.exe .
************************************************************
Please let me know your thoughts and please try to get this to run with debug if you can and pass results & thoughts back to me - Cheers. Hopefully it built ok. What do you think of using this method then? but with FULL & PROPER NTOSKRNL.EXE!
************************************************************
I don't have big knowledge of Windows NT system, but I think it's must be enough to provide basic stuffs for kernel start up.
I guess NT using only int13 services for reading data from disk, int15 services used to detect memory configuration and int10 for initial boot mode.
Because it's embedded hardware, the devices in the system are fixed and limited. So it's enough to provide fixed values for kernel, like available ram memory range.
No need of using any complex systems with CE / Linux.
About CE, you can get almost full kernel sources in PB6.0, trial can be downloaded from MS site.
afaik it's enough to load kernel and dependent modules (drivers) to ram and then run them. after this action kernel drivers should able to run properly on hardware.
About Reactos, I appreciate work of involved people, but I doubt that it's stable
About this project, I don't know yet if I will contribute. I am looking how much it's interesting for me
I always have interesting different things in my hobby as well, so I have choose that to do As well, me is part of DFT team, I need discuss it with them
Now I am asking you to understand more details about your idea(s)
Cotulla said:
I don't have big knowledge of Windows NT system, but I think it's must be enough to provide basic stuffs for kernel start up.
I guess NT using only int13 services for reading data from disk, int15 services used to detect memory configuration and int10 for initial boot mode.
Because it's embedded hardware, the devices in the system are fixed and limited. So it's enough to provide fixed values for kernel, like available ram memory range.
No need of using any complex systems with CE / Linux.
About CE, you can get almost full kernel sources in PB6.0, trial can be downloaded from MS site.
afaik it's enough to load kernel and dependent modules (drivers) to ram and then run them. after this action kernel drivers should able to run properly on hardware.
About Reactos, I appreciate work of involved people, but I doubt that it's stable
About this project, I don't know yet if I will contribute. I am looking how much it's interesting for me
I always have interesting different things in my hobby as well, so I have choose that to do As well, me is part of DFT team, I need discuss it with them
Now I am asking you to understand more details about your idea(s)
Click to expand...
Click to collapse
sure....... . anything ReactOS -freeldr, any arm code, whatever, is just to get basic idea up- to see the actual jump whilst watching (be it by jtag, kitl, usb, or telepathy interface to QD) and go from there; although im sure you could use ReactOS arm code lowlevel bootloader to jump into EITHER "freeldr" or proper "ntldr" or "osloader.exe" (modified of course to have no pci bus scan and the rest.....) that is the dilemma: either jump COMPLETELY like winmo6-android with all structures setup DIRECTLY INTO KERNEL and avoid the whole LDR side of things in that sense anyway; or, well, totally from scratch rebuild loader and subsequently deal with 'firmware' issues... i really do not care in the end if its a jump from one kernel to another (one os to another) because project here is to RUN NT ON ARM/HD2 and not to necessarily have it homogenous down to LDR.
as long as thread, memory, native api, other calls, all that, is truly ntoskrnl = you are running nt on your arm hd2! .
LDR does not matter.... total new rebuild or jump.... whatever comes first .
Thanks Cotulla, yes, we understand where your coming from re do not need linux, ce, and complexities there and i agree: just want to use these for initial testing and deployment of early code with some kitl, debug.... on other notes, trying to put all into organized groups, slowly but surely yes, with bit of faith we will get there in the end .
if totally up to me i would probably take intel/tianocore EFI specification as the base if this could somehow be easily made to run on ARM in this particular context. ie EFI on a HD2!
look at this raw control power!>>> http://www.ami.com/support/doc/AMI_Debug_UEFI_Dsheet_PUB_2008-06-10.pdf
also along these lines, just briefly (is helpful in concept design):
http://x86asm.net/articles/uefi-hypervisors-winning-the-race-to-bare-metal/index.html
http://sourceforge.net/projects/gnu...orig.tar.gz/gnu-efi_3.0h.orig.tar.gz/download
http://x86asm.net/articles/introduction-to-uefi/
http://sourceforge.net/projects/efidevkit/
http://www.logic.nl/Products/Technology/BIOS-and-EFI.aspx
ok, summing up thoughts here>>>
0) object manager and objects; going over arm & ce7, as well as winmo6 and other ce, and comparing with nt and win32/64; just looking at how on final arm release, the \ObjectTypes will be different in the end. very interesting stuff.
1) LACK-OF. no pci bus which is highly expected by ldr/detect so make kernel prob see system in 'PALcode' or EFI mode. pass ldr data structs to kernel in that type of form. otherwise gets very messy and we are not going to hack around because you will end up with an emulator !. this will work but key is determing what 'firmware' passes this data to nt kernel - not from our perspective- but as NT.
2) BIOS. INT services are not used by kernel in that way after it becomes supervisor so will redo drivers unless preload remap somehow. INT only there during ntldr (or can load in ntbootdd.sys to supply these) and this is all pre-phase0 and is very early on.
3) HAL and clk
4) INT services are not used by kernel in that way after it becomes supervisor so will redo drivers unless preload remap somehow. INT only there during ntldr (or can load in ntbootdd.sys to supply these) and this is all pre-phase0 and is very early on.
5) kitl and kdcom
6) registry to pass on (setupreg).
8) filesystem, screen, other drivers
9) final native cli (ntdll.dll) or maybe initially just spcmdcon.sys.
above not in order ..... sorting it all out though .....
ok, looks daunting but like i said before you could get up an nt kernel in setup mode with setup ldr and drivers and old blue screen "dos" mode native subsystem which uses the SMSS.EXE and NTDLL.DLL that are seperately contained in \i386\system32\ or \cmdcons\system32\ - very limited subsystem but is full nt os at kernel . so........ if not ce and not linux preloading, WOW . it is quite an amazing project but doable; so basically just need to see how this armldr (low level strap - be it Reactos or my own clean job- will do both) code runs on the device itself and step by step add the rest in as required! but i still believe actual dev be better jumping from preexisting environment having kitl or some sort of serial or usb debug already there and then working way down to lowest possible level; so, basically, working backwards down to processor.
Doing it all from scratch and CLEAN . (in the end!). .
my brain just straight up exploded.
thanks a lot.
http://www.youtube.com/watch?v=xKc_XGuvNIk .
for the record:
so far without any errors have successfully been able to build the ntdll.dll, hal.dll, smss.exe, bootvid.dll, fastfat.sys, for ARM with no modifications at all, but not yet done a build on the LDR or NTOSKRNL.
just testing compiler here is all and not writing new: this is very early on and i have changed absolutely nothing.
once fill in gaps will give it a go on hd2.
attached.

[APP] BT Tag Writer

BT Tag Writer is application that offers you way to add NFC pairing to your old Bluetooth speakers. NFC pairing allows you to pair, connect and disconnect the device just by tapping the NFC tag with your phone. This application is still under development and this thread can be used to request changes and new features for this application.
Market: https://market.android.com/details?id=fi.siika.bttagwriter
Video: http://www.youtube.com/watch?v=IbuLGsXIvKI
--- original first post ---
Hello everybody.
I have been now writing application for Android devices with NFC capabilities. It basically offers wizard interface for writing new NFC connectivity tags for your Bluetooth speaker(s)/headset(s)/etc. And software that will take care of the actual pairing/connecting, when you tap the tag with your phone. NFC pairing is something Nokia does with N9 and it's Bluetooth speakers, but it looks like Android still doesn't handle this well out-of-the-box. Also I still haven't found easy to use connectivity tag writers for any devices.
Sort demo of application in it's current state: Check youtube video kzoG5VM6VcU (can't have this as a proper link, as I only have less than 8 posts to this forum, sorry)
Before I release this software to market, I would like have some people testing it with their speakers and devices. I really hate alpha level software in market. If you have Galaxy Nexus, some sort of Bluetooth speaker(s)/headset(s) and hopefully some writable NFC tags, and you would like to help me to get this software tested: Please tell it here. I still have some small things to resolve before this is ready for closed testing. If you like to help me to get this tested please also tell what sort of Bluetooth device you have and what NFC tags you have available.
I will most likely release this software as free (gratis) and probably in open source (don't know the license yet). So I am not planning stealing your time and then making money out of it. Only thing I can offer to you is to add your name to application's thanks list.
Also if you know software that already does all this, please tell. If my software does not bring anything new, I have to redesign it little bit.
Thanks.
I'd like to test your app.
Got the same NFC-Chip like you (mi(d)fire or something like that I've bought for my old Nexus S) and a Nokia BH-504 Bluetooth Headset and for sure a Galaxy Nexus and a Galaxy S, too
Just tell me how I can help testing...
i would test as well buddy!
s60mike said:
I'd like to test your app.
Got the same NFC-Chip like you (mi(d)fire or something like that I've bought for my old Nexus S) and a Nokia BH-504 Bluetooth Headset and for sure a Galaxy Nexus and a Galaxy S, too
Just tell me how I can help testing...
Click to expand...
Click to collapse
For now this is ICS software, do you happen to have some unofficial 4.0 image in those? I kinda would like to make this 4.0 only software, as all NFC devices most likely will get that update.
S suxeN said:
i would test as well buddy!
Click to expand...
Click to collapse
Your phone is Nexus S? What sort of Bluetooth devices you have, and NFC tags...
I'd love to test this. I've been using NFC Task Launcher to do something similar but it doesn't currently support connecting to a specific device. I'm running ICS on a GSM Galaxy Nexus and have several A2DP speakers I could test with.
Northernmost said:
I'd love to test this. I've been using NFC Task Launcher to do something similar but it doesn't currently support connecting to a specific device. I'm running ICS on a GSM Galaxy Nexus and have several A2DP speakers I could test with.
Click to expand...
Click to collapse
I will fix few annoying things and then will put link to debug apk-file here (maybe Wednesday). I will try to see if I can make it run in 2.3.5+ too. Anyhow software will be limited to Mifare Ultralight tags (original and C versions). I have to buy other type tags to see what I can do with those, but that's later. Common Ndef writer classes does not work at all with Android or then I'm doing something wrong.
Android also really limits clean ways to do intents for more complex tags. So these tags software now writes are not proper connectivity handover tags. Just the core part of those is used and stored as single NDEF mime item and then this app is marked to handle those NDEF messages/records. Positive side with that is of course that information fits to smaller tags. Also PIN code storing will be probably done little hacky way to the first version.
alump said:
For now this is ICS software, do you happen to have some unofficial 4.0 image in those? I kinda would like to make this 4.0 only software, as all NFC devices most likely will get that update.
Your phone is Nexus S? What sort of Bluetooth devices you have, and NFC tags...
Click to expand...
Click to collapse
Like said above. Both devices got ICS and NFC and I've got Midfire NFC Tags...
s60mike said:
Like said above. Both devices got ICS and NFC and I've got Midfire NFC Tags...
Click to expand...
Click to collapse
So many different Mifare tags out there. Mifare Classics will not work (for now).
Anyway, pushed software to market after all. In few hours you should be able to find it from there. Offer still stays, if you can try it out and report issues here it would help. I had to drop headset support for now as it didn't work as well as I hoped.
Great! Will try it out today. Here's the market link https://market.android.com/details?id=fi.siika.bttagwriter
Sent from my Galaxy Nexus using Tapatalk
alump said:
Mifare Classics will not work (for now).
Click to expand...
Click to collapse
Missed that bit. I really must learn to read All the Mifare tags I have are Classic ones.
A couple of initial thoughts after myfirst use of the app...
1) Back when I was on 2.3.7 there was a Bluetooth A2DP widget I used (can't remember the exact name now) that, when you created the widget, would display a list of already paired devices that supported the A2DP profile. Once you'd picked one the widget would attempt to connect to it automatically.
I'd like to see your app do something similar rather than having to go through a pairing process with a device I've already paired with. It's a small thing to do I know, but I'd imagine most users will have already paired with their speakers before ever finding your app. I don't know if you can enumerate paired devices supporting the A2DP profile in ICS though.
2) When your app was scanning for BT devices it would find my speakers but would only display the BT address. It didn't display the BT device name after waiting for several seconds. This may be a BT stack problem though.
3) It looks very nice!
Northernmost said:
Missed that bit. I really must learn to read All the Mifare tags I have are Classic ones.
A couple of initial thoughts after myfirst use of the app...
1) ....I'd like to see your app do something similar rather than having to go through a pairing process with a device I've already paired with...
2) When your app was scanning for BT devices it would find my speakers but would only display the BT address. It didn't display the BT device name after waiting for several seconds. This may be a BT stack problem though.
Click to expand...
Click to collapse
1. Yes my app does not trust the already known devices list. Have to see if I can get that too. Anyway my application does not pair devices that have been paired already. It simply is stupid to not offer those. I have to check if I can used paired devices list too. I have to add some indicator to list what devices are then old known and what are just found with discovery.
2. I have seen "no name" issue only once. But yes, that's "stack problem"... I hope
Anyway I think I have to try to add Mifare Classic support first.
alump said:
1. Yes my app does not trust the already known devices list. Have to see if I can get that too. Anyway my application does not pair devices that have been paired already. It simply is stupid to not offer those. I have to check if I can used paired devices list too. I have to add some indicator to list what devices are then old known and what are just found with discovery.
Click to expand...
Click to collapse
Sorry for spam, but finally this will be mine 8th post
Request to list already paired devices is now added to Market version (0.3). So no need to turn already paired devices to pairing mode when writing tags.
Support for other than ultralight Mifare tags might take some time. Thanks to keys etc those tags are not ideal for this use. I think I will try to add headset support first.
Just to confirm that 0.3 is listing my paired A2DP devices
alump said:
Your phone is Nexus S? What sort of Bluetooth devices you have, and NFC tags...
Click to expand...
Click to collapse
Nexus S, running Brainmasters ICS 4.0.3
Bluetooth devices:
2 headsets
another Xperia ArcS
NFC Tag:
dont have a tag yet, but could get some. Dunno what kind they are!
S suxeN said:
NFC Tag:
dont have a tag yet, but could get some. Dunno what kind they are!
Click to expand...
Click to collapse
My unofficial NFC tag type list (from memory, might have mistakes)
Mifare Ultralight C is my recommendation. If you plan to use this for this, or for example: storing your contact information, storing some url, storing application starter information etc.... Simple, cheap and easy to use alternative.
Mifare Ultralight (non C) is too small for almost anything. You can use it anyhow with my software (limited features) and you can fit sort URL to it.
Mifare 1K, Classic, etc... these are for more secure needs. Or if you really want to store a lot more information to the tag. For non secure usage (e.g. my app) the secure features are just annoying extra that makes things more complex. Key based security so if you mess up with key, then you can't read or replace that data anymore. Also kinda "proprietary alternative".
Felicas are Sony's alternative for all these. Probably not easy to find outside Japan. Topaz is good alternative for Ultralights, but I don't know how well Android supports those currently (haven't tested). And if Broascom/Innovision still makes these? Not too easy to find anyway. And then there are many more... it's a total mess and maybe the main reason why it's so hard for NFC to break big time.
But for the most of use cases: I assume Mifare Ultralight C is the best alternative.
NFC Tag store examples:
TagAge - I'm using this, but mainly because I live in Finland.
NFCDog - is one UK alternative.
And many more, Google search is your friend. And this message has't been paid by either of these stores
alump said:
My unofficial NFC tag type list (from memory, might have mistakes)
Mifare Ultralight C is my recommendation. If you plan to use this for this, or for example: storing your contact information, storing some url, storing application starter information etc.... Simple, cheap and easy to use alternative.
Mifare Ultralight (non C) is too small for almost anything. You can use it anyhow with my software (limited features) and you can fit sort URL to it.
Mifare 1K, Classic, etc... these are for more secure needs. Or if you really want to store a lot more information to the tag. For non secure usage (e.g. my app) the secure features are just annoying extra that makes things more complex. Key based security so if you mess up with key, then you can't read or replace that data anymore. Also kinda "proprietary alternative".
Felicas are Sony's alternative for all these. Probably not easy to find outside Japan. Topaz is good alternative for Ultralights, but I don't know how well Android supports those currently (haven't tested). And if Broascom/Innovision still makes these? Not too easy to find anyway. And then there are many more... it's a total mess and maybe the main reason why it's so hard for NFC to break big time.
But for the most of use cases: I assume Mifare Ultralight C is the best alternative.
NFC Tag store examples:
TagAge - I'm using this, but mainly because I live in Finland.
NFCDog - is one UK alternative.
And many more, Google search is your friend. And this message has't been paid by either of these stores
Click to expand...
Click to collapse
Okay, ima gonna order some and report back to u
music auto start
is there a way to make it so that my music app doesn't auto play my most recently played track when the BT connection is made ... id like for it to simply open the app

Card Emulation in general

Hi there,
right now I am researching for a possibility to emulate a smartcard with a smartphone. As we all know, the standard os and api won't let us do this. What I want to achieve is create a way to use the smartphone for physical access without the need to change the existing infrastructure. o achieve that, the smart phones gets a localy and time limited informationtoken it should present to the reader. In other words, I actually dont realy need access to the secure element, as any data would be temporary.
Right now I am a bit confused about this. Is there a way to use card emulation, without the need of a secure element? I have searched for different ways to acchieve this, but on many ends, I can't seem to find a definitv answer.
For example I stumbled on OpenNFC. They praise that they can acchieve card emulation. Yet, they don't provide any examples on this and fail to actualy deliver some sort of information on the requirements of this. As I understand it, it seems like this method only works when the smartphone uses Inside Secures Chips MicroRead or SecuRead. Anyone knows more about this?
I'm realy open to ideas on this one, as it seems theres little to no documentation or examples to go on.
I'd realy be happy to read about what you guys found out on this issue as of yet.
I've been looking into it too. This is what I have found:
EddieLeeDefcon20.pdf
nfcproxy
(Google them, I can't post links)
So, yeah, it can be done, but you have to modify android to be able to.
I ended up to OpenNFC too, but no sample code!
I have a good background on Mifare Classic 1K and 4K programming using RFM130 under linux and win.
Sent from my HTC One X using Tapatalk 2
Ok, so after browsing the mailinglist like a maniac I found this answer from one of OpenNFCs developers:
Hello,
The OpenNFC stack porting on Android complies to the Google API, as far as the applications are concerned.
Since these API do not allow an APK to do card emulation, it is not possible to use this mode on the Nexus,
nor on any Android phone, with or without OpenNFC.
However, OpenNFC provides card emulation feature for other porting (Win32, linux), depending on the hardware capabilities.
Kind regards,
Stephane
Click to expand...
Click to collapse
Source is on their mailing list on sourceforge, cant post link....
So seems we can forget this one... Only option would be using the Cyanogenmod patch that is used by NFCProxy.
When this message has been posted? I think things has changed (not sure)
Anyway, I posted a message yesterday to have more informations about their projects on Android
The Message is from March 29th, 2012.
Again as I said, if that has changed, they really have to work on their communication to the outside. There seems to be noone but the devs that can say anything about this. And that means quite a lot.
When there is no API for something, we can use native code and directly communicate to NFC hardware. Agree?
Sent from my HTC One X using Tapatalk 2
Well, the way I understand it is, that we could take a build of android and tinker with it to get it to work. We would have to change the NFC softwarestack and its interaction with the rest of the system in order to make software emulation possible. That is quite some pile of nontrivial work to do if you ask me.
Sorry for doing a new reply instead of editing the old one, but I think this is interesting enoug to not get overread.
I got an answer from the OpenNFC Developerteam regarding my question. Part of my question was also if it was possible to emulate for example a Mifare Tag through their NFC Stack. Here is the answer:
Hello XXXXX,
The Open NFC stack is designed to be largely hardware-independent, with a small adaptation module (NAL) for each hardware chipset. However, currently we only provide the NAL module for the MicroRead / Securead chipsets; therefore out of the box we are only compatible with these chipsets.
It is possible to emulate ISO 14443-4A and -4B cards and Type 4 tags from the Open NFC stack; for emulation of MiFare Tag, you’d indeed need to use a Secure Element.
Best regards,
Sebastien.
Click to expand...
Click to collapse
Hope this clears some questions regarding OpenNFC.

[Q] Current state of NFC emulation

I've been looking into NFC card emulation on Android and have done some pretty thorough Googling.
As far as I understand, some modifications were made way back in Android 2.3 by another XDA member. Later on, a more complete framework for emulation was made by adding PCD tag types to Cyanogen 9.1+, enabling emulation in a semi-supported way for those running Cyanogen. With the latest versions of Android, it seems like Google has semi-official support for card emulation through the com.android.nfc_extras class.
My main questions: are there any useful apps out there that take advantage of this? Does this semiofficial API work with the Nexus 4 / GS4, which use a different NFC chip (non-NXP) from all other Android phones? Does this, perhaps, enable easy card emulation for assorted cards like Blackberry has had for a while?
Your not the only one trying to figure the problem of NFC emulation on Android devices,
From what I've been been able to conclude so far:
1) Stock versions of Android don't support smart card emulation
2) The NFC libraries that the Stock versions of Android do not contain smart card emulation libraries (as you mentioned the ISOPcdA and ISOPcdB classes)
3) Of the NFC chipsets out on the market right now, not all NFC chipsets have a Secure Element
4) There are only three (as far as I know) Android application that utilize the NFC Chipsets for contactless money transactions (Google Wallet, ISIS Mobile Wallet and Simply Tapp)
Some technical background stuff on the Secure Element
1) The Secure Element is not directly accessed from the Android Operating system, but an applications ability to access the secure element is dependent upon the proper keys (public/private keys), where the manufacturer holds the master key for access
2) When the proper key(s) is/are entered the application writes some code into the memory of the Secure Element. To prevent a brute force attack, after several incorrect password attempts, access to the Secure Element is permanently disabled
3) When the Application needs the Secure Element, what could be assumed as a vector is preformed within the Android operating system that requests the code stored on the Secure Element to execute
4) Early adopters of Google Wallet faced the possibility of borking the Secure Element if they did not deattach Wallet before preforming an Android System update (from what I've read AFAIK, Google has since moved to a cloud storage of the needed keys)
From the business perspective:
1) Only one Major US Cell Carrier, Sprint, officially supports Google Wallet
2) The other three carriers, AT&T, T-Mobile and Verizon refuses to allow Google Wallet to be installed on their devices, instead forcing users to use ISIS Mobile Wallet
3) Speculation is that these three carriers may have wanted a monetary kickback for transactions
Looking at the reviews for ISIS Mobile Wallet, majority of them are poor reviews with a handful easily citing the actions of these three as anti-competitive. There where also reports of a poor supporting backbone, inability of specialized SIM cards that contain a secure element (access to the NFC is done via a decitated wire or wire pair link), and non-compatibility even with the official hardware needed. Back in May Verizon was quoted as blocking Google Wallet due to needed access to the Secure Element, yet has no problem with ISIS accessing it (http://techcrunch.com/2013/05/16/google-wallet-rolls-out-to-more-devices-nope-still-no-love-for-verizon-att-or-t-mobile-owners/) From a good faith perspective of these action, I recently submitted a concern of anti-trust to the US Department of Justice.
You mentioned the NFC emulation in CM 9.1 + . To extend upon the post mentioned, other developers continued down that path to improve the code. As a good reference, this blog link does provide some technical info about the emulation (http://nelenkov.blogspot.com/2012/10/emulating-pki-smart-card-with-cm91.html). Doug Yeager, one who holds several patents in NFC technology ended up writing the ISOPcdA and ISOPcdB classes with official incorporation into CM 9.1 + (git link, https://github.com/CyanogenMod/android_frameworks_base/tree/ics/core/java/android/nfc/tech). Yeager and his business partner Ted Fifelski (coming from the Point of Sale sector), both wanting to create a more open NFC environment created Simply Tapp (http://www.simplytapp.com/about.html). Simply Tapp also stores the keys remotely. As of right now, there has been no reported cases of the cell carriers blocking Simply Tapps' data connection.
Because the frameworks of the manufacturers variants of the Android Operating system are closed source, difficulty has been encountered trying to add these classes. To try and remove this barrier, I ended up submitted an enhancement ticket to try and get Google to add this code (http://code.google.com/p/android/issues/detail?id=56509) with what appears to be a positive response.
Hopefully this information helps you out seeing the current situation with NFC emulation,
Joe
Thanks
This information is very useful it's a shame there is not a simple way or at least a better way to emulate any NFC Forum defined tag hopefully google will make aviable in it's Android SDK a way to emulate a NFC tag
luisrojito said:
This information is very useful it's a shame there is not a simple way or at least a better way to emulate any NFC Forum defined tag hopefully google will make aviable in it's Android SDK a way to emulate a NFC tag
Click to expand...
Click to collapse
The only viable way (I'm concluded) to get NFC to move beyond a novelty to a truly respectable standard is to adapt the technology to devices that are not subject to the polices of the cellular carriers ( I have a concept, but I don't want to disclose too much at this point in the brainstorming)
Sending an email to NXP semiconductor about the access to the secure element resulted in a reply directed me to their product page http://www.nxp.com/products/identification_and_security/reader_ics/nfc_contactless_reader_ics/ (link working as of 2013-08-07).
EDIT: In addition to the above the following links may also help us out:
http://www.nxp.com/products/identification_and_security/authentication/
Smart Card ICs (Integrated circuits not ice cream sandwich)
-Landing Page
http://www.nxp.com/products/identification_and_security/smart_card_ics/
-Fast Pay secure Contactless Payment
http://www.nxp.com/products/identification_and_security/smart_card_ics/fastpay_secure_contactless_payment/
-MIFARE Smart Card ICs
--Landing Page
http://www.nxp.com/products/identification_and_security/smart_card_ics/mifare_smart_card_ics/
--SmarteID
http://www.nxp.com/products/identification_and_security/smart_card_ics/smarteid/
--SmartMX contact interface controllers
http://www.nxp.com/products/identification_and_security/smart_card_ics/smartmx_contact_interface_controllers/
--SmartMX dual interface controllers
http://www.nxp.com/products/identification_and_security/smart_card_ics/smartmx_dual_interface_controllers/
--SmartMX2
http://www.nxp.com/products/identification_and_security/smart_card_ics/smartmx2/

Call for help in porting PostmarketOS to OPPO Find 7/7a

Dear XDA members,
if you feel the same as the friends at https://postmarketos.org/ :
"We are sick of not receiving updates shortly after buying new phones. Sick of the walled gardens deeply integrated into Android
and iOS. That's why we are developing a sustainable, privacy and security focused free software mobile OS that is modeled after
traditional Linux distributions. With privilege separation in mind. Let's keep our devices useful and safe until they physically break!",
then it is time for you to step forward!!!
Last night initial support for the OPPO Find 7a was commited to the postmarketos pmaports git repo
https://gitlab.com/postmarketOS/pmaports with commit https://gitlab.com/postmarketOS/pmaports/commit/1f8095771c4659d31e8b228dd85018e9ca9963ca.
It was a pain to get this committed as I'm not used to the git workflow, nonetheless with the help of the maintainers over there
and after deleting a few merge requests ( a no-no, don't do that!!) at the end we got it done.
At the moment the device port is only for the Find 7a for the simple reason that I own one but I'm sure it can be extended to the
Find 7 and Find 7s.
The answer to the question that you dear reader have in your mind now: "what works?" is easy: NOTHING WORKS YET!!!
The only thing working so far is that the kernel compiles, you can flash it or fastboot boot it, start a rootfs on the microsd card
and ssh into the system over a usbnet connection to look at all that lovely processes running.
Lots of work still needs to be done, I'm pretty shure that I will not be able to do this myself as my knowledge about the hardware
part of the device is minimal and I would need to reinvent the wheel for every little progress.
As I'm sure that there are still a lot of knowleadgeable develepers (THAT'S YOU!!!) lurking around this list my hope is to lure them
to contribute to this project.
I personally dream of the Find 7 running postmarketos and KDE plasma-mobile but even maemo would be ok!!!
Come on, let's do it!!!
Best regards,
farmatito
Links to get more info:
https://postmarketos.org/
https://wiki.postmarketos.org/wiki/OPPO_FIND_7a_(oppo-find-7a)
https://wiki.postmarketos.org/wiki/Porting_to_a_new_device
Screen and touchscreen working!!!
Still a lot of work to do. Help is appreciated!
Progress report
New package for installing various firmware blobs merged!
Next big thing should be to try to make video hardware acceleration work,
if there are any experts here help is appreciated!!!!.
Progress report
The attached photo shows my Find7a running the XFCE4 desktop.
The interface is fast enough even without hardware acceleration.
As the Desktop is not optimized for mobile devices it is not
a such a great user experience, but the basics work.
Still a lot of work to do, help is appreciated.
Progress report
Wifi Works!!! and you can browse the internet!!!
Help is still appreciated!!
No progress
This time there is no progress to report:
video acceleration not working yet due to the fact that the kernel is rather old (3.4.113), backporting newer drivers did not work out as the codebase differs to much (so no KDE plasma).
making the various sensors work is also rather difficult as the kernel uses a Device Tree and so even if there are drivers for the sensors you need some board specific info to create the device tree nodes.
last but not least the last version of xfce4 in alpine linux is not touchscreen friendly. GTK combo-boxes are now unusable (will eventually try maemo).
Help is very, very appreciated.
Saw this post, has a Find 7 and want to know more.

Categories

Resources