diff --git a/applications/external/apple_ble_spam/apple_ble_spam.c b/applications/external/apple_ble_spam/apple_ble_spam.c index a57d784d2..1ab1c8777 100644 --- a/applications/external/apple_ble_spam/apple_ble_spam.c +++ b/applications/external/apple_ble_spam/apple_ble_spam.c @@ -175,6 +175,14 @@ static Payload payloads[] = { .type = ContinuityTypeNearbyAction, .data = {.nearby_action = {.flags = 0xC0, .type = 0x17}}, }}, + {.title = "Nearby Info", + .text = "", + .random = false, + .msg = + { + .type = ContinuityTypeNearbyInfo, + .data = {.nearby_info = {}}, + }}, #endif {.title = "Random Action", .text = "Spam shuffle Nearby Actions", diff --git a/applications/external/apple_ble_spam/lib/continuity/continuity.c b/applications/external/apple_ble_spam/lib/continuity/continuity.c index e9c0b11da..3d50107b1 100644 --- a/applications/external/apple_ble_spam/lib/continuity/continuity.c +++ b/applications/external/apple_ble_spam/lib/continuity/continuity.c @@ -15,6 +15,7 @@ static const char* continuity_type_names[ContinuityTypeCount] = { [ContinuityTypeHandoff] = "Handoff", [ContinuityTypeTetheringSource] = "Tethering Source", [ContinuityTypeNearbyAction] = "Nearby Action", + [ContinuityTypeNearbyInfo] = "Nearby Info", }; const char* continuity_get_type_name(ContinuityType type) { return continuity_type_names[type]; @@ -28,6 +29,7 @@ static uint8_t continuity_packet_sizes[ContinuityTypeCount] = { [ContinuityTypeHandoff] = HEADER_LEN + 14, [ContinuityTypeTetheringSource] = HEADER_LEN + 6, [ContinuityTypeNearbyAction] = HEADER_LEN + 5, + [ContinuityTypeNearbyInfo] = HEADER_LEN + 5, }; uint8_t continuity_get_packet_size(ContinuityType type) { return continuity_packet_sizes[type]; @@ -125,6 +127,14 @@ void continuity_generate_packet(const ContinuityMsg* msg, uint8_t* packet) { i += 3; break; + case ContinuityTypeNearbyInfo: + packet[i++] = ((rand() % 16) << 4) + (rand() % 16); // Status Flags and Action Code + packet[i++] = (rand() % 256); // Status Flags + packet[i++] = (rand() % 256); // Authentication Tag + packet[i++] = (rand() % 256); // ... + packet[i++] = (rand() % 256); // ... + break; + default: break; } diff --git a/applications/external/apple_ble_spam/lib/continuity/continuity.h b/applications/external/apple_ble_spam/lib/continuity/continuity.h index 243e14f45..01a53364c 100644 --- a/applications/external/apple_ble_spam/lib/continuity/continuity.h +++ b/applications/external/apple_ble_spam/lib/continuity/continuity.h @@ -17,6 +17,7 @@ typedef enum { ContinuityTypeHandoff = 0x0C, ContinuityTypeTetheringSource = 0x0E, ContinuityTypeNearbyAction = 0x0F, + ContinuityTypeNearbyInfo = 0x10, ContinuityTypeCount } ContinuityType; @@ -37,6 +38,8 @@ typedef union { uint8_t flags; uint8_t type; } nearby_action; + struct { + } nearby_info; } ContinuityData; typedef struct {