← back to projects

003 · Personal Project

Bose Desktop Control App (Active)

Building an open-source desktop alternative to the Bose Music app by reverse-engineering the proprietary Bose Mobile Application Protocol (BMAP).

Bose Desktop Control App (Active)

About

In this project, I am building an open-source desktop alternative to the Bose Music app by reverse-engineering the proprietary Bose Mobile Application Protocol (BMAP). The goal is to provide users with a desktop application that allows them to control their Bose devices without relying on the official mobile app.

Why? I sometimes find myself where I want to disconnect, reconnect, change the EQ, or other settings when not near my phone. I also want to be able to control my Bose devices from my computer, which is where I spend most of my time. The official Bose Music app is only available on mobile devices, so I decided to create a desktop alternative.

To do this, I had to reverse engineer the BMAP protocol. This was done using a mix of static analysis using JADX, and dynamic analysis using Frida. Although not released anywhere yet, the current implementaion is able to communicate with the device with manually crafted packets. Most of the packets have been reverse engineered and are generated currently using a Python script. The next step is to implement the cross platform implementation in Go, using build tags to support Windows (using Winsock API), and Linux (using BlueZ’s D-Bus API). The Go implementation will be able to send and receive packets, and will be the basis for the desktop application.

STACK

Python JavaScript Frida Reverse Engineering BMAP Go JADX

ORGANIZATION

Personal Project