1

我正在开发一个用于在 android 下管理 ICODE SLIX-S 标签的应用程序。我发现有关数据表中定义的“SET_PASSWORD”的问题(https://www.nxp.com/docs/en/data-sheet/SL2S2002_SL2S2102.pdf第 16 页)。已经有关于这个问题的讨论(NFC-V SLIX-S 写密码),但还没有解决。我认为问题是传递给收发器的命令格式,我尝试了不同的格式但没有解决方案。如果有人以任何方式解决了,非常感谢!

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
4

2 回答 2

3

NFC-V android 堆栈无法正常工作。它在 Android 操作系统上退出超时问题。因此,有时即使您收到 TagLost,该命令也会在 Icode SLIX2 上执行。我发现最好的解决方案是使用 NXP TapLink 库。它取代了 NFC android 堆栈,并与他们的 NXP 标签(从 Mifare 到 ICode)配合得很好。

设置的密码会变成:

byte[] rand = iCodeSLIX2.getRandomNumber();
byte[] pwd = Utilities.xor(password, Utilities.append(rand, rand));
iCodeSLIX2.setPasswordWrite(pwd);
于 2019-03-14T16:51:36.933 回答
0

请再次查看“ NFC-V SLIX-S 写入密码”的帖子。我想通了并发布了解决方案。写入密码的正确方法是在此之前设置密码。即使您有一张不在隐私模式下的全新卡,您也必须使用默认预设密码“0F0F0F0F”执行 SET PASSWORD 命令。

当然,您必须使用正确的标志!对于 SET PASSWORD 它应该是 02,对于 WRITE PASSWORD 它是 22!

问候甘布里乌斯

于 2020-01-30T02:31:27.040 回答