based-connect icon indicating copy to clipboard operation
based-connect copied to clipboard

A reverse-engineered Bose Connect imitation program for Linux.

based-connect

If you own a Bose device, you'll know that Bose Connect is not available on Linux. This program attempts to reverse engineer that app in order to give the device Linux support.

Usage

./based-connect [options]

address: The Bluetooth address of the device.

Options: -h, --help Print the help message.

-n <name>, --name=<name>
	Change the name of the device.

-c <level>, --noise-cancelling=<level>
	Change the noise cancelling level.
	level: high, low, off

-o <minutes>, --auto-off=<minutes>
	Change the auto-off time.
	minutes: never, 5, 20, 40, 60, 180

-l <language>, --prompt-language=<language>
	Change the voice-prompt language.
	language: en, fr, it, de, es, pt, zh, ko, nl, ja, sv

-v <switch>, --voice-prompts=<switch>
	Change whether voice-prompts are on or off.
	switch: on, off

-d, --device-status
	Print the device status information. This includes its name, language,
	voice-prompts, auto-off and noise cancelling settings.

-p <status>, --pairing=<status>
	Change whether the device is pairing.
	status: on, off

-f, --firmware-version
	Print the firmware version on the device.

-s, --serial-number
	Print the serial number of the device.

-b, --battery-level
	Print the battery level of the device as a percent.

-a, --paired-devices
	Print the devices currently connected to the device.
	!: indicates the current device
	*: indicates other connected devices

--connect-device=<address>
	Attempt to connect to the device at address.

--disconnect-device=<address>
	Disconnect the device at address.

--remove-device=<address>
	Remove the device at address from the pairing list.

--device-id
	Print the device id followed by the index revision.

Building

Simply run make -j to build the program. The executable produced will be called based-connect.

Installing

Run make install to install the program. The PREFIX and DESTDIR variables are assignable and have the traditional meaning.

Alternatively, if you run Arch Linux, you can download it from the AUR here:

https://aur.archlinux.org/packages/based-connect-git/

Dependencies

  • BlueZ
    • bluez-libs on Arch Linux
    • libbluetooth-dev on Debian and Ubuntu

Disclaimer

This has only been tested on Bose QuietComfort 35's with firmware 1.3.2, 1.2.9, 1.06 and SoundLink II's with firmware 2.1.1. I cannot ensure that this program works on any other devices.

Todo

  • Implement "getters" for current headphone state
    • Current status of all setters currently implemented
    • Date of manufacturing
  • Get/set volume
  • Port to MacOS (and maybe Windows)
  • Firmware updates?

Firmware Details

See details.txt for partly reverse engineered but unimplemented (and unknown) details.