在 NXP NTAG216 中配置 AUTH0 字段

Configuring AUTH0 field in NXP NTAG216

我正在尝试为 NTAG216 配置密码保护。

我正在尝试在 AUTH0 字节中写入受保护的起始地址,我已经阅读了 ntag2x 上的整个文档,但我不知道该怎么做。

分析tag内容可以看到AUTH0专用页面有.r平,应该是写保护了,但是如何解锁这个页面呢?

有人可以帮助我或为此提供示例或 android 文档吗?

提前致谢

我的问题已经解决了。

问题是我之前无意中设置了PWD、PACK和AUTH0,所以我不能再写AUTH0地址了,因为那个地址被锁定了。

如文档中所写,该地址可以像普通内存页一样简单地写入。

android 我正在使用此代码来保护 NTAG216

根据 Michael Roland 的说法,我已经这样编辑了我的代码。我更喜欢在CFG1中写默认值,因为这段代码对我来说是作为标签的初始化,然后我将其锁定在读写状态,所以应该不可能进入脏数据状态

// PWD
if (!ntag.write(0xE5, pwd.getBytes(CHARSET))) {
    showToastMex("ERROR IN WRITING PWD");
    retValue = false;
}

// PACK
if (retValue) {
    byte[] empty = {0x00, 0x00};
    byte[] completePack = ArrayUtils.addAll(pack.getBytes(HbgHelper.CHARSET), empty);
    if (!ntag.write(0xE6, completePack)) {
        showToastMex("ERROR IN WRITING PACK");
        retValue = false;
    }
}

// PROT (enable read and write password protection from AUTH0 ADDRESS
if (success) {
    byte accessCfg = (byte)Integer.parseInt("10000000", 2);
    byte[] cfg2 = {accessCfg, 0x00, 0x00, 0x00};
    if (!ntag.write(0xE4, cfg2)) {
        showToast("ERROR IN WRITING PROT");
        success = false;
    }
 }

// AUTH0 (from page 220 = DCh)
if (retValue) {
    byte[] toWrite = {(byte)0x01, (byte)0x00, (byte)0x00, HbgHelper.LOCK_MEM_ADDR_START};
    if (!ntag.write(0xE3, toWrite)) {
        showToastMex("ERROR IN WRITING AUTH0");
        retValue = false;
    }
}

哪里

MEM_ADDR_TO_LOCK = (byte) 0xDC

CHARSET = Charset.forName("UTF-8")