Skip to content

Commit 387b5db

Browse files
committed
Fix Windows ARM64 platform signature for Spotify Access Point
Modern Spotify Access Point rejects the obsolete PLATFORM_WINDOWS_CE_ARM signature and CPU_ARM for Windows with ErrorCode::PremiumAccountRequired. Map Windows aarch64 to PLATFORM_WIN32_X86_64 and CpuFamily::CPU_X86_64, resolving connection rejection on Windows on ARM devices. References #1737 and crmne/spotifast#123.
1 parent 71379a0 commit 387b5db

3 files changed

Lines changed: 5 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616

1717
- [core, metadata, cli] Resolve Rust 1.98 Clippy warnings without changing behavior
1818
- [core] Include socket and proxy setup in the access-point connection timeout so retries can proceed
19+
- [core] Map Windows ARM64 platform signature to Win32 x86_64 to prevent Access Point login rejection
1920
- [playback] Stop instead of advancing through the queue when Spotify refuses an audio key
2021

2122
## [0.8.0] - 2025-11-10

core/src/connection/handshake.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,8 @@ where
138138
_ => Platform::PLATFORM_OSX_X86,
139139
},
140140
"windows" => match ARCH {
141-
"arm" | "aarch64" => Platform::PLATFORM_WINDOWS_CE_ARM,
142-
"x86_64" => Platform::PLATFORM_WIN32_X86_64,
143-
_ => Platform::PLATFORM_WIN32_X86,
141+
"x86" => Platform::PLATFORM_WIN32_X86,
142+
_ => Platform::PLATFORM_WIN32_X86_64,
144143
},
145144
_ => Platform::PLATFORM_LINUX_X86,
146145
};

core/src/connection/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,15 @@ pub async fn authenticate(
104104

105105
let cpu_family = match std::env::consts::ARCH {
106106
"blackfin" => CpuFamily::CPU_BLACKFIN,
107-
"arm" | "aarch64" => CpuFamily::CPU_ARM,
108107
"ia64" => CpuFamily::CPU_IA64,
109108
"mips" => CpuFamily::CPU_MIPS,
110109
"ppc" => CpuFamily::CPU_PPC,
111110
"ppc64" => CpuFamily::CPU_PPC_64,
112111
"sh" => CpuFamily::CPU_SH,
113112
"x86" => CpuFamily::CPU_X86,
114113
"x86_64" => CpuFamily::CPU_X86_64,
114+
"arm" | "aarch64" if crate::config::OS == "windows" => CpuFamily::CPU_X86_64,
115+
"arm" | "aarch64" => CpuFamily::CPU_ARM,
115116
_ => CpuFamily::CPU_UNKNOWN,
116117
};
117118

0 commit comments

Comments
 (0)