[英]How to write protect an NTAG203 NFC chip programmatically on android?
我一直在研究用於會員卡解決方案的NTAG203 NFC芯片,並打算在每個卡上設置唯一的ID並將其寫入。
奇怪的是,盡管我可以找到出售的具有寫保護功能的NTAG203芯片,但我在網上找不到太多有關如何寫保護功能的芯片。 我也看到過提供寫保護服務的應用程序。
您如何編碼一個Android應用程序以在NTAG203上啟用寫保護?
謝謝!
(為清楚起見,已編輯問題)
是的,那是可能的。 NTAG203( 數據表 )是ISO / IEC 14443 Type A(“ NFC-A”)標簽,並遵循NFC論壇Type 2標簽操作規范。 為了激活此類標簽的物理寫保護功能,您需要設置鎖定位。
在Android上,您可以通過為標簽句柄獲取NfcA
技術連接器類的實例來訪問此類標簽:
Tag tag = ... // I assume you already received the tag handle by means of an NFC discovery intent
NfcA nfcA = NfcA.get(tag);
if (nfcA != null) {
// this is an NFC-A tag
...
NTAG203的鎖定位位於頁面2( 0x02
)字節2-3和頁面40( 0x28
)字節0-1中。 這4個字節的每個位控制NTAG203存儲區某些頁面的鎖定狀態。 為了激活鎖定,您必須通過對包含鎖定位的頁面發出寫命令來將鎖定位設置為'1'
。 因此,對於鎖定整個標簽的最簡單方案,您可以執行以下操作:
// connect to the tag
nfcA.connect();
byte[] result;
// write all-ones to the lock bits on page 0x02
result = nfcA.transceive(new byte[]{
(byte)0xA2, // Command: WRITE
(byte)0x02, // Address: page 0x02 (2)
(byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF // Data: set bytes 2-3 to all '1'
});
// write all-ones to the lock bits on page 0x28
result = nfcA.transceive(new byte[]{
(byte)0xA2, // Command: WRITE
(byte)0x02, // Address: page 0x28 (40)
(byte)0xFF, (byte)0x11, (byte)0x00, (byte)0x00 // Data: set byte 0 and lock bits in byte 1 to all '1'
});
nfcA.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.