2017-02-18 64 views
0

我试图按照3GPP specificationsTS 102 221 file)中所述更新EFsms,并且出现一些意外的行为。更新EFsms数据时修改所有记录,而不仅仅是所选记录

我使用下面的命令来更新EF:

  • SELECT EFsms(ADF下) - 00 A4 00 00 02 6F 3C
  • UPDATE RECORD - 00 DC 00 00 B0 [TPDU]

下面是一个例子我使用的TPDU(我掩盖了地址):

030791XXXXXXXXXXFX640C91XXXXXXXXXXXX001271208181015180

(尾随FF所以它的长度为176个字节)

然后我试图读取文件中的记录,使用:

  • SELECT EFsms(下ADF) - 00 A4 00 00 02 6F 3C
  • 读记录 - 00 B2 XX 00 B0(XX是记录号0x01-0x0A)

当我读回记录,记录有更新的值,即使我没有先选择它。无论我是否指定要更新的确切记录,都会发生这种情况。

如何更新所选记录?

回答

0

显然,用于更新和阅读的APDU是错误的。

它应该是:

  • UPDATE RECORD - 00 DC XX 04 B0 [TPDU]
  • READ RECORD - 00 B2 XX 04 B0

其中XX是记录编号。
因为我使用P2 = 0,它使用CURRENT RECORD模式来更新和读取,而不是绝对模式。

相关问题