Yes I know. I revised them manually and adapted to 2.3.4_r1. However I must 
be missing something. 

I see the Secure Element SMX selected, the embedded Mifare card is not 
detected by means of external readers. The external reader detects a memory 
card but it can not read the CSN (UID). It seems as if the card emulation 
were enabled but then disabled. 

This is my init sequence as seen by logcat: http://pastebin.com/XpyLUGaJ

I can see the following sequence. So I assume the embedded secure element is 
enabled:

I/NFC JNI (  198): NFC Initialized
D/NfcService(  198): NFC-EE routing ON
D/NFC JNI (  198): ******  Select Secure Element ******
D/NFC JNI (  198): phLibNfc_SE_SetMode(0x00abcdef, ...)
D/NFC JNI (  198): phLibNfc_SE_SetMode() returned 0x000d[NFCSTATUS_PENDING]

What is the correct message sequence?

I attach your patches modified to compile against 2.3.4_r1. Someone could 
find them useful. By the way in this tag Nfc is disabled by default. So the 
patch "device_base_2_3_4_r1.diff" must be also applied.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
diff -urBNp libnfc-nxp.orig/inc/phNfcConfig.h libnfc-nxp/inc/phNfcConfig.h
--- libnfc-nxp.orig/inc/phNfcConfig.h	2011-07-18 18:15:27.215614224 +0200
+++ libnfc-nxp/inc/phNfcConfig.h	2011-07-18 18:20:33.823504089 +0200
@@ -286,6 +286,7 @@
 
 #ifndef NXP_UICC_RD_RIGHTS
 #define NXP_UICC_RD_RIGHTS              0x00U
+//#define NXP_UICC_RD_RIGHTS              0x0FU
 #endif 
 
 
@@ -367,7 +368,7 @@
 #define RECONNECT_SUPPORT
 
 /**< Macro to Enable the Card Emulation Feature */
-/* #define HOST_EMULATION */
+#define HOST_EMULATION
 
 /**< Macro to Enable the Download Mode Feature */
 #define FW_DOWNLOAD
