diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/aap/engine/AapSessionEngine.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/aap/engine/AapSessionEngine.kt index 43638342..8e2078cd 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/aap/engine/AapSessionEngine.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/aap/engine/AapSessionEngine.kt @@ -602,7 +602,7 @@ internal class AapSessionEngine( AapMessageType.UARP_DATA.value, // 0x004F AapMessageType.UNKNOWN_0X50.value, // 0x0050 AapMessageType.SOURCE_CONTEXT.value, // 0x0052 - AapMessageType.SET_BAND_EDGES.value, // 0x0054 (neighbouring opcode; distinct from 0x53 PmeConfig/hearing-aid which CAPod decodes) + AapMessageType.SET_BAND_EDGES.value, // 0x0054 RF band gating (push-only; see AapMessageType kdoc) AapMessageType.UNKNOWN_0X55.value, // 0x0055 AapMessageType.SLEEP_DETECTION_UPDATE.value, // 0x0057 AapMessageType.UNKNOWN_0X58.value, // 0x0058 diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/aap/protocol/AapMessageType.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/aap/protocol/AapMessageType.kt index 00f76f90..cb44f41c 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/aap/protocol/AapMessageType.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/aap/protocol/AapMessageType.kt @@ -98,6 +98,16 @@ enum class AapMessageType(val value: Int, val wiresharkName: String) { */ PME_CONFIG(0x0053, "PME Config"), + /** + * Configures the AirPods radio's allowed RF bands. AirPods Pro 2 USB-C + * and newer can transmit on 5 GHz / 6 GHz U-NII bands in addition to + * 2.4 GHz ISM — Apple uses this for the proprietary lossless audio mode + * with Apple Vision Pro. The "type" field is a band code from Apple's + * `BSM_BAND_CODE_*` enum (0x0 = ISM24, 0x1/0x2/0x3 = U-NII-1/3/4, + * 0x4–0x7 = U-NII-5A/B/C/D, 0x8 = INVALID; identified via FCC firmware + * analysis). "Set Band Edges" is the label the Wireshark AAP dissector + * uses for this opcode. CAPod observes but does not decode the payload. + */ SET_BAND_EDGES(0x0054, "Set Band Edges"), UNKNOWN_0X55(0x0055, "Unknown"), USB_SPATIAL_SENSOR_DATA_REQUEST(0x0056, "USB Spatial Sensor Data Request"),