Nfcd

From iPhone Development Wiki
Revision as of 03:14, 25 September 2015 by Peterfillmore (talk | contribs)

nfcd is a daemon running under the mobile user. It handles the communications between Passkit and the underlying hardware and libraries.

The core objects in it are:

  • NFDaemon
  • NFFieldDetectController
  • NFCoreTelephonyConnection
  • NFPowerManager
  • NFAbstractController
  • NFCardEmulationController
  • NFSecureElementController

NFDaemon - (void)XPCConnection:(id) didReceiveCommand:(id)

the launchd plist is: {

   EnablePressuredExit = 1;
   EnableTransactions = 1;
   ExitTimeOut = 45;
   Label = "com.apple.nfcd";
   MachServices =     {
       "com.apple.nfcd" = 1;
   };
   ProcessType = Interactive;
   Program = "/usr/libexec/nfcd";
   UserName = mobile;

} where the XPC service is registered under the "com.apple.nfcd" name

Supported XPC Commands are:

1
q_registerConnection:info:
2
q_unregisterConnection:
3-64
send command to SE controller
65
q_updateSecureElementPowerState
66
_seIsInRestrictedMode
67
restrictedModeChanged
68-239
callSEContoller
240
setDeviceString
241
q_getControllerInfo
242
q_getSecureElementInfo
243
q_getBoosterInfo
244
q_readBoosterRegister
245
q_sendBoosterCommand
246
q_triggerAssertion
>247
throw error

These are formatted into a JSON list i.e. { command = 1; }