summaryrefslogtreecommitdiffstats
path: root/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java')
-rwxr-xr-xnxp/src/com/android/nfc/dhimpl/NativeNfcManager.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
index f969627..dc6ea7c 100755
--- a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
+++ b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
@@ -43,6 +43,25 @@ public class NativeNfcManager implements DeviceHost {
private static final String PREF_FIRMWARE_MODTIME = "firmware_modtime";
private static final long FIRMWARE_MODTIME_DEFAULT = -1;
+ static final String DRIVER_NAME = "nxp";
+
+ static final int DEFAULT_LLCP_MIU = 128;
+ static final int DEFAULT_LLCP_RWSIZE = 1;
+
+ //TODO: dont hardcode this
+ private static final byte[][] EE_WIPE_APDUS = {
+ {(byte)0x00, (byte)0xa4, (byte)0x04, (byte)0x00, (byte)0x00},
+ {(byte)0x00, (byte)0xa4, (byte)0x04, (byte)0x00, (byte)0x07, (byte)0xa0, (byte)0x00,
+ (byte)0x00, (byte)0x04, (byte)0x76, (byte)0x20, (byte)0x10, (byte)0x00},
+ {(byte)0x80, (byte)0xe2, (byte)0x01, (byte)0x03, (byte)0x00},
+ {(byte)0x00, (byte)0xa4, (byte)0x04, (byte)0x00, (byte)0x00},
+ {(byte)0x00, (byte)0xa4, (byte)0x04, (byte)0x00, (byte)0x07, (byte)0xa0, (byte)0x00,
+ (byte)0x00, (byte)0x04, (byte)0x76, (byte)0x30, (byte)0x30, (byte)0x00},
+ {(byte)0x80, (byte)0xb4, (byte)0x00, (byte)0x00, (byte)0x00},
+ {(byte)0x00, (byte)0xa4, (byte)0x04, (byte)0x00, (byte)0x00},
+ };
+
+
static {
System.loadLibrary("nfc_jni");
}
@@ -144,6 +163,11 @@ public class NativeNfcManager implements DeviceHost {
}
@Override
+ public String getName() {
+ return DRIVER_NAME;
+ }
+
+ @Override
public native void enableDiscovery();
@Override
@@ -305,11 +329,32 @@ public class NativeNfcManager implements DeviceHost {
doSetP2pTargetModes(modes);
}
+ @Override
public boolean getExtendedLengthApdusSupported() {
// Not supported on the PN544
return false;
}
+ @Override
+ public boolean enablePN544Quirks() {
+ return true;
+ }
+
+ @Override
+ public byte[][] getWipeApdus() {
+ return EE_WIPE_APDUS;
+ }
+
+ @Override
+ public int getDefaultLlcpMiu() {
+ return DEFAULT_LLCP_MIU;
+ }
+
+ @Override
+ public int getDefaultLlcpRwSize() {
+ return DEFAULT_LLCP_RWSIZE;
+ }
+
private native String doDump();
@Override
public String dump() {
@@ -370,4 +415,5 @@ public class NativeNfcManager implements DeviceHost {
private void notifySeMifareAccess(byte[] block) {
mListener.onSeMifareAccess(block);
}
+
}