Dev: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 are:
 * NFDaemon
 * NFFieldDetectController
 * NFCoreTelephonyConnection
 * NFPowerManager
 * NFAbstractController
 * NFCardEmulationController
 * NFSecureElementController

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

Launchd plist
Where the XPC service is registered under the "com.apple.nfcd" name

Supported XPC Commands
A command is send by using the key "command" which is set to the corresponding uint64_t value above. i.e see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/xpc_dictionary_set_uint64.3.html

NFDaemon - (unsigned int)q_unregisterConnection:(XPCConnection)
This functions checks for an existing controller for the Then when it finds the appropriate controller then calls the unregister function for it.
 * [NFCardEmulationController embeddedCardEmulationController]
 * [NFCardEmulationController UICCCardEmulationController]
 * [NFSecureElementController seController]
 * [NFFieldDetectController fieldDetectController]