更新EFsms数据时修改的所有记录,而不仅仅是选定的记录

时间:2017-02-18 21:08:03

标签: sms apdu

我试图按照3GPP specificationsTS 102 221 file)中的说明更新EFsms,但我得到了一些意想不到的行为。

我使用以下命令更新EF:

  • 选择EFsms(在ADF下) - 00 A4 00 00 02 6F 3C
  • 更新记录 - 00 DC 00 00 B0 [TPDU]

以下是我使用的TPDU示例(我屏蔽了地址):

030791XXXXXXXXXXFX640C91XXXXXXXXXXXX001271208181015180

(尾随FF,因此其长度为176字节)

然后我尝试使用以下方法读取文件的记录:

  • 选择EFsms(在ADF下) - 00 A4 00 00 02 6F 3C
  • READ RECORD - 00 B2 XX 00 B0(其中XX是记录号0x01-0x0A)

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

如何仅更新所选记录?

1 个答案:

答案 0 :(得分:0)

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

应该是:

  • 更新记录 - 00 DC XX 04 B0 [TPDU]
  • READ RECORD - 00 B2 XX 04 B0

XX是记录号码。
因为我使用P2 = 0,所以它使用CURRENT RECORD模式进行更新和读取而不是ABSOLUTE模式。