Case study
Sony Headphones Client: a desktop client for Sony’s headset control protocol
Recreates part of Sony’s mobile-only Headphones app as a Windows, Linux and macOS desktop client that changes noise-cancelling, ambient-sound and virtual-sound settings over a Bluetooth RFCOMM connection to a paired headset. The author reports reverse engineering the phone app to define its control protocol, and the code rebuilds its message framing, with start and end markers, byte escaping, sequence numbers, a sum checksum and acknowledgements, together with the two set-parameter commands the client sends. Full support is reported for few models, mainly the WH-1000XM3, and the project is archived.
Requirements & limits
- The reviewed master commit of 2025-07-19 is ten commits after the v1.3.2 release of 2023-04-26, adding build notes, a GCC include fix and the archival notice; CMakeLists.txt still embeds version 1.3.1. The repository is archived: the README says the app keeps working for the devices it supports and points to untested forks for others. Implemented controls are ambient sound with focus on voice, disabling noise cancelling, and the Virtual Sound VPT and sound-position presets; reading battery or current settings from the headset and the equalizer were never done, so the client only sends settings.
- No Sony software or files are needed or included; the client connects over RFCOMM to the headset’s control service UUID. The README reports the WH-1000XM3 and MDR-XB950BT as fully working and the WH-1000XM4 as partial, with other models in a user report issue, and the serializer caps ambient-sound levels at the WH-1000XM3’s 19 steps. The README says the app was reverse engineered for interoperability and that only some enums and data are in the code, the rest to be obtained statically or dynamically, linking a comment on sniffing messages; no decompiled app code, captures or method notes are in the repository.
- Releases provide prebuilt Windows x64, Linux x64 and macOS builds, and the Windows build needs the Microsoft VC++ Redistributable. Windows and Linux builds use CMake, a C++20 compiler and the Dear ImGui submodule, with Visual Studio 2022 and the Windows SDK on Windows and BlueZ, GLEW, GLFW, D-Bus and OpenGL development packages on Linux; macOS builds use the bundled Xcode project.
- CI only builds the Linux and Windows clients with CMake and the macOS app with xcodebuild and uploads them; there are no protocol tests, and headset compatibility is user-reported. This collection reviewed source and documentation without building the client or connecting to a headset.
- MIT per LICENSE; the bundled Cascadia Code font is under the SIL Open Font License, and Dear ImGui keeps its own license. The README states the program is not affiliated with Sony, which keeps its rights in the app and headsets. The reviewed sources establish no AI or REA use.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- App · Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/Constants.h GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/CommandSerializer.cpp GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/BluetoothWrapper.cpp GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/Headphones.cpp GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/CMakeLists.txt GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- .gitmodules GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- .github/workflows/cmake.yml GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- .github/workflows/xcodebuild.yml GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- Client/Fonts/FontLicense.txt GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- LICENSE GitHub · Plutoberth/SonyHeadphonesClient · Revision 5620e8e
- https://github.com/Plutoberth/SonyHeadphonesClient/releases/tag/v1.3.2
More in Apps
- JADX-AI-MCP · Integration
- apktool-mcp-server · Integration
- frida-mcp (yfe404) · Integration
- Super Trouper · Integration
- Frida · Tool
- JADX · Tool