Coder Social home page Coder Social logo

bose-connect-app-linux's Introduction

Bose® Connect App for Linux

--- Not Official App ---

Based on Denton-L project, looks like it is not maintained. I created a copy to have an active repository. This project keeps the original license GPL-3.0.

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 to give the device Linux support.

Usage

Usage: bose-connect-app-linux [options] <address>
  # address: The Bluetooth address of the Bose's device.

  -h, --help
    Print the help message.
  -i, --info
    Print all the device information.
  -d, --device-status
    Print the device status information. This includes its name, language,
    voice-prompts, auto-off and noise cancelling settings.
  -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
  --device-id
    Print the device id followed by the index revision.
  -n <name>, --name=<name>
    Change the name of the device.
  -o <minutes>, --auto-off=<minutes>
    Change the auto-off time.
    minutes: never, 5, 20, 40, 60, 180
  -c <level>, --noise-cancelling=<level>
    Change the noise cancelling level.
    level: high, low, off
  -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
  -p <status>, --pairing=<status>
    Change whether the device is pairing.
    status: on, off
  -e, --self-voice=<level>
    Change the self voice level.
    level: high, medium, low, off
  --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.

Build and Installation

The executable produced by the build will be ./src/build/bose-connect-app-linux and the installation will be /usr/local/bin/bose-connect-app-linux.

Dependencies

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

Docker

Follow the next steps:

# Set up the host's user ID and group.
echo "USER_ID=$(id -u "${USER}")" >./src/.env-user
echo "GROUP_ID=$(id -g "${USER}")" >>./src/.env-user

# Clean previous docker composes.
docker-compose \
  --project-directory ./src \
  --env-file ./src/.env-user \
  down

# Start the docker compose.
docker-compose \
  --project-directory ./src \
  --env-file ./src/.env-user \
  up \
  --detach \
  --build

# Build the application.
docker exec \
  --user $(id -u "${USER}") \
  --interactive \
  --tty \
  bose-connect-app-linux \
  /root/bose-connect-app-linux/script/build-prod.bash

# Enjoy.
./src/build/bose-connect-app-linux

Note: I created this in Arch Linux. It should be crash in Ubuntu because the library of bluetooth is different. If it fails, please create an issue, and some fixes will come soon.

Local

The local build require the installation of the follow packages: gcc, make, cmake, pkgconf, and (bluez-libs or libbluetooth-dev).

# Execute the Bash script.
./src/script/build-prod.bash

# Enjoy.
./src/build/bose-connect-app-linux

Install

Run ./src/script/install-prod.bash to install the application. It will place in /usr/local/bin/bose-connect-app-linux. The PREFIX and DESTDIR variables are assignable and have the traditional meaning. For more information reefer to the official web site of CMake.

Uninstall

Run the script ./src/script/uninstall.bash.

Contribute

Check the file CONTRIBUTING.md for more information. It includes the instructions for build with special configuration for development.

To-Do's List

Visit the document with all the checkpoints in TODO.md.

Development Notes

For more information about the details of how use the firmwares to found functionality, please review the file DEVELOPMENT.md.

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.

bose-connect-app-linux's People

Contributors

airvzxf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bose-connect-app-linux's Issues

How do I use this?

I'm not using Bluetooth from the CLI very often... Well, I've never done it TBH.

How do I find addresses? And how do I connect my Bose headset using your software?

Party Mode

Is there a way to use the "party mode" to pair 2 bose device? (in my case 2 S1 pro)

Installing on Fedora

Hi, do you know how to install your project on Fedora? I can't connect my Bose QuietComport headset with my laptop and I hope your project solves this issue. Unfortunately I have no experience with linux and therefore I can't figure it out on how to install your project on my newly setup Fedora notebook.

Cheers!

Update install documentation/make process

Hey there,

I don't know much about programing in C or how make works and am using this as an opportunity to learn as I really want to use all the features of my sport open earbuds. Forgive me if anything I am about to write comes from a misunderstanding.

It looks like you more or less copied the installation instructions from the original based-connect project, however, while these instructions worked for that project, they do not see to work for this one.

The directory structure of this project is quite different and I see no Makefile. The instructions did not work for me, however, I was able to create an executable by blindly fooling around with cmake. It is not installed as I have to run it as an executable directly from the project directory.

I'm unsure if maybe you've worked on this through an IDE and haven't been checking the CLI side of things or if I'm totally misunderstanding something, but I imagine you'd want to update either the documentation or the make process. I'm going to try to learn more about this stuff so I can see how I might can help in the future.

Quick aside: I'll be testing my open-ear sports earbuds with this when I get the chance and confirm whether it is working with them or not.

Pairing mode doesn't work on QC35 II

Hi, I can't get pairing mode working using "-p on" or "--pairing=on". All the other options are working though.

I have the QC35 II firmware 4.8.1.

Thanks.

Edit: just noticed when trying to set pairing mode it returns the message "Invalid pairing argument: on"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.