(Created page with "== NFCD == 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...") |
No edit summary |
||
Line 1: | Line 1: | ||
nfcd is a daemon running under the ''mobile'' user. It handles the communications between Passkit and the underlying hardware and libraries. | nfcd is a daemon running under the ''mobile'' user. It handles the communications between Passkit and the underlying hardware and libraries. | ||
Revision as of 03:13, 25 September 2015
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; }