summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLove Khanna <love.khanna@nxp.com>2017-04-10 17:43:15 +0530
committerRuchi Kandoi <kandoiruchi@google.com>2017-07-06 11:49:38 -0700
commit195ebc69630febb1901a7ef650d5575e9fc0caaa (patch)
tree76a7eb5cec2e306b51f12e05e649b4bd65a4fd0d
parent09922d2d1dcb21cf7b0bf830efe577381f855c4b (diff)
downloadandroid_packages_apps_Nfc-195ebc69630febb1901a7ef650d5575e9fc0caaa.tar.gz
android_packages_apps_Nfc-195ebc69630febb1901a7ef650d5575e9fc0caaa.tar.bz2
android_packages_apps_Nfc-195ebc69630febb1901a7ef650d5575e9fc0caaa.zip
NCI2.0 update LF_T3T_PARAMETERS of 18 byte.
As per NCI2.0 LF_T3T_PMM is a part of LF_T3T_IDENTIFIER. Since it is required for each LF_T3T_IDENTIFIER entry, It can be taken from application. Test: Compiles. Change-Id: I8732c23fa71019b53321bd1af1b8f89a14327cc6 (cherry picked from commit 81732cf40417bc6413971742394ce00cfd529b25)
-rwxr-xr-xnci/jni/RoutingManager.cpp6
-rwxr-xr-xsrc/com/android/nfc/NfcService.java14
-rw-r--r--src/com/android/nfc/cardemulation/EnabledNfcFServices.java3
-rw-r--r--src/com/android/nfc/cardemulation/RegisteredT3tIdentifiersCache.java6
-rw-r--r--src/com/android/nfc/cardemulation/SystemCodeRoutingManager.java9
5 files changed, 22 insertions, 16 deletions
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp
index 101dc0c0..af1722f1 100755
--- a/nci/jni/RoutingManager.cpp
+++ b/nci/jni/RoutingManager.cpp
@@ -688,7 +688,7 @@ int RoutingManager::registerT3tIdentifier(uint8_t* t3tId, uint8_t t3tIdLen)
ALOGV("%s: Start to register NFC-F system on DH", fn);
- if (t3tIdLen != (2 + NCI_RF_F_UID_LEN))
+ if (t3tIdLen != (2 + NCI_RF_F_UID_LEN + NCI_T3T_PMM_LEN))
{
ALOGE("%s: Invalid length of T3T Identifier", fn);
return NFA_HANDLE_INVALID;
@@ -699,11 +699,13 @@ int RoutingManager::registerT3tIdentifier(uint8_t* t3tId, uint8_t t3tIdLen)
int systemCode;
uint8_t nfcid2[NCI_RF_F_UID_LEN];
+ uint8_t t3tPmm[NCI_T3T_PMM_LEN];
systemCode = (((int)t3tId[0] << 8) | ((int)t3tId[1] << 0));
memcpy(nfcid2, t3tId + 2, NCI_RF_F_UID_LEN);
+ memcpy(t3tPmm, t3tId + 10, NCI_T3T_PMM_LEN);
- tNFA_STATUS nfaStat = NFA_CeRegisterFelicaSystemCodeOnDH (systemCode, nfcid2, nfcFCeCallback);
+ tNFA_STATUS nfaStat = NFA_CeRegisterFelicaSystemCodeOnDH (systemCode, nfcid2, t3tPmm, nfcFCeCallback);
if (nfaStat == NFA_STATUS_OK)
{
mRoutingEvent.wait ();
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index a69143a3..43de15f6 100755
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -1748,11 +1748,11 @@ public class NfcService implements DeviceHostListener {
sendMessage(MSG_UNROUTE_AID, aid);
}
- private byte[] getT3tIdentifierBytes(String systemCode, String nfcId2) {
- ByteBuffer buffer = ByteBuffer.allocate(2 + 8);
+ private byte[] getT3tIdentifierBytes(String systemCode, String nfcId2, String t3tPmm) {
+ ByteBuffer buffer = ByteBuffer.allocate(2 + 8 + 8); /* systemcode + nfcid2 + t3tpmm */
buffer.put(hexStringToBytes(systemCode));
buffer.put(hexStringToBytes(nfcId2));
-
+ buffer.put(hexStringToBytes(t3tPmm));
byte[] t3tIdBytes = new byte[buffer.position()];
buffer.position(0);
buffer.get(t3tIdBytes);
@@ -1760,17 +1760,17 @@ public class NfcService implements DeviceHostListener {
return t3tIdBytes;
}
- public void registerT3tIdentifier(String systemCode, String nfcId2) {
+ public void registerT3tIdentifier(String systemCode, String nfcId2, String t3tPmm) {
Log.d(TAG, "request to register LF_T3T_IDENTIFIER");
- byte[] t3tIdentifier = getT3tIdentifierBytes(systemCode, nfcId2);
+ byte[] t3tIdentifier = getT3tIdentifierBytes(systemCode, nfcId2, t3tPmm);
sendMessage(MSG_REGISTER_T3T_IDENTIFIER, t3tIdentifier);
}
- public void deregisterT3tIdentifier(String systemCode, String nfcId2) {
+ public void deregisterT3tIdentifier(String systemCode, String nfcId2, String t3tPmm) {
Log.d(TAG, "request to deregister LF_T3T_IDENTIFIER");
- byte[] t3tIdentifier = getT3tIdentifierBytes(systemCode, nfcId2);
+ byte[] t3tIdentifier = getT3tIdentifierBytes(systemCode, nfcId2, t3tPmm);
sendMessage(MSG_DEREGISTER_T3T_IDENTIFIER, t3tIdentifier);
}
diff --git a/src/com/android/nfc/cardemulation/EnabledNfcFServices.java b/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
index 1d2acb58..c06ca26b 100644
--- a/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
+++ b/src/com/android/nfc/cardemulation/EnabledNfcFServices.java
@@ -117,7 +117,8 @@ public class EnabledNfcFServices implements com.android.nfc.ForegroundUtils.Call
return false;
} else {
if (serviceInfo.getSystemCode().equalsIgnoreCase("NULL") ||
- serviceInfo.getNfcid2().equalsIgnoreCase("NULL")) {
+ serviceInfo.getNfcid2().equalsIgnoreCase("NULL") ||
+ serviceInfo.getT3tPmm().equalsIgnoreCase("NULL")) {
return false;
}
}
diff --git a/src/com/android/nfc/cardemulation/RegisteredT3tIdentifiersCache.java b/src/com/android/nfc/cardemulation/RegisteredT3tIdentifiersCache.java
index de7ef8f4..6391a51f 100644
--- a/src/com/android/nfc/cardemulation/RegisteredT3tIdentifiersCache.java
+++ b/src/com/android/nfc/cardemulation/RegisteredT3tIdentifiersCache.java
@@ -46,10 +46,12 @@ public class RegisteredT3tIdentifiersCache {
final class T3tIdentifier {
public final String systemCode;
public final String nfcid2;
+ public final String t3tPmm;
- T3tIdentifier(String systemCode, String nfcid2) {
+ T3tIdentifier(String systemCode, String nfcid2, String t3tPmm) {
this.systemCode = systemCode;
this.nfcid2 = nfcid2;
+ this.t3tPmm = t3tPmm;
}
@Override
@@ -138,7 +140,7 @@ public class RegisteredT3tIdentifiersCache {
Map.Entry<String, NfcFServiceInfo> entry =
(Map.Entry<String, NfcFServiceInfo>) it.next();
t3tIdentifiers.add(new T3tIdentifier(
- entry.getValue().getSystemCode(), entry.getValue().getNfcid2()));
+ entry.getValue().getSystemCode(), entry.getValue().getNfcid2(), entry.getValue().getT3tPmm()));
}
mRoutingManager.configureRouting(t3tIdentifiers);
}
diff --git a/src/com/android/nfc/cardemulation/SystemCodeRoutingManager.java b/src/com/android/nfc/cardemulation/SystemCodeRoutingManager.java
index 70195255..a2d2a777 100644
--- a/src/com/android/nfc/cardemulation/SystemCodeRoutingManager.java
+++ b/src/com/android/nfc/cardemulation/SystemCodeRoutingManager.java
@@ -59,25 +59,26 @@ public class SystemCodeRoutingManager {
for (T3tIdentifier t3tIdentifier : toBeRemoved) {
if (DBG) Log.d(TAG, "deregisterNfcFSystemCodeonDh:");
NfcService.getInstance().deregisterT3tIdentifier(
- t3tIdentifier.systemCode, t3tIdentifier.nfcid2);
+ t3tIdentifier.systemCode, t3tIdentifier.nfcid2, t3tIdentifier.t3tPmm);
}
for (T3tIdentifier t3tIdentifier : toBeAdded) {
if (DBG) Log.d(TAG, "registerNfcFSystemCodeonDh:");
NfcService.getInstance().registerT3tIdentifier(
- t3tIdentifier.systemCode, t3tIdentifier.nfcid2);
+ t3tIdentifier.systemCode, t3tIdentifier.nfcid2 , t3tIdentifier.t3tPmm);
}
if (DBG) {
Log.d(TAG, "(Before) mConfiguredT3tIdentifiers: size=" +
mConfiguredT3tIdentifiers.size());
for (T3tIdentifier t3tIdentifier : mConfiguredT3tIdentifiers) {
Log.d(TAG, " " + t3tIdentifier.systemCode +
- "/" + t3tIdentifier.nfcid2);
+ "/" + t3tIdentifier.t3tPmm);
}
Log.d(TAG, "(After) mConfiguredT3tIdentifiers: size=" +
t3tIdentifiers.size());
for (T3tIdentifier t3tIdentifier : t3tIdentifiers) {
Log.d(TAG, " " + t3tIdentifier.systemCode +
- "/" + t3tIdentifier.nfcid2);
+ "/" + t3tIdentifier.nfcid2 +
+ "/" + t3tIdentifier.t3tPmm);
}
}
mConfiguredT3tIdentifiers = t3tIdentifiers;