Skip to content

Fix Windows ARM64 platform signature for Spotify Access Point - #1757

Closed
nos1609 wants to merge 1 commit into
librespot-org:devfrom
nos1609:fastpotify-0.8-arm64
Closed

nos1609 wants to merge 1 commit into
librespot-org:devfrom
nos1609:fastpotify-0.8-arm64

Conversation

@nos1609

@nos1609 nos1609 commented Sep 9, 2026

Copy link
Copy Markdown

Summary

On Windows ARM/ARM64, librespot currently reports PLATFORM_WINDOWS_CE_ARM in ClientHello and CPU_ARM during Access Point authentication. The protocol schema defines Windows CE ARM (0x7) and Win32 x86_64 (0x27) as distinct platform identifiers, so a modern Windows on ARM client is effectively identified as Windows CE.

This change reports Windows ARM/ARM64 as PLATFORM_WIN32_X86_64 and CPU_X86_64, while preserving the existing mappings for non-Windows ARM and unknown Windows architectures.

Protocol context

BuildInfo.platform is a required field in ClientHello. The relevant identifiers are defined in:

  • protocol/proto/keyexchange.proto

The Windows platform is selected in client_hello() and sent in the handshake via set_platform(platform):

  • core/src/connection/handshake.rs

Spotify's public developer documentation does not document these low-level Access Point platform identifiers. Its Commercial Hardware documentation states that the eSDK binary handles negotiation with Spotify backend services internally, and Spotify's eSDK changelog refers to the Access Point as proprietary.

Therefore this PR does not rely on an official Spotify deprecation claim for PLATFORM_WINDOWS_CE_ARM; it fixes the mismatch in librespot's current Windows ARM mapping.

Rationale

Windows on ARM should not identify itself as Windows CE. Reporting the desktop Win32 x86_64 platform and CPU identifiers avoids the Access Point authentication rejection observed on Windows ARM/ARM64 while leaving other platform mappings unchanged.

References crmne/spotifast#123 and #1737.

@nos1609
nos1609 marked this pull request as draft September 9, 2026 11:29
@nos1609
nos1609 force-pushed the fastpotify-0.8-arm64 branch from 387b5db to 16b0f90 Compare September 9, 2026 11:34
@nos1609 nos1609 closed this Sep 9, 2026
@nos1609 nos1609 reopened this Sep 9, 2026
@nos1609
nos1609 force-pushed the fastpotify-0.8-arm64 branch from 16b0f90 to cad676b Compare September 9, 2026 18:13
@nos1609 nos1609 changed the title Fix Windows ARM64 platform signature for Spotify Access Point - #4 Fix Windows ARM64 platform signature for Spotify Access Point Sep 9, 2026
@nos1609
nos1609 marked this pull request as ready for review September 9, 2026 18:27
librespot reports Windows ARM/ARM64 as Windows CE ARM in the Access Point handshake. Report these clients as the Win32 x86_64 desktop platform and CPU family instead, while preserving the existing mappings for other operating systems.

Add the corresponding entry to the Unreleased changelog.

References librespot-org#1737 and crmne/spotifast#123.
@nos1609
nos1609 force-pushed the fastpotify-0.8-arm64 branch from cad676b to cd6f019 Compare September 9, 2026 18:32
@nos1609

nos1609 commented Sep 15, 2026

Copy link
Copy Markdown
Author

Superseded by #1761.

@nos1609 nos1609 closed this Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant