diff options
Diffstat (limited to 'nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java')
-rwxr-xr-x | nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java | 46 |
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 f9696275..dc6ea7ce 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); } + } |