Skip to content

Binary plist message format (OS X)

steve918 edited this page Oct 18, 2012 · 2 revisions

0A Message payloads

Below is couple of example binary plist payloads attached to messages with an 0A Id.

Message format:

0A - Message
	* 04 - PushId (4 bytes)
	* 01 - Topic
	* 02 - Push Token
	* 03 - Payload (see plist below)

Corresponding payload

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>D</key>
	<true/>
	<key>E</key>
	<string>pair</string>
	<key>P</key>
	<data>
		...
		Base64 encoded blob
		...
	</data>
	<key>U</key>
	<data>
		...
		Base64 encoded blob
		...
	</data>
	<key>c</key>
	<integer>100</integer>
	<key>i</key>
	<integer>37708141</integer>
	<key>sP</key>
	<string>mailto:[email protected]</string>
	<key>sT</key>
	<data>
		...
		Base64 encoded blob
		...
	</data>
	<key>t</key>
	<data>
		...
		Base64 encoded blob
		...
	</data>
	<key>tP</key>
	<string>mailto:[email protected]</string>
	<key>ua</key>
	<string>[Mac OS X,10.7.4,11D1069,MacBookPro6,2]</string>
	<key>v</key>
	<integer>1</integer>
</dict>
</plist>

Key meanings

  • D
  • E
  • P
  • U
  • c
  • i - ? unique message id
  • sP - sender contact
  • sT
  • t
  • tP - recipient contact
  • ua - user agent
  • v - version?

Alternate Format

0A - Message
	* 07 - 0x02
	* 04 - (4byte push id)
	* 05 - 00 00 00 00
	* 06 - (8bytes timestamp?)
	* 01 - Push Token
	* 02 - Topic
	* 03 - Payload (see plist below)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>c</key>
	<integer>255</integer>
	<key>i</key>
	<integer>35607200</integer>
	<key>s</key>
	<integer>0</integer>
</dict>
</plist>