Запись с помощью Mifare Ultralight в Android — память заблокирована?

У меня проблема с записью данных в тег Mifare Ultralight C. Я могу читать и писать в часть памяти, но кажется, что часть ее заблокирована, и она показывает мне IOException «Ошибка передачи». Я не могу записать позиции памяти 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

Любые идеи?

Спасибо


person Tx33    schedule 16.11.2012    source источник


Ответы (2)


Байты блокировки для страниц 0x10 и выше недоступны, поэтому трудно точно сказать, что происходит, если вы не знаете ключ аутентификации. Что вы, вероятно, сделали, так это перезаписали страницу 0x28 и после первой записи данных, тем самым случайно заблокировав страницы 0x14-0x27 (и, возможно, установив пароль). К сожалению, если страница заблокирована, вы больше не сможете ее разблокировать.

person NFC guy    schedule 16.11.2012
comment
Вероятно, вы правы, я с нетерпением жду этого, спасибо вам обоим. В любом случае, может ли кто-нибудь объяснить шаги, необходимые для записи простого текста в тег Mifare Ultralight C? Например: 1) записать позицию памяти XX, 2) изменить динамические блокировки, 3)... - person Tx33; 19.11.2012
comment
См., например. nxp.com/documents/application_note/AN1303.pdf о том, как хранить NDEF и nxp.com/documents/data_sheet/MF0ICU1.pdf для команд. Однако Android предоставляет высокоуровневый доступ для хранения NDEF через классы Ndef и NdefFormatable и доступ к низкоуровневым командам через класс MifareUltralight. - person NFC guy; 19.11.2012
comment
Хорошо, спасибо, я прочитаю первый документ, я читал спецификацию NFCForum для тегов типа 2. Ndef и луч Android просты, но мне нужен низкоуровневый доступ к MifareUltralight и MifareClassic. - person Tx33; 20.11.2012

Возможно, вы написали что-то неправильное в битах доступа, которые не позволяют вам записывать данные, даже если у вас есть правильный ключ записи.

person rosco    schedule 16.11.2012