syntax = "proto3"; package spotify.clienttoken.data.v0; option java_multiple_files = true; option optimize_for = CODE_SIZE; option java_package = "spotify.clienttoken.data.v0"; message ConnectivitySdkData { PlatformSpecificData platform_specific_data = 1; string device_id = 2; } message PlatformSpecificData { oneof data { NativeAndroidData android = 1; NativeIOSData ios = 2; NativeDesktopMacOSData desktop_macos = 3; NativeDesktopWindowsData desktop_windows = 4; NativeDesktopLinuxData desktop_linux = 5; } } message NativeAndroidData { Screen screen_dimensions = 1; string android_version = 2; int32 api_version = 3; string device_name = 4; string model_str = 5; string vendor = 6; string vendor_2 = 7; int32 unknown_value_8 = 8; } message NativeIOSData { // https://developer.apple.com/documentation/uikit/uiuserinterfaceidiom int32 user_interface_idiom = 1; bool target_iphone_simulator = 2; string hw_machine = 3; string system_version = 4; string simulator_model_identifier = 5; } message NativeDesktopWindowsData { int32 os_version = 1; int32 os_build = 3; // https://docs.microsoft.com/en-us/dotnet/api/system.platformid?view=net-6.0 int32 platform_id = 4; int32 unknown_value_5 = 5; int32 unknown_value_6 = 6; // https://docs.microsoft.com/en-us/dotnet/api/system.reflection.imagefilemachine?view=net-6.0 int32 image_file_machine = 7; // https://docs.microsoft.com/en-us/dotnet/api/system.reflection.portableexecutable.machine?view=net-6.0 int32 pe_machine = 8; bool unknown_value_10 = 10; } message NativeDesktopLinuxData { string system_name = 1; // uname -s string system_release = 2; // -r string system_version = 3; // -v string hardware = 4; // -i } message NativeDesktopMacOSData { string system_version = 1; string hw_model = 2; string compiled_cpu_type = 3; } message Screen { int32 width = 1; int32 height = 2; int32 density = 3; int32 unknown_value_4 = 4; int32 unknown_value_5 = 5; }