Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content

NFC doesn’t work on OnePlus 9 Pro with /e/OS 1.8.1

  • /e/ version: 1.8.1-s-20230204257074-dev-lemonadep, 1.9-beta.3-s-20230222262912-dev-lemonadep
  • Device model(s): OnePlus 9 Pro (lemonadep)
  • Developer mode enabled: yes
  • Device rooted: makes no difference
  • Trackers blocker enabled: makes no difference

Summary

NFC doesn't work despite it's functionality has been checked on stock OS before flashing /e/OS as denoted in documentation. It's possible to toggle NFC button on Quick Setting Panel and NFC service seems to be running: "Stop" button is active in app settings. But nothing happens when I try to read NFC token via corresponding app.

The problem

Steps to reproduce

  1. Install NFC Tools app on stock OS, run it and put known to work NFC token to cameras block where NFC module resides -- the app reads and displays info about the token
  2. Flash /e/OS, Install NFC Tools app, run it and put same NFC token to NFC module
  3. Try to disable/enable NFC button in Quick Settings Panel and repeat (2)
  4. Try to reboot and repeat (2)

What is the current behavior?

Nothing happens

What is the expected correct behavior?

NFC Tools app should read and display info about the token as on stock OS

Technical informations

Relevant logs (adb logcat)

Starting from smartphone boot, NFC Tool app activated at 17:07:51.084, NFC token put to the smartphone at 17:07:57.216:

OnePlus9Pro:/ $ logcat -d *:W | grep -i nfc                                                                                                                                    
01-08 00:58:26.948   239   239 E qcom,sn-nci 5-0028: error reading NFC VDDIO min and max value
01-08 00:58:26.948   239   239 E qcom,sn-nci 5-0028: error reading NFC current value
01-08 00:58:26.948   239   239 E nfc_ldo_config: regulator entry not present
03-01 17:06:59.597  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: readConfig Cannot open config file /system/vendor/libnfc-nxp_RF.conf
03-01 17:06:59.597  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: readConfig Cannot open config file /data/vendor/nfc/libnfc-nxpTransit.conf
03-01 17:06:59.619  2549  2620 E NFC     : could not retrieve NFC service
03-01 17:06:59.620  2549  2620 E NFC     : could not retrieve NFC service
03-01 17:06:59.691  3941  4193 W libnfc_nci: [WARNING:gki_ulinux.cc(98)] gki_task task_id=0 terminating
03-01 17:06:59.811  1034  1034 E NxpFwDnld: phDnldNfc_SetDlRspTimeout timeout value =9c4
03-01 17:06:59.811  1034  1034 E NxpFwDnld: phDnldNfc_SetDlRspTimeout timeout value =9c4
03-01 17:06:59.841  3941  4194 W libnfc_nci: [WARNING:nfc_ncif.cc(1660)] reset notification!!:0x2 
03-01 17:06:59.881  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:06:59.881  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:06:59.891  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:06:59.905  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:06:59.905  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.138  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.138  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: resetModified Unable to open file for writing
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: isModified Unable to open file assume modified
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: resetModified Unable to open file for writing
03-01 17:07:00.192  1034  1034 E vendor.nxp.hardware.nfc@2.0-service: resetModified Unable to open file for writing
03-01 17:07:00.243  3941  4194 W libnfc_nci: [WARNING:nfa_ee_act.cc(2174)] nfa_ee_nci_mode_set_rsp p_rsp->status:0x03
03-01 17:07:00.251  3941  4194 W libnfc_nci: [WARNING:nfa_ee_act.cc(2174)] nfa_ee_nci_mode_set_rsp p_rsp->status:0x03
03-01 17:07:00.262  3941  4194 W libnfc_nci: [WARNING:nfa_ee_act.cc(2174)] nfa_ee_nci_mode_set_rsp p_rsp->status:0x00
03-01 17:07:00.275  3941  4186 E libnfc_nci: [ERROR:nfa_ee_api.cc(506)] Bad ee_handle
03-01 17:07:00.275  3941  4186 E libnfc_nci: [ERROR:nfa_ee_api.cc(442)] Bad ee_handle
03-01 17:07:00.275  3941  4186 E libnfc_nci: [ERROR:RoutingManager.cpp(583)] RoutingManager::updateDefaultProtocolRoute: failed to register default ISO-DEP route
03-01 17:07:00.276  3941  4194 W libnfc_nci: [WARNING:HciEventManager.cpp(152)] Incorrect Pipe Id
03-01 17:07:51.084  1364  3912 W InputManager-JNI: Input channel object 'edc1bee Splash Screen com.wakdev.wdnfc (client)' was disposed without first being removed with the input manager!
03-01 17:07:53.358  1364  1424 W InputManager-JNI: Input channel object 'af1a377 com.wakdev.wdnfc/com.wakdev.nfctools.free.views.MainActivityFree (client)' was disposed without first being removed with the input manager!
03-01 17:07:57.216  3941  4194 E libnfc_nci: [ERROR:rw_mfc.cc(697)] rw_mfc_conn_cback NULL pointer
03-01 17:07:57.236  3941  4194 E libnfc_nci: [ERROR:rw_mfc.cc(697)] rw_mfc_conn_cback NULL pointer
03-01 17:07:57.254  3941  4194 E libnfc_nci: [ERROR:rw_mfc.cc(528)] RW_MfcDetectNDef
03-01 17:07:57.257  3941  4194 E libnfc_nci: [ERROR:rw_mfc.cc(884)] rw_mfc_readBlock: RW_MFC_SUBSTATE_WAIT_ACK
03-01 17:07:57.260  3941  4194 E libnfc_nci: [ERROR:rw_mfc.cc(697)] rw_mfc_conn_cback NULL pointer

Relevant screenshots

N/A

Solutions

Workaround

Almost worked (see link below) just once, Magisk installed, in adb shell:

su
mount -o remount,rw /vendor
cp /vendor/etc/libnfc-mtp-SN100.conf /vendor/etc/libnfc-nxp.conf
mount -o remount,ro /vendor

(reboot)

Possible fixes

Please see my detailed investigation on the forum