diff options
author | Martijn Coenen <maco@google.com> | 2012-07-25 15:07:43 -0700 |
---|---|---|
committer | Martijn Coenen <maco@google.com> | 2012-07-27 18:33:54 -0700 |
commit | c981340b7157e1b1873ca741f37b1ff19edae0b8 (patch) | |
tree | 7a2d34db60e0ac35e458b7f7f146b6291969a7fa /src/com/android/nfc/NfcService.java | |
parent | 7a1d2adf875d414625853b3a5360663e420a3769 (diff) | |
download | packages_apps_nfc-c981340b7157e1b1873ca741f37b1ff19edae0b8.zip packages_apps_nfc-c981340b7157e1b1873ca741f37b1ff19edae0b8.tar.gz packages_apps_nfc-c981340b7157e1b1873ca741f37b1ff19edae0b8.tar.bz2 |
NFC: Initial NCI DeviceHost and JNI implementation.
From partner drop at 07/20. Modified to fit into our new
JNI/DH split.
New build config that builds two targets,
Nfc and NfcNci, each with their own dependencies. Product config files
have to specify either Nfc or NfcNci in their packages config.
Change-Id: I348a3aad7167195ca03baf9636408ab8e4c55fce
Diffstat (limited to 'src/com/android/nfc/NfcService.java')
-rwxr-xr-x | src/com/android/nfc/NfcService.java | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java index 3e7a6b5..c42bdc0 100755 --- a/src/com/android/nfc/NfcService.java +++ b/src/com/android/nfc/NfcService.java @@ -101,8 +101,6 @@ public class NfcService extends Application implements DeviceHostListener { static final String PREF_FIRST_BOOT = "first_boot"; static final String PREF_AIRPLANE_OVERRIDE = "airplane_override"; - static final boolean PN544_QUIRK_DISCONNECT_BEFORE_RECONFIGURE = true; - static final int MSG_NDEF_TAG = 0; static final int MSG_CARD_EMULATION = 1; static final int MSG_LLCP_LINK_ACTIVATION = 2; @@ -160,19 +158,6 @@ public class NfcService extends Application implements DeviceHostListener { public static final String EXTRA_MIFARE_BLOCK = "com.android.nfc_extras.extra.MIFARE_BLOCK"; - //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}, - }; - // NFC Execution Environment // fields below are protected by this private NativeNfcSecureElement mSecureElement; @@ -585,7 +570,12 @@ public class NfcService extends Application implements DeviceHostListener { void executeEeWipe() { // TODO: read SE reset list from /system/etc - byte[][]apdus = EE_WIPE_APDUS; + byte[][]apdus = mDeviceHost.getWipeApdus(); + + if (apdus == null) { + Log.d(TAG, "No wipe APDUs found"); + return; + } boolean tempEnable = mState == NfcAdapter.STATE_OFF; if (tempEnable) { @@ -1412,7 +1402,7 @@ public class NfcService extends Application implements DeviceHostListener { try { watchDog.start(); - if (PN544_QUIRK_DISCONNECT_BEFORE_RECONFIGURE && mScreenState == SCREEN_STATE_OFF) { + if (mDeviceHost.enablePN544Quirks() && mScreenState == SCREEN_STATE_OFF) { /* TODO undo this after the LLCP stack is fixed. * Use a different sequence when turning the screen off to * workaround race conditions in pn544 libnfc. The race occurs |