homekit.md

August 27, 2020 ยท View on GitHub

HomeKit Message

HomeKit is Apple's smart home framework, and HomeKit messages are broadcast continuously by HomeKit compatible devices. This message type was first described by Guillaume Celosia and Mathieu Cunche in Discontinued Privacy: Personal Data Leaks in Apple Bluetooth-Low-Energy Continuity Protocols. Celosia et al. note that the Global State Number field increments at each state change by a HomeKit device, which leaks information about the device usage.

HomeKit Message (btcommon.apple.type == 0x06)(This needs more work)

Field NameInfoExampleLengthTypeNotes
btcommon.apple.homekit.statusStatus Flags011BytesNot sure what th flags mean
btcommon.apple.homekit.deviceidDevice ID222022f38f016Bytes
btcommon.apple.homekit.categoryCategoryRange Extender (0x1000)2UINT16
btcommon.apple.homekit.globalstatenumGlobal State Numberfa922BytesDon't know what this is
btcommon.apple.homekit.dateUnkown Data (maybe encrypted)0212BytesDon't know what this is
btcommon.apple.homekit.confignumConfiguration Number021BytesDon't know what this is
btcommon.apple.homekit.compverCompatible Versionc71BytesDon't know what this is

The message fields, observed values and their meaning:

  • Type: 1 byte, 0x06 -- indicates a HomeKit message
  • Length: 1 byte, 0x0d -- number of bytes in message payload
  • Status flags: 1 byte
  • Device ID: 6 bytes
  • Category: 2 bytes
  • Global State Number: 2 bytes
  • Configuration Number: 1 byte
  • Compatible Version: 1 byte