diff --git a/applications/external/apple_ble_spam/apple_ble_spam.c b/applications/external/apple_ble_spam/apple_ble_spam.c index 0ac2eae56..3d2333b39 100644 --- a/applications/external/apple_ble_spam/apple_ble_spam.c +++ b/applications/external/apple_ble_spam/apple_ble_spam.c @@ -8,194 +8,194 @@ typedef struct { const char* title; - ContinuityMessage msg; + ContinuityMsg msg; } Payload; // Hacked together by @Willy-JL // Structures docs and Nearby Action IDs from https://github.com/furiousMAC/continuity/ -// Proximity Pairing IDs from https://github.com/ECTO-1A/AppleJuice/ +// Proximity Pair IDs from https://github.com/ECTO-1A/AppleJuice/ // Custom adv logic and Airtag ID from https://techryptic.github.io/2023/09/01/Annoying-Apple-Fans/ static const Payload payloads[] = { {.title = "AirPods Pro", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0E20}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0E20}}, }}, {.title = "PowerBeats", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0320}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0320}}, }}, {.title = "Airtag", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0055}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0055}}, }}, {.title = "Setup New Phone", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x09}}, + .data = {.nearby_action = {.type = 0x09}}, }}, {.title = "Transfer Number", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x02}}, + .data = {.nearby_action = {.type = 0x02}}, }}, {.title = "AppleTV AutoFill", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x13}}, + .data = {.nearby_action = {.type = 0x13}}, }}, {.title = "AppleTV Pair", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x06}}, + .data = {.nearby_action = {.type = 0x06}}, }}, {.title = "HomePod Setup", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x0B}}, + .data = {.nearby_action = {.type = 0x0B}}, }}, {.title = "AirPods", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0220}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0220}}, }}, {.title = "AirPods Max", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0A20}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0A20}}, }}, {.title = "AirPods Gen 2", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0F20}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0F20}}, }}, {.title = "AirPods Gen 3", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1320}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1320}}, }}, {.title = "AirPods Pro Gen 2", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1420}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1420}}, }}, {.title = "PowerBeats Pro", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0B20}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0B20}}, }}, {.title = "Beats Solo Pro", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0C20}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0C20}}, }}, {.title = "Beats Studio Buds", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1120}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1120}}, }}, {.title = "Beats Flex", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1020}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1020}}, }}, {.title = "Beats X", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0520}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0520}}, }}, {.title = "Beats Solo 3", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0620}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0620}}, }}, {.title = "Beats Studio 3", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x0920}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x0920}}, }}, {.title = "Beats Studio Pro", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1720}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1720}}, }}, {.title = "Beats Fit Pro", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1220}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1220}}, }}, {.title = "Beats Studio Buds+", .msg = { - .type = ContinuityTypeProximityPairing, - .data = {.proximity_pairing = {.device_model = 0x1620}}, + .type = ContinuityTypeProximityPair, + .data = {.proximity_pair = {.model = 0x1620}}, }}, {.title = "AppleTV Setup", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x01}}, + .data = {.nearby_action = {.type = 0x01}}, }}, {.title = "AppleTV Homekit Setup", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x0D}}, + .data = {.nearby_action = {.type = 0x0D}}, }}, {.title = "AppleTV New User", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x20}}, + .data = {.nearby_action = {.type = 0x20}}, }}, {.title = "AppleTV AppleID Setup", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x2B}}, + .data = {.nearby_action = {.type = 0x2B}}, }}, {.title = "AppleTV Audio Sync", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x19}}, + .data = {.nearby_action = {.type = 0x19}}, }}, {.title = "AppleTV Network", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x27}}, + .data = {.nearby_action = {.type = 0x27}}, }}, {.title = "TV Color Balance", .msg = { .type = ContinuityTypeNearbyAction, - .data = {.nearby_action = {.action_type = 0x13}}, + .data = {.nearby_action = {.type = 0x13}}, }}, }; @@ -204,7 +204,7 @@ typedef struct { size_t delay; size_t size; uint8_t* packet; - const ContinuityMessage* msg; + const ContinuityMsg* msg; FuriThread* thread; size_t index; } State; diff --git a/applications/external/apple_ble_spam/lib/continuity/continuity.c b/applications/external/apple_ble_spam/lib/continuity/continuity.c index 92a1572e7..a0f7b8e74 100644 --- a/applications/external/apple_ble_spam/lib/continuity/continuity.c +++ b/applications/external/apple_ble_spam/lib/continuity/continuity.c @@ -3,12 +3,12 @@ // Hacked together by @Willy-JL // Structures docs and Nearby Action IDs from https://github.com/furiousMAC/continuity/ -// Proximity Pairing IDs from https://github.com/ECTO-1A/AppleJuice/ +// Proximity Pair IDs from https://github.com/ECTO-1A/AppleJuice/ // Custom adv logic and Airtag ID from https://techryptic.github.io/2023/09/01/Annoying-Apple-Fans/ static const char* continuity_type_names[ContinuityTypeCount] = { [ContinuityTypeNearbyAction] = "Nearby Action", - [ContinuityTypeProximityPairing] = "Proximity Pairing", + [ContinuityTypeProximityPair] = "Proximity Pair", }; const char* continuity_get_type_name(ContinuityType type) { return continuity_type_names[type]; @@ -16,13 +16,13 @@ const char* continuity_get_type_name(ContinuityType type) { static size_t continuity_packet_sizes[ContinuityTypeCount] = { [ContinuityTypeNearbyAction] = 23, - [ContinuityTypeProximityPairing] = 31, + [ContinuityTypeProximityPair] = 31, }; size_t continuity_get_packet_size(ContinuityType type) { return continuity_packet_sizes[type]; } -void continuity_generate_packet(const ContinuityMessage* msg, uint8_t* packet) { +void continuity_generate_packet(const ContinuityMsg* msg, uint8_t* packet) { size_t i = 0; packet[i++] = continuity_get_packet_size(msg->type) - 1; packet[i++] = 0xff; @@ -39,7 +39,7 @@ void continuity_generate_packet(const ContinuityMessage* msg, uint8_t* packet) { packet[i++] = 0x0f; // Type (Nearby Action) packet[i++] = 0x05; // Length packet[i++] = 0xc1; // Action Flags - packet[i++] = msg->data.nearby_action.action_type; + packet[i++] = msg->data.nearby_action.type; packet[i++] = (rand() % 256); // Authentication Tag packet[i++] = (rand() % 256); // ... packet[i++] = (rand() % 256); // ... @@ -50,12 +50,12 @@ void continuity_generate_packet(const ContinuityMessage* msg, uint8_t* packet) { packet[i++] = (rand() % 256); // ... packet[i++] = (rand() % 256); // ... break; - case ContinuityTypeProximityPairing: - packet[i++] = 0x07; // Type (Proximity Pairing) + case ContinuityTypeProximityPair: + packet[i++] = 0x07; // Type (Proximity Pair) packet[i++] = 0x19; // Length packet[i++] = 0x01; - packet[i++] = msg->data.proximity_pairing.device_model >> 8; - packet[i++] = msg->data.proximity_pairing.device_model & 0xFF; + packet[i++] = msg->data.proximity_pair.model >> 8; + packet[i++] = msg->data.proximity_pair.model & 0xFF; packet[i++] = 0x55; // Status packet[i++] = ((rand() % 10) << 4) + (rand() % 10); // Buds Battery Level packet[i++] = ((rand() % 8) << 4) + (rand() % 10); // Charing Status and Battery Case Level diff --git a/applications/external/apple_ble_spam/lib/continuity/continuity.h b/applications/external/apple_ble_spam/lib/continuity/continuity.h index c4a5bed23..8ca6bfba5 100644 --- a/applications/external/apple_ble_spam/lib/continuity/continuity.h +++ b/applications/external/apple_ble_spam/lib/continuity/continuity.h @@ -5,31 +5,31 @@ // Hacked together by @Willy-JL // Structures docs and Nearby Action IDs from https://github.com/furiousMAC/continuity/ -// Proximity Pairing IDs from https://github.com/ECTO-1A/AppleJuice/ +// Proximity Pair IDs from https://github.com/ECTO-1A/AppleJuice/ // Custom adv logic and Airtag ID from https://techryptic.github.io/2023/09/01/Annoying-Apple-Fans/ typedef enum { ContinuityTypeNearbyAction, - ContinuityTypeProximityPairing, + ContinuityTypeProximityPair, ContinuityTypeCount } ContinuityType; typedef union { struct { - uint8_t action_type; + uint8_t type; } nearby_action; struct { - uint16_t device_model; - } proximity_pairing; + uint16_t model; + } proximity_pair; } ContinuityData; typedef struct { ContinuityType type; ContinuityData data; -} ContinuityMessage; +} ContinuityMsg; const char* continuity_get_type_name(ContinuityType type); size_t continuity_get_packet_size(ContinuityType type); -void continuity_generate_packet(const ContinuityMessage* msg, uint8_t* packet); +void continuity_generate_packet(const ContinuityMsg* msg, uint8_t* packet);