Last active
January 9, 2020 14:23
-
-
Save DurtyFree/eae9f8f42df78cc46be4411d99bb5364 to your computer and use it in GitHub Desktop.
Pokemon Go signature proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
syntax = "proto3"; | |
package POGOProtos.Networking.Envelopes; | |
message Signature { | |
repeated UnknownMessage field1 = 1; | |
int64 timestamp_ms_since_start = 2; | |
string field3 = 3; | |
repeated LocationUpdate location_updates = 4; // Multiple location updates at a time. This is all the updates since the last time we sent a request | |
repeated AndroidGpsInfo android_gps_info = 5; | |
repeated UnknownMessage field6 = 6; | |
repeated SensorUpdate sensor_updates = 7; // All the sensor updates since the last time we sent a request. (Seems to actually be throttled to 1-3 at a time) | |
DeviceInfo device_info = 8; // device info - need to find this still to verify everything | |
IOSDeviceInfo ios_device_info = 9; // iOS only - likely device capabilities? (Or even simpler being iOS device version flags) | |
int32 location_hash_by_token_seed = 10; // Hashed location using the auth token as the seed (hashed auth token -> location hash seed) | |
bool field11 = 11; | |
bool field12 = 12; | |
int32 field13 = 13; | |
int32 field14 = 14; | |
string field15 = 15; | |
int32 field16 = 16; | |
string field17 = 17; | |
string field18 = 18; | |
bool field19 = 19; | |
int32 location_hash = 20; | |
bool field21 = 21; | |
bytes field22 = 22; // replay check - Changes every 5 minutes or so. Generation unknown but pointed to by 0001B8614 | |
uint64 epoch_timestamp_ms = 23; | |
repeated uint64 request_hashes = 24; // xxHash64 of the requests being sent with this agglom | |
uint64 field25 = 25; | |
// 100% - Reference iOS lib "LocationUpdate" structure for bridge | |
message LocationUpdate { | |
string name = 1; // "network", "gps", "fused" - only these 3 values (com.nianticlabs.location.NianticLocationManager.class) | |
int64 timestamp_ms = 2; | |
float altitude = 4; | |
float latitude = 13; | |
float longitude = 14; | |
float device_speed = 18; | |
float device_course = 20; | |
float horizontal_accuracy = 21; | |
float vertical_accuracy = 22; | |
int32 provider_status = 26; | |
int64 floor = 27; | |
int32 location_type = 28; | |
} | |
// iOS only | |
message IOSDeviceInfo { | |
bool bool1 = 1; | |
bool bool2 = 2; | |
bool bool3 = 3; // 1 | |
bool bool4 = 4; | |
bool bool5 = 5; // 1 | |
bool bool6 = 6; // 1 | |
bool bool7 = 7; | |
bool bool8 = 8; | |
bool bool9 = 9; | |
bool bool10 = 10; | |
} | |
// 100% - Reference iOS lib "LocationUpdate" structure for bridge | |
message SensorUpdate { | |
uint64 timestamp = 1; | |
double acceleration_x = 3; | |
double acceleration_y = 4; | |
double acceleration_z = 5; | |
double magnetic_field_x = 6; | |
double magnetic_field_y = 7; | |
double magnetic_field_z = 8; | |
int32 magnetic_field_accuracy = 9; | |
double attitude_pitch = 10; | |
double attitude_yaw = 11; | |
double attitude_roll = 12; | |
double rotation_rate_x = 13; | |
double rotation_rate_y = 14; | |
double rotation_rate_z = 15; | |
double gravity_x = 16; | |
double gravity_y = 17; | |
double gravity_z = 18; | |
int32 status = 19; | |
} | |
message DeviceInfo { | |
string device_id = 1; | |
string android_board_name = 2; | |
string android_bootloader = 3; | |
string device_brand = 4; // product.brand | |
string device_model = 5; // product.device | |
string device_model_identifier = 6; // Android only, build.display.id | |
string device_comms_model = 7; // boot.hardware | |
string hardware_manufacturer = 8; // product.manufacturer | |
string hardware_model = 9; // product.model | |
string firmware_brand = 10; // On iOS: "iPhone OS", product.name | |
string firmware_tags = 12; // Android only, build.tags | |
string firmware_type = 13; // On iOS instead: iOS version; // build.type | |
string firmware_fingerprint = 14; // Android only, build.fingerprint | |
} | |
message AndroidGpsInfo { | |
uint64 time_to_fix = 1; | |
repeated int32 satellites_prn = 2; | |
repeated float azimuth = 3; | |
repeated float elevation = 4; | |
repeated float snr = 5; | |
repeated bool has_almanac = 6; | |
repeated bool has_ephemeris = 7; | |
repeated bool used_in_fix = 8; | |
} | |
} | |
// Just a junk message to denote that we don't currently know what message something is. | |
message UnknownMessage { | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment