This is the "Secure Element Daemon" used to communicate with the secure element hardware on the device. It is interacted with by the nfcd daemon using XPC.
SELD plist:
{
EnablePressuredExit = 1;
EnableTransactions = 1;
ExitTimeOut = 40;
Label = "com.apple.seld";
MachServices = {
"com.apple.seld" = 1;
"com.apple.seld.aps" = 1;
};
Program = "/usr/libexec/seld";
RunAtLoad = 1;
UserName = mobile;
}
ApplePay personalization is performed using EMV BER-TLV commands to the secure element.
Major objects in the seld binary are:
- NFSecureElement(CertificateAuthority)
- SEDaemon
- NFSecureElement(ISO7816)
- NFSecureElement
- NFSecureElement(ContactlessRegistry)
- NFSecureElementCache
- NFSecureElementRemoteAdminAgent
- NFSecureElementRemoteAdminRequest
- NFSecureElementRemoteAdminRegistry
- NFResponseAPDU
- NFCardManagerAgent
- NFCardManagerAgent_XPC
NFCardManagerAgent Supported XPC Commands
ID | Command | ||||||
---|---|---|---|---|---|---|---|
0x0 - 0x8 | throw "unknown command" error | ||||||
0x11 | [NFCardManagerAgent signChallenge:callback:] | ||||||
0x12 | [NFCardManagerAgent authorize:callback:] | ||||||
0x13 | [NFCardManagerAgent deauthorize] | ||||||
0x14 | [NFCardManagerAgent getApplications:] | ||||||
0x15 | [NFCardManagerAgent asActive:checkCache:callback:] | ||||||
0x16 | [NFCardManagerAgent markAllApplicationsForDelete] | ||||||
0x17 | [NFCardManagerAgent getActiveApplications:] | ||||||
0x18 | [NFCardManagerAgent getRestrictedMode:] | 0x19-0x89 | throw unknown command error | 0x90 | call [NFCardManagerAgent dumpAppData:callback:] | ||
0x91 | throw unknown command error | ||||||
0x92 | call [NFCardManagerAgent dumpRestrictedModeLogWithCallBack:] |