Project Zero: A Look at iMessage in iOS 14
} If necessary, decompress the binary data Decode the plist from its binary serialization format Extract its various fields and ensure they have the correct type Decode the `x` key if present, using an XML decoder Previously, all of this work happened in imagent. With iOS 14, however, it all moved into the new BlastDoor service. While the main processing flow still starts in imagent, which receives the raw but unencrypted payload bytes from identityservicesd (part of the IDS framework) in -[IMDiMessageIDSDelegate service:account:incomingTopLevelMessage:fromID:messageContext:], messages are t...