Refactor some names in continuity lib

This commit is contained in:
Willy-JL
2023-09-04 16:22:38 +02:00
parent 8613fab275
commit 557afcbc89
3 changed files with 67 additions and 67 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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);