diff -urBNp Nfc.orig/jni/com_android_nfc_NativeNfcManager.cpp Nfc/jni/com_android_nfc_NativeNfcManager.cpp
--- Nfc.orig/jni/com_android_nfc_NativeNfcManager.cpp	2011-07-18 18:03:05.825613188 +0200
+++ Nfc/jni/com_android_nfc_NativeNfcManager.cpp	2011-07-18 10:50:27.665620770 +0200
@@ -341,6 +341,7 @@ static int nfc_jni_initialize(struct nfc
    /* ====== CONFIGURE DRIVER ======= */
 
    TRACE("phLibNfc_Mgt_ConfigureDriver(0x%08x, 0x%08x)", gDrvCfg.nClientId, gDrvCfg.nLinkType);
+   LOGD("phLibNfc_Mgt_ConfigureDriver(0x%08x, 0x%08x)", gDrvCfg.nClientId, gDrvCfg.nLinkType);
    REENTRANCE_LOCK();
    status = phLibNfc_Mgt_ConfigureDriver(&gDrvCfg, &gHWRef);
    REENTRANCE_UNLOCK();
@@ -364,6 +365,7 @@ static int nfc_jni_initialize(struct nfc
    /* ====== INITIALIZE ======= */
 
    TRACE("phLibNfc_Mgt_Initialize()");
+   LOGD("phLibNfc_Mgt_Initialize()");
    REENTRANCE_LOCK();
    status = phLibNfc_Mgt_Initialize(gHWRef, nfc_jni_init_callback, (void *)&cb_data);
    REENTRANCE_UNLOCK();
@@ -373,6 +375,7 @@ static int nfc_jni_initialize(struct nfc
       goto clean_and_return;
    }
    TRACE("phLibNfc_Mgt_Initialize returned 0x%04x[%s]", status, nfc_jni_get_status_name(status));
+   LOGD("phLibNfc_Mgt_Initialize returned 0x%04x[%s]", status, nfc_jni_get_status_name(status));
   
    /* Wait for callback response */
    if(sem_wait(&cb_data.sem))
@@ -433,6 +436,7 @@ static int nfc_jni_initialize(struct nfc
 
    // Update EEPROM settings
    TRACE("******  START EEPROM SETTINGS UPDATE ******");
+   LOGD("******  START EEPROM SETTINGS UPDATE ******");
    for (i = 0; i < EEDATA_SETTINGS_NUMBER; i++)
    {
       gInputParam.buffer = EEDATA_Settings[i];
@@ -440,6 +444,7 @@ static int nfc_jni_initialize(struct nfc
       gOutputParam.buffer = resp;
 
       TRACE("> EEPROM SETTING: %d", i);
+      LOGD("> EEPROM SETTING: %d", i);
       REENTRANCE_LOCK();
       status = phLibNfc_Mgt_IoCtl(gHWRef, NFC_MEM_WRITE, &gInputParam, &gOutputParam, nfc_jni_ioctl_callback, (void *)&cb_data);
       REENTRANCE_UNLOCK();
@@ -461,6 +466,7 @@ static int nfc_jni_initialize(struct nfc
       }
    }
    TRACE("******  ALL EEPROM SETTINGS UPDATED  ******");
+   LOGD("******  ALL EEPROM SETTINGS UPDATED  ******");
 
    /* ====== SECURE ELEMENTS ======= */
 
@@ -511,6 +517,7 @@ static int nfc_jni_initialize(struct nfc
 
    /* LLCP Params */
    TRACE("******  NFC Config Mode NFCIP1 - LLCP ******");
+   LOGD("******  NFC Config Mode NFCIP1 - LLCP ******");
    LlcpConfigInfo.miu    = nat->miu;
    LlcpConfigInfo.lto    = nat->lto;
    LlcpConfigInfo.wks    = nat->wks;
@@ -529,6 +536,8 @@ static int nfc_jni_initialize(struct nfc
    }
    TRACE("phLibNfc_Mgt_SetLlcp_ConfigParams returned 0x%04x[%s]", status,
          nfc_jni_get_status_name(status));
+   LOGD("phLibNfc_Mgt_SetLlcp_ConfigParams returned 0x%04x[%s]", status,
+         nfc_jni_get_status_name(status));
 
    /* Wait for callback response */
    if(sem_wait(&cb_data.sem))
@@ -602,6 +611,7 @@ void nfc_jni_restart_discovery_locked(st
    struct nfc_jni_callback_data cb_data;
 
    TRACE("Restarting polling loop");
+   LOGD("Restarting polling loop");
    
    /* Create the local semaphore */
    if (!nfc_cb_data_init(&cb_data, NULL))
@@ -614,6 +624,7 @@ void nfc_jni_restart_discovery_locked(st
 
    /* Restart Polling loop */
    TRACE("******  Start NFC Discovery ******");
+   LOGD("******  Start NFC Discovery ******");
    REENTRANCE_LOCK();
    ret = phLibNfc_Mgt_ConfigureDiscovery(NFC_DISCOVERY_RESUME,nat->discovery_cfg, nfc_jni_discover_callback, (void *)&cb_data);
    REENTRANCE_UNLOCK();
@@ -626,7 +637,16 @@ void nfc_jni_restart_discovery_locked(st
       nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
       nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
       nat->discovery_cfg.NfcIP_Mode, nat->discovery_cfg.Duration, ret);
-   
+   LOGD("phLibNfc_Mgt_ConfigureDiscovery(%s-%s-%s-%s-%s-%s, %s-%x-%x) returned 0x%08x\n",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A==TRUE?"3A":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B==TRUE?"3B":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212==TRUE?"F2":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424==TRUE?"F4":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableNfcActive==TRUE?"NFC":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
+      nat->discovery_cfg.NfcIP_Mode, nat->discovery_cfg.Duration, ret);
+
    if (ret != NFCSTATUS_PENDING)
    {
       emergency_recovery(nat);
@@ -712,6 +732,7 @@ static void *nfc_jni_client_thread(void 
    pthread_setname_np(pthread_self(), "message");
 
    TRACE("NFC client started");
+   LOGD("NFC client started");
    nat->running = TRUE;
    while(nat->running == TRUE)
    {
@@ -739,6 +760,7 @@ static void *nfc_jni_client_thread(void 
       }
    }
    TRACE("NFC client stopped");
+   LOGD("NFC client stopped");
    
    nat->vm->DetachCurrentThread();
 
@@ -775,6 +797,7 @@ static void nfc_jni_llcp_linkStatus_call
    nfc_jni_native_monitor * pMonitor = nfc_jni_get_monitor();
 
    TRACE("Callback: nfc_jni_llcp_linkStatus_callback()");
+   LOGD("Callback: nfc_jni_llcp_linkStatus_callback()");
 
    nat->vm->GetEnv( (void **)&e, nat->env_version);
    
@@ -877,6 +900,7 @@ void nfc_jni_llcp_transport_socket_err_c
    PHNFC_UNUSED_VARIABLE(pContext);
 
    TRACE("Callback: nfc_jni_llcp_transport_socket_err_callback()");
+   LOGD("Callback: nfc_jni_llcp_transport_socket_err_callback()");
 
    if(nErrCode == PHFRINFC_LLCP_ERR_FRAME_REJECTED)
    {
@@ -939,6 +963,7 @@ static void nfc_jni_Discovery_notificati
    {
       LOG_CALLBACK("nfc_jni_Discovery_notification_callback", status);
       TRACE("Discovered %d tags", uNofRemoteDev);
+      LOGD("Discovered %d tags", uNofRemoteDev);
       
       if((psRemoteDevList->psRemoteDevInfo->RemDevType == phNfc_eNfcIP1_Initiator)
           || (psRemoteDevList->psRemoteDevInfo->RemDevType == phNfc_eNfcIP1_Target))
@@ -975,6 +1000,7 @@ static void nfc_jni_Discovery_notificati
             f = e->GetFieldID(tag_cls, "mGeneralBytes", "[B");
    
            TRACE("General Bytes length =");
+           LOGD("General Bytes length =");
            for(i=0;i<psRemoteDevList->psRemoteDevInfo->RemoteDevInfo.NfcIP_Info.ATRInfo_Length;i++)
            {
                LOGD("%02x ", psRemoteDevList->psRemoteDevInfo->RemoteDevInfo.NfcIP_Info.ATRInfo[i]);          
@@ -993,6 +1019,7 @@ static void nfc_jni_Discovery_notificati
          f = e->GetFieldID(tag_cls, "mHandle", "I");
          e->SetIntField(tag, f,(jint)psRemoteDevList[target_index].hTargetDev);
          TRACE("Target handle = 0x%08x",psRemoteDevList[target_index].hTargetDev);
+         LOGD("Target handle = 0x%08x",psRemoteDevList[target_index].hTargetDev);
       }
       else
       {
@@ -1012,6 +1039,7 @@ static void nfc_jni_Discovery_notificati
         if(status == NFCSTATUS_MULTIPLE_PROTOCOLS)
         {
             TRACE("Multiple Protocol TAG detected\n");
+            LOGD("Multiple Protocol TAG detected\n");
             multi_protocol = true;
         }
         else if (status == NFCSTATUS_MULTIPLE_TAGS) {
@@ -1021,8 +1049,10 @@ static void nfc_jni_Discovery_notificati
             // return a "complete" tag, and not just one "target", which
             // is then either half of the multi-proto tag or the complete
             // single-proto.
+            LOGD("Multiple TAG detected (using only one)\n");
             target_index = 0;
         } else {
+            LOGD("Simple Protocol TAG detected\n");
             target_index = 0;
         }
 
@@ -1066,6 +1096,7 @@ static void nfc_jni_Discovery_notificati
 
       /* Notify the service */   
       TRACE("Notify Nfc Service");
+      LOGD("Notify Nfc Service");
       if((psRemoteDevList->psRemoteDevInfo->RemDevType == phNfc_eNfcIP1_Initiator)
           || (psRemoteDevList->psRemoteDevInfo->RemDevType == phNfc_eNfcIP1_Target))
       {
@@ -1184,6 +1215,7 @@ static void nfc_jni_transaction_callback
                     }
 
                     TRACE("Notify Nfc Service");
+                    LOGD("Emulation 1164 Notify Nfc Service");
                     /* Notify manager that a new event occurred on a SE */
                     e->CallVoidMethod(nat->manager, cached_NfcManager_notifyTransactionListeners, aid_array);
                     if(e->ExceptionCheck())
@@ -1258,14 +1290,19 @@ static void nfc_jni_start_card_emu_disco
    NFCSTATUS ret;
    
    TRACE("******  NFC Config Mode Card Emulation ******");   
+   LOGD("******  NFC Config Mode Card Emulation ******");   
 
    /* Register for the card emulation mode */
    REENTRANCE_LOCK();
    ret = phLibNfc_SE_NtfRegister(nfc_jni_transaction_callback,(void *)nat);
    REENTRANCE_UNLOCK();
    TRACE("phLibNfc_SE_NtfRegister returned 0x%x\n", ret);
+   LOGD("phLibNfc_SE_NtfRegister returned 0x%x\n", ret);
    if(ret != NFCSTATUS_SUCCESS)
-       return;
+   {
+     LOGD("1205 BAD card emulatio not working phLibNfc_SE_NtfRegister returned 0x%x\n", ret);
+     return;
+   }
 }
 
 
@@ -1310,6 +1347,7 @@ static void nfc_jni_start_discovery_lock
    nat->registry_info.NFC = TRUE;   
    nat->registry_info.ISO15693 = TRUE;
    TRACE("******  NFC Config Mode Reader ******");
+   LOGD("******  NFC Config Mode Reader ******");
       
    /* Register for the reader mode */
    REENTRANCE_LOCK();
@@ -1329,6 +1367,16 @@ static void nfc_jni_start_discovery_lock
       nat->registry_info.ISO14443_4B==TRUE?"4B":"",
       nat->registry_info.NFC==TRUE?"P2P":"",
       nat->registry_info.ISO15693==TRUE?"R":"", ret);
+LOGD("1286 phLibNfc_RemoteDev_NtfRegister(%s-%s-%s-%s-%s-%s-%s-%s) returned 0x%x\n",
+      nat->registry_info.Jewel==TRUE?"J":"",
+      nat->registry_info.MifareUL==TRUE?"UL":"",
+      nat->registry_info.MifareStd==TRUE?"Mi":"",
+      nat->registry_info.Felica==TRUE?"F":"",
+      nat->registry_info.ISO14443_4A==TRUE?"4A":"",
+      nat->registry_info.ISO14443_4B==TRUE?"4B":"",
+      nat->registry_info.NFC==TRUE?"P2P":"",
+      nat->registry_info.ISO15693==TRUE?"R":"", ret);
+
 
    
    /* Register for the card emulation mode */
@@ -1344,6 +1392,7 @@ static void nfc_jni_start_discovery_lock
 
    /* Start Polling loop */
    TRACE("******  Start NFC Discovery ******");
+   LOGD("****** Start NFC Discovery ******");
    REENTRANCE_LOCK();
    ret = phLibNfc_Mgt_ConfigureDiscovery(NFC_DISCOVERY_CONFIG,nat->discovery_cfg, nfc_jni_discover_callback, (void *)&cb_data);
    REENTRANCE_UNLOCK();
@@ -1356,6 +1405,15 @@ static void nfc_jni_start_discovery_lock
       nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
       nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
       nat->discovery_cfg.NfcIP_Mode, nat->discovery_cfg.Duration, ret);
+LOGD("phLibNfc_Mgt_ConfigureDiscovery(%s-%s-%s-%s-%s-%s, %s-%x-%x) returned 0x%08x\n",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A==TRUE?"3A":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B==TRUE?"3B":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212==TRUE?"F2":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424==TRUE?"F4":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableNfcActive==TRUE?"NFC":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
+      nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
+      nat->discovery_cfg.NfcIP_Mode, nat->discovery_cfg.Duration, ret);
 
    if(ret != NFCSTATUS_PENDING)
    {
@@ -1393,6 +1451,7 @@ static void nfc_jni_stop_discovery_locke
  
    /* Start Polling loop */
    TRACE("******  Stop NFC Discovery ******");
+   LOGD("******  Stop NFC Discovery ******");
    REENTRANCE_LOCK();
    ret = phLibNfc_Mgt_ConfigureDiscovery(NFC_DISCOVERY_CONFIG,discovery_cfg, nfc_jni_discover_callback, (void *)&cb_data);
    REENTRANCE_UNLOCK();
@@ -1405,6 +1464,15 @@ static void nfc_jni_stop_discovery_locke
       discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
       discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
       discovery_cfg.NfcIP_Mode, discovery_cfg.Duration, ret);
+LOGD("phLibNfc_Mgt_ConfigureDiscovery(%s-%s-%s-%s-%s-%s, %s-%x-%x) returned 0x%08x\n",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A==TRUE?"3A":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B==TRUE?"3B":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212==TRUE?"F2":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424==TRUE?"F4":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableNfcActive==TRUE?"NFC":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693==TRUE?"RFID":"",
+      discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation==FALSE?"CE":"",
+      discovery_cfg.NfcIP_Mode, discovery_cfg.Duration, ret);
 
    if(ret != NFCSTATUS_PENDING)
    {
@@ -1526,6 +1594,7 @@ static jboolean com_android_nfc_NfcManag
    jfieldID f;
 
    TRACE("******  Init Native Structure ******"); 
+   LOGD("******  Init Native Structure ******"); 
 
    /* Initialize native structure */
    nat = (nfc_jni_native_data*)malloc(sizeof(struct nfc_jni_native_data));
@@ -1578,6 +1647,7 @@ static jboolean com_android_nfc_NfcManag
    }
 
    TRACE("****** Init Native Structure OK ******"); 
+   LOGD("****** Init Native Structure OK ******"); 
    return TRUE;
 }
  
@@ -1681,6 +1751,7 @@ static jboolean com_android_nfc_NfcManag
 
    /* Unconfigure driver */
    TRACE("phLibNfc_Mgt_UnConfigureDriver()");
+   LOGD("phLibNfc_Mgt_UnConfigureDriver()");
    REENTRANCE_LOCK();
    status = phLibNfc_Mgt_UnConfigureDriver(gHWRef);
    REENTRANCE_UNLOCK();
@@ -1694,6 +1765,7 @@ static jboolean com_android_nfc_NfcManag
    }
 
    TRACE("NFC Deinitialized");
+   LOGD("NFC Deinitialized");
 
    return TRUE;
 }
@@ -1707,8 +1779,10 @@ static jintArray com_android_nfc_NfcMana
    uint8_t i, se_count = PHLIBNFC_MAXNO_OF_SE;
     
    TRACE("******  Get Secure Element List ******");  
+   LOGD("******  Get Secure Element List ******");  
    
    TRACE("phLibNfc_SE_GetSecureElementList()");
+   LOGD("phLibNfc_SE_GetSecureElementList()");
    REENTRANCE_LOCK();
    ret = phLibNfc_SE_GetSecureElementList(se_list, &se_count);
    REENTRANCE_UNLOCK();
@@ -1718,8 +1792,10 @@ static jintArray com_android_nfc_NfcMana
       return list;  
    }
    TRACE("phLibNfc_SE_GetSecureElementList() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_SE_GetSecureElementList() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
 
    TRACE("Nb SE: %d", se_count);
+   LOGD("Nb SE: %d", se_count);
    list =e->NewIntArray(se_count);
    for(i=0;i<se_count;i++)
    {
@@ -1761,8 +1837,10 @@ static void com_android_nfc_NfcManager_d
    }
 
    TRACE("******  Select Secure Element ******"); 
+   LOGD("******  Select Secure Element ******"); 
 
    TRACE("phLibNfc_SE_SetMode(0x%08x, ...)", seID);
+   LOGD("phLibNfc_SE_SetMode(0x%08x, ...)", seID);
    /* Set SE mode - Virtual */
    REENTRANCE_LOCK();
    ret = phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeVirtual, nfc_jni_se_set_mode_callback,(void *)&cb_data);
@@ -1773,6 +1851,7 @@ static void com_android_nfc_NfcManager_d
       goto clean_and_return;
    }
    TRACE("phLibNfc_SE_SetMode() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_SE_SetMode() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
 
    /* Wait for callback response */
    if(sem_wait(&cb_data.sem))
@@ -1805,20 +1884,24 @@ static void com_android_nfc_NfcManager_d
    }
 
    TRACE("******  Deselect Secure Element ******"); 
+   LOGD("******  Deselect Secure Element ******"); 
 
    TRACE("phLibNfc_SE_SetMode(0x%02x, ...)", seID);
+   LOGD("phLibNfc_SE_SetMode(0x%02x, ...)", seID);
    /* Set SE mode - Off */
    REENTRANCE_LOCK();
    ret = phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeOff, nfc_jni_se_set_mode_callback,(void *)&cb_data);
    REENTRANCE_UNLOCK();
        
    TRACE("phLibNfc_SE_SetMode for SE 0x%02x returned 0x%02x",seID, ret);
+   LOGD("phLibNfc_SE_SetMode for SE 0x%02x returned 0x%02x",seID, ret);
    if(ret != NFCSTATUS_PENDING)
    {
       LOGE("phLibNfc_SE_SetMode() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
       goto clean_and_return;
    }
    TRACE("phLibNfc_SE_SetMode() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_SE_SetMode() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
 
    /* Wait for callback response */
    if(sem_wait(&cb_data.sem))
@@ -1858,6 +1941,7 @@ static jboolean com_android_nfc_NfcManag
 
    /* Check LLCP compliancy */
    TRACE("phLibNfc_Llcp_CheckLlcp(hLlcpHandle=0x%08x)", hLlcpHandle);
+   LOGD("phLibNfc_Llcp_CheckLlcp(hLlcpHandle=0x%08x)", hLlcpHandle);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_CheckLlcp(hLlcpHandle,
                                  nfc_jni_checkLlcp_callback,
@@ -1873,6 +1957,7 @@ static jboolean com_android_nfc_NfcManag
       goto clean_and_return;
    }
    TRACE("phLibNfc_Llcp_CheckLlcp() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_CheckLlcp() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
 
    /* Wait for callback response */
    if(sem_wait(&cb_data->sem))
@@ -1896,12 +1981,14 @@ static jboolean com_android_nfc_NfcManag
 {
    NFCSTATUS ret;
    TRACE("phLibNfc_Llcp_Activate(hRemoteDevice=0x%08x)", hLlcpHandle);
+   LOGD("phLibNfc_Llcp_Activate(hRemoteDevice=0x%08x)", hLlcpHandle);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Activate(hLlcpHandle);
    REENTRANCE_UNLOCK();
    if(ret == NFCSTATUS_SUCCESS)
    {
       TRACE("phLibNfc_Llcp_Activate() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+      LOGD("phLibNfc_Llcp_Activate() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
       return JNI_TRUE;
    }
    else
@@ -1927,6 +2014,7 @@ static jobject com_android_nfc_NfcManage
    
    /* Create socket */
    TRACE("phLibNfc_Llcp_Socket(eType=phFriNfc_LlcpTransport_eConnectionLess, ...)");
+   LOGD("phLibNfc_Llcp_Socket(eType=phFriNfc_LlcpTransport_eConnectionLess, ...)");
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Socket(phFriNfc_LlcpTransport_eConnectionLess,
                               NULL,
@@ -1943,10 +2031,12 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }
    TRACE("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
    
    
    /* Bind socket */
    TRACE("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
+   LOGD("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Bind(hLlcpSocket,nSap);
    REENTRANCE_UNLOCK();
@@ -1961,6 +2051,7 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }
    TRACE("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
  
    
    /* Create new NativeLlcpConnectionlessSocket object */
@@ -1980,16 +2071,19 @@ static jobject com_android_nfc_NfcManage
    f = e->GetFieldID(clsNativeConnectionlessSocket, "mHandle", "I");
    e->SetIntField(connectionlessSocket, f,(jint)hLlcpSocket);
    TRACE("Connectionless socket Handle = %02x\n",hLlcpSocket);  
+   LOGD("Connectionless socket Handle = %02x\n",hLlcpSocket);  
    
    /* Set the miu link of the connectionless socket */
    f = e->GetFieldID(clsNativeConnectionlessSocket, "mLinkMiu", "I");
    e->SetIntField(connectionlessSocket, f,(jint)PHFRINFC_LLCP_MIU_DEFAULT);
    TRACE("Connectionless socket Link MIU = %d\n",PHFRINFC_LLCP_MIU_DEFAULT);  
+   LOGD("Connectionless socket Link MIU = %d\n",PHFRINFC_LLCP_MIU_DEFAULT);  
    
    /* Set socket SAP */
    f = e->GetFieldID(clsNativeConnectionlessSocket, "mSap", "I");
    e->SetIntField(connectionlessSocket, f,(jint)nSap);
    TRACE("Connectionless socket SAP = %d\n",nSap);  
+   LOGD("Connectionless socket SAP = %d\n",nSap);  
    
    return connectionlessSocket;
 }
@@ -2020,6 +2114,7 @@ static jobject com_android_nfc_NfcManage
    
    /* Create socket */
    TRACE("phLibNfc_Llcp_Socket(hRemoteDevice=0x%08x, eType=phFriNfc_LlcpTransport_eConnectionOriented, ...)", hLlcpHandle);
+   LOGD("phLibNfc_Llcp_Socket(hRemoteDevice=0x%08x, eType=phFriNfc_LlcpTransport_eConnectionOriented, ...)", hLlcpHandle);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Socket(phFriNfc_LlcpTransport_eConnectionOriented,
                               &sOptions,
@@ -2036,9 +2131,11 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }
    TRACE("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
    
    /* Bind socket */
    TRACE("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
+   LOGD("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Bind(hLlcpSocket,nSap);
    REENTRANCE_UNLOCK();
@@ -2051,6 +2148,7 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }
    TRACE("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
 
    /* Service socket */
    if (sn == NULL) {
@@ -2062,6 +2160,7 @@ static jobject com_android_nfc_NfcManage
    }
 
    TRACE("phLibNfc_Llcp_Listen(hSocket=0x%08x, ...)", hLlcpSocket);
+   LOGD("phLibNfc_Llcp_Listen(hSocket=0x%08x, ...)", hLlcpSocket);
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Listen( hLlcpSocket,
                                &serviceName,
@@ -2080,6 +2179,7 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }                         
    TRACE("phLibNfc_Llcp_Listen() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Listen() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
    
    /* Create new NativeLlcpServiceSocket object */
    if(nfc_jni_cache_object(e,"com/android/nfc/NativeLlcpServiceSocket",&(serviceSocket)) == -1)
@@ -2100,21 +2200,25 @@ static jobject com_android_nfc_NfcManage
    f = e->GetFieldID(clsNativeLlcpServiceSocket, "mHandle", "I");
    e->SetIntField(serviceSocket, f,(jint)hLlcpSocket);
    TRACE("Service socket Handle = %02x\n",hLlcpSocket);  
+   LOGD("Service socket Handle = %02x\n",hLlcpSocket);  
    
    /* Set socket linear buffer length */
    f = e->GetFieldID(clsNativeLlcpServiceSocket, "mLocalLinearBufferLength", "I");
    e->SetIntField(serviceSocket, f,(jint)linearBufferLength);
    TRACE("Service socket Linear buffer length = %02x\n",linearBufferLength);  
+   LOGD("Service socket Linear buffer length = %02x\n",linearBufferLength);  
    
    /* Set socket MIU */
    f = e->GetFieldID(clsNativeLlcpServiceSocket, "mLocalMiu", "I");
    e->SetIntField(serviceSocket, f,(jint)miu);
    TRACE("Service socket MIU = %d\n",miu);  
+   LOGD("Service socket MIU = %d\n",miu);  
    
    /* Set socket RW */
    f = e->GetFieldID(clsNativeLlcpServiceSocket, "mLocalRw", "I");
    e->SetIntField(serviceSocket, f,(jint)rw);
    TRACE("Service socket RW = %d\n",rw);   
+   LOGD("Service socket RW = %d\n",rw);   
   
    return serviceSocket;
 }
@@ -2143,6 +2247,7 @@ static jobject com_android_nfc_NfcManage
 
    /* Create socket */
    TRACE("phLibNfc_Llcp_Socket(eType=phFriNfc_LlcpTransport_eConnectionOriented, ...)");
+   LOGD("phLibNfc_Llcp_Socket(eType=phFriNfc_LlcpTransport_eConnectionOriented, ...)");
    REENTRANCE_LOCK();
    ret = phLibNfc_Llcp_Socket(phFriNfc_LlcpTransport_eConnectionOriented,
                               &sOptions,
@@ -2159,6 +2264,7 @@ static jobject com_android_nfc_NfcManage
       return NULL;
    }
    TRACE("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+   LOGD("phLibNfc_Llcp_Socket() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
    
    /* Create new NativeLlcpSocket object */
    if(nfc_jni_cache_object(e,"com/android/nfc/NativeLlcpSocket",&(clientSocket)) == -1)
@@ -2180,6 +2286,7 @@ static jobject com_android_nfc_NfcManage
    {
       /* Bind socket */
       TRACE("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
+      LOGD("phLibNfc_Llcp_Bind(hSocket=0x%08x, nSap=0x%02x)", hLlcpSocket, nSap);
       REENTRANCE_LOCK();
       ret = phLibNfc_Llcp_Bind(hLlcpSocket,nSap);
       REENTRANCE_UNLOCK();
@@ -2194,27 +2301,32 @@ static jobject com_android_nfc_NfcManage
          return NULL;
       }
       TRACE("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
+      LOGD("phLibNfc_Llcp_Bind() returned 0x%04x[%s]", ret, nfc_jni_get_status_name(ret));
       
       /* Set socket SAP */
       f = e->GetFieldID(clsNativeLlcpSocket, "mSap", "I");
       e->SetIntField(clientSocket, f,(jint)nSap);
       TRACE("socket SAP = %d\n",nSap);    
+      LOGD("socket SAP = %d\n",nSap);    
    }  
       
    /* Set socket handle */
    f = e->GetFieldID(clsNativeLlcpSocket, "mHandle", "I");
    e->SetIntField(clientSocket, f,(jint)hLlcpSocket);
    TRACE("socket Handle = %02x\n",hLlcpSocket);  
+   LOGD("socket Handle = %02x\n",hLlcpSocket);  
    
    /* Set socket MIU */
    f = e->GetFieldID(clsNativeLlcpSocket, "mLocalMiu", "I");
    e->SetIntField(clientSocket, f,(jint)miu);
    TRACE("socket MIU = %d\n",miu);  
+   LOGD("socket MIU = %d\n",miu);  
    
    /* Set socket RW */
    f = e->GetFieldID(clsNativeLlcpSocket, "mLocalRw", "I");
    e->SetIntField(clientSocket, f,(jint)rw);
    TRACE("socket RW = %d\n",rw);   
+   LOGD("socket RW = %d\n",rw);   
    
   
    return clientSocket;
@@ -2223,6 +2335,7 @@ static jobject com_android_nfc_NfcManage
 static jint com_android_nfc_NfcManager_doGetLastError(JNIEnv *e, jobject o)
 {
    TRACE("Last Error Status = 0x%02x",lastErrorStatus);
+   LOGD("Last Error Status = 0x%02x",lastErrorStatus);
    
    if(lastErrorStatus == NFCSTATUS_BUFFER_TOO_SMALL)
    {
@@ -2251,42 +2364,49 @@ static void com_android_nfc_NfcManager_d
    case PROPERTY_LLCP_LTO:
       {
          TRACE("> Set LLCP LTO to %d",value); 
+         LOGD("> Set LLCP LTO to %d",value); 
          nat->lto = value;
       }break;
       
    case PROPERTY_LLCP_MIU:
       {
          TRACE("> Set LLCP MIU to %d",value);  
+         LOGD("> Set LLCP MIU to %d",value);  
          nat->miu = value;
       }break;
       
    case PROPERTY_LLCP_WKS:
       {
          TRACE("> Set LLCP WKS to %d",value); 
+         LOGD("> Set LLCP WKS to %d",value); 
          nat->wks = value;
       }break;
       
    case PROPERTY_LLCP_OPT:
       {
          TRACE("> Set LLCP OPT to %d",value); 
+         LOGD("> Set LLCP OPT to %d",value); 
          nat->opt = value;    
       }break;
       
    case PROPERTY_NFC_DISCOVERY_A:
       {
          TRACE("> Set NFC DISCOVERY A to %d",value); 
+         LOGD("> Set NFC DISCOVERY A to %d",value); 
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A = value;  
       }break;
       
    case PROPERTY_NFC_DISCOVERY_B:
       {
          TRACE("> Set NFC DISCOVERY B to %d",value); 
+         LOGD("> Set NFC DISCOVERY B to %d",value); 
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B = value;    
       }break;
       
    case PROPERTY_NFC_DISCOVERY_F:
       {
          TRACE("> Set NFC DISCOVERY F to %d",value); 
+         LOGD("> Set NFC DISCOVERY F to %d",value); 
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212 = value;
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424 = value;
       }break;
@@ -2294,17 +2414,20 @@ static void com_android_nfc_NfcManager_d
    case PROPERTY_NFC_DISCOVERY_15693:
       {
          TRACE("> Set NFC DISCOVERY 15693 to %d",value); 
+         LOGD("> Set NFC DISCOVERY 15693 to %d",value); 
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = value; 
       }break;
       
    case PROPERTY_NFC_DISCOVERY_NCFIP:
       {
          TRACE("> Set NFC DISCOVERY NFCIP to %d",value); 
+         LOGD("> Set NFC DISCOVERY 15693 to %d",value); 
          nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableNfcActive = value; 
       }break;
    default:
       {
          TRACE("> Unknown Property "); 
+         LOGD("> Unknown Property "); 
       }break;
    }
    
diff -urBNp Nfc.orig/src/com/android/nfc/NfcService.java Nfc/src/com/android/nfc/NfcService.java
--- Nfc.orig/src/com/android/nfc/NfcService.java	2011-07-18 17:58:36.215613918 +0200
+++ Nfc/src/com/android/nfc/NfcService.java	2011-07-18 11:02:46.155614998 +0200
@@ -242,7 +242,8 @@ public class NfcService extends Applicat
     // TODO: none of these appear to be synchronized but are
     // read/written from different threads (notably Binder threads)...
     private int mGeneratedSocketHandle = 0;
-    private volatile boolean mIsNfcEnabled = false;
+    private volatile boolean mIsNfcEnabled = true;
+    //private boolean mIsDiscoveryOn = true;
     private boolean mIsDiscoveryOn = false;
 
     // NFC Execution Environment
@@ -250,7 +251,7 @@ public class NfcService extends Applicat
     private static final int SECURE_ELEMENT_ID = 11259375;  //TODO: remove hard-coded value
     private NativeNfcSecureElement mSecureElement;
     private OpenSecureElement mOpenEe;  // null when EE closed
-    private int mEeRoutingState;  // contactless interface routing
+    private int mEeRoutingState = ROUTE_ON_WHEN_SCREEN_ON;  // contactless interface routing
 
     // fields below are used in multiple threads and protected by synchronized(this)
     private final HashMap<Integer, Object> mObjectMap = new HashMap<Integer, Object>();
@@ -1904,6 +1905,7 @@ public class NfcService extends Applicat
 
         @Override
         public void setCardEmulationRoute(int route) throws RemoteException {
+            Log.d(TAG, "setCardEmulationRoute: old="+mEeRoutingState + ", new="+route);
             NfcService.enforceNfceeAdminPerm(mContext);
             mEeRoutingState = route;
             applyRouting();
@@ -1954,7 +1956,7 @@ public class NfcService extends Applicat
         boolean isSuccess = mManager.initialize();
         if (isSuccess) {
             mIsNfcEnabled = true;
-            mIsDiscoveryOn = true;
+            //mIsDiscoveryOn = true;
 
             /* Start polling loop */
             applyRouting();
--- device.orig/samsung/crespo/device_base.mk	2011-07-18 18:50:54.549541298 +0200
+++ device/samsung/crespo/device_base.mk	2011-07-18 18:51:12.683639426 +0200
@@ -96,6 +96,13 @@ PRODUCT_PACKAGES += \
 	libstagefrighthw \
 	com.android.future.usb.accessory
 
+# NFC (FMP)
+PRODUCT_PACKAGES += \
+	libnfc \
+	libnfc_jni \
+	Nfc \
+	Tag
+
 # Input device calibration files
 PRODUCT_COPY_FILES += \
 	device/samsung/crespo/mxt224_ts_input.idc:system/usr/idc/mxt224_ts_input.idc

Reply via email to