获取可用内存MIFARE DESFire EV1

时间:2018-01-11 04:23:10

标签: smartcard rfid mifare apdu contactless-smartcard

如何获取MIFARE DESFire EV1卡的可用内存?我知道一些Android应用程序显示可用内存。那么是否有任何APDU命令来获取可用内存?

1 个答案:

答案 0 :(得分:3)

您可以使用GetVersion命令获取总内存大小:

<-- 90 60 0000 00
--> ZZ YY XX WW VV TT SS 91AF
<-- 90 AF 0000 00
--> ZZ YY XX WW VV TT SS 91AF
<-- 90 AF 0000 00
--> UUUUUUUUUUUUUU NNNNNNNNNN WW YY 9100

其中SS是存储大小,可以解码为

int storageBytes = 1 << ((int)SS & 0x0FE) >>> 1);
bool storageExact = ((int)SS & 0x01) != 0;

最低位表示指示的存储大小(以字节为单位)是否为精确值,或者实际存储大小是否在storageBytesstorageBytes * 2之间。

您还可以使用FreeMem命令获取可用的可用内存(以字节为单位):

<-- 90 6E 0000 00
--> SSSSSS 9100