在Android中用Mifare Ultralight写作 - 内存锁定?

时间:2012-11-16 12:07:01

标签: android nfc mifare

我在将数据写入Mifare Ultralight C标签时遇到问题。我可以读取它并写入部分内存,但似乎它的一部分被阻止,它向我显示IOException“Transceive failed”。我不能写14-27的记忆位置。块似乎没有被锁定。 我第一次写东西,它工作得很好,但现在我甚至无法将标签格式化为Ndef。

我正在使用方法

ultralight.writePage(pageOffset, data);

我无法上传图片,但希望这有助于更好地描述问题(来自TagInfo应用的信息):

ATQA 0x4400
SAK 0x00
Memory content:
00 * 04:4F:BD 7E (UID0-UID2, BCC0)
01 * 5A:53:28:80 (UID3-UID6)
02 . A1 48 00:00 (BCC1, INT, LOCK0-LOCK1)
03 . E1:10:12:00 (OTP0-OTP3)
04-OF . DATA
10-27 ? DATA
28 ?p XX XX -- -- (LOCK2-LOCK3)
29 ?p XX XX -- -- (CNT0-CNT1)
2A ?p 28 -- -- -- (AUTH0)
2B ?p XX -- -- -- (AUTH1)
2C ?- XX XX XX XX
2D ?- XX XX XX XX
2E ?- XX XX XX XX
2F ?- XX XX XX XX

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

也许你在访问位中写错了,即使你有正确的写密钥也无法写入数据。

答案 1 :(得分:0)

页面0x10及更高版本的锁定字节是不可访问的,因此如果您不知道身份验证密钥,很难确定发生了什么。您可能做的是覆盖页面0x28并超出您第一​​次写入数据,从而意外地锁定页面0x14-0x27(并且可能设置密码)。一旦页面被锁定,不幸的是你不能解锁它。