2017-02-18 67 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模式來更新和讀取,而不是絕對模式。

相關問題