So as far as per my analysis i found out these, but i still dont know if they are correct. Would be happy and thankful if someone corrected me
$buff = '';
$buf .= pb_field_str(1, $machine_id); // f1: machine_id
$buf .= pb_field_bytes(2, build_os_info(6, 2, $os_ver)); // f2: OSInfo {variant:6, arch:2, ver}
$buf .= pb_field_str(4, $jwt); //f4: game_token (JWT)
$buf .= pb_field_bytes(5, $client_rsa); // f5: client RSA public key (SPKI DER)
$buf .= pb_field_bytes(6, build_dev_sub($dev_build)); //f6: version
$buf .= pb_field_bytes(7, build_dev_sub($dev_build)); //f7:vgk_version
$buf .= pb_field_str(8, $game_id); //f8: game_id
$buf .= pb_field_varint(9, $boot_state); //f9: boot_state
$buf .= pb_field_str(10, "variant=6 arch=2 " . $os_ver); // f10: ephemeral_identifiers
$buf .= pb_field_bytes(11, $core_info); //f11: CoreInfo
$buf .= pb_field_bytes(12, $mem_info); //f12: MemoryInfo
$buf .= pb_field_str(13, $external_sid); //f13:external_sid
// f14: security features as bytes (server expects this format)
foreach ($sec as $feat) { $buf .= pb_field_bytes(14, build_security_feature($feat)); }
// f15: metadata map {key="ht", val=kvcr_ht}
$meta = $profile['f15'] ?? $profile['kvcr_ht'] ?? null;
if ($meta !== null) {
$entry = pb_field_str(1, 'ht') . pb_field_str(2, (string)$meta);
$buf .= pb_field_bytes(15, $entry);
}
return $buff;
}
$buff = '';
$buf .= pb_field_str(1, $machine_id); // f1: machine_id
$buf .= pb_field_bytes(2, build_os_info(6, 2, $os_ver)); // f2: OSInfo {variant:6, arch:2, ver}
$buf .= pb_field_str(4, $jwt); //f4: game_token (JWT)
$buf .= pb_field_bytes(5, $client_rsa); // f5: client RSA public key (SPKI DER)
$buf .= pb_field_bytes(6, build_dev_sub($dev_build)); //f6: version
$buf .= pb_field_bytes(7, build_dev_sub($dev_build)); //f7:vgk_version
$buf .= pb_field_str(8, $game_id); //f8: game_id
$buf .= pb_field_varint(9, $boot_state); //f9: boot_state
$buf .= pb_field_str(10, "variant=6 arch=2 " . $os_ver); // f10: ephemeral_identifiers
$buf .= pb_field_bytes(11, $core_info); //f11: CoreInfo
$buf .= pb_field_bytes(12, $mem_info); //f12: MemoryInfo
$buf .= pb_field_str(13, $external_sid); //f13:external_sid
// f14: security features as bytes (server expects this format)
foreach ($sec as $feat) { $buf .= pb_field_bytes(14, build_security_feature($feat)); }
// f15: metadata map {key="ht", val=kvcr_ht}
$meta = $profile['f15'] ?? $profile['kvcr_ht'] ?? null;
if ($meta !== null) {
$entry = pb_field_str(1, 'ht') . pb_field_str(2, (string)$meta);
$buf .= pb_field_bytes(15, $entry);
}
return $buff;
}