NFC-V ICODE SLIX (SL2S2002)

1k views Asked by At

I'm developing an application for managing ICODE SLIX-S tags under android. I'm finding problems regarding the "SET_PASSWORD" as defined in the data sheet (https://www.nxp.com/docs/en/data-sheet/SL2S2002_SL2S2102.pdf page 16). There is already a discussion about the problem(NFC-V SLIX-S write password) but it has not been solved. The problem I think is the format of the command passed to the transceive, I tried different formats but without solution. If someone had resolved in any way, thank you very much!

cmd = new byte[] {
    (byte)0x00,  // FLAGS
    (byte)0xB3,  // SET_PASSWORD!
    (byte)0x04, //manufacturer code (NXP should be 0x04)
    //0, 0, 0, 0, 0, 0, 0, 0,
    (byte)0x10,
    0, 0, 0, 0
};
//System.arraycopy(detectedTag.getId(), 0, cmd, 3, 8);  // paste tag UID into command
System.arraycopy(exorPassword, 0, cmd, 4, 4);
response = nfcV.transceive(cmd);  


W/System.err: android.nfc.TagLostException: Tag was lost.
    at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48) <- THIS ON TRANSCEIVE
2

There are 2 answers

0
JMC On

NFC-V android stack is not working properly. It exits a timeout issue on Android OS. So, sometime even if you get a TagLost the command is executed on the Icode SLIX2. The best solution, I found, is to use NXP TapLink library. It replaces NFC android stack and works great with their NXP tags (from Mifare to ICode).

The set password will become:

byte[] rand = iCodeSLIX2.getRandomNumber();
byte[] pwd = Utilities.xor(password, Utilities.append(rand, rand));
iCodeSLIX2.setPasswordWrite(pwd);
0
Gambrius On

please take a look at the "NFC-V SLIX-S write password" post again. I figured it out and posted a solution. The proper way to WRITE PASSWORD is to SET PASSWORD prior tp that. Even if you have a brand new card that is not in PRIVACY MODE you have to do the SET PASSWORD command with the default preset password of "0F0F0F0F".

And of course you have to use the correct flag! For SET PASSWORD it should be 02 and for WRITE PASSWORD it is 22!

Regards Gambrius