Licenses

Table of contents

  1. Project License
  2. Third-Party Libraries
  3. Important Notes
    1. BTstack License (non-commercial)
    2. LDAC Certification
    3. LHDC Trademark and Certification
    4. libopenaptx Version
    5. aptX Patent Notice
    6. fdk-aac License and AAC Patent Notice
    7. Rust Crates and MPL-2.0
    8. Developer Tool a2dpwb_decode
    9. Test Environment tools/emu and tools/linux_sink
    10. Bluetooth Qualification

Project License

A2DP Windows Bridge (A2DPWB) is dual-licensed under the Apache License 2.0 or the MIT License, at your option (SPDX Apache-2.0 OR MIT). See LICENSE, LICENSE-APACHE and LICENSE-MIT.

The A2DPWB source code is dual-licensed under Apache-2.0 or MIT. The distributed a2dpwb-core.exe includes BTstack, and A2DPWB is distributed only as the set of its programs, so the release may only be used and redistributed for personal, non-commercial purposes.

Third-Party Libraries

Component Pinned version License Usage
BTstack v1.8.1-6-g5bc5cbdbe BTstack License (BSD-3-Clause-style with a non-commercial clause) / Commercial User-mode Bluetooth stack
rijndael (bundled in BTstack) as in BTstack Public domain AES (used by BTstack)
tinydir (bundled in BTstack) as in BTstack BSD-2-Clause Directory listing in BTstack’s Broadcom chipset driver
liblc3 (lc3-google, bundled in BTstack) as in BTstack Apache-2.0 LC3 encoder (LE Audio, experimental)
micro-ecc (bundled in BTstack) as in BTstack BSD-2-Clause P-256 for LE Secure Connections pairing (LE Audio, experimental)
Bluedroid SBC encoder, ported to Rust ported from BTstack’s copy Apache-2.0 SBC encoder
libldac (AOSP) android-15.0.0_r36-4-geeee1a3 Apache-2.0 LDAC encoder
libopenaptx 0.2.0 LGPL-2.1+ aptX / aptX HD / aptX LL encoder
fdk-aac v2.0.3-158-gd8e6b1a FDK AAC License AAC-LC encoder
LHDC-V5-Encoder (C port of the AOSP encoder) commit 3f9d198 Apache-2.0 (FFT: BSD-3-Clause, KISS FFT) LHDC V5 encoder
libopus 1.5.2 BSD-3-Clause Opus encoder
Rust crates: Tauri 2.12, tokio, serde, windows, nusb, wasapi, tray-icon, … Cargo.lock Mostly Apache-2.0 / MIT; also BSD, ISC, Zlib, Unicode-3.0, CDLA-Permissive-2.0 and MPL-2.0 Window, tray, IPC, USB, audio, updates
SolidJS 1.9.17 MIT UI library of the window
@tauri-apps/api 2.12.4 Apache-2.0 OR MIT JavaScript side of Tauri
Fluent UI System Icons as copied into the UI MIT Icons

a2dpwb-core.exe contains BTstack and the codec libraries, a2dpwb.exe the window (Tauri, SolidJS, the icons), a2dpwb-driver.exe only Rust code. The window is rendered by the Microsoft Edge WebView2 Runtime, which A2DPWB does not ship (the installer runs Microsoft’s bootstrapper when it is missing).

For full license texts and compliance details, see THIRD_PARTY_LICENSES.md. The installer and the portable zip put the license texts in a licenses/ folder next to the programs (the Rust crates in licenses/rust-crates.txt, generated by cargo-about), with THIRD_PARTY_LICENSES.md and a SOURCE.txt listing the exact source commits. Realtek firmware and Zadig are not distributed with A2DPWB (links only).

Important Notes

BTstack License (non-commercial)

BTstack is not BSD-3-Clause and is not an OSI-approved open-source license. Its license (SPDX LicenseRef-BTstack) has the three BSD-3-Clause conditions plus a fourth clause:

  1. Any redistribution, use, or modification is done solely for personal benefit and not for any commercial purpose or for monetary gain.

Because a2dpwb-core.exe contains BTstack, this restriction applies to the distributed programs. Commercial use requires a commercial license from BlueKitchen GmbH (contact@bluekitchen-gmbh.com).

LDAC Certification

The libldac NOTICE states: “Taking the certification process is required to use LDAC in your products.” See sony.net/Products/LDAC/aosp. It has not been verified whether Sony’s certification process applies to a free, non-commercial application such as A2DPWB; A2DPWB has not been certified.

LHDC Trademark and Certification

LHDC is a codec of Savitech Corp., promoted by the Hi-Res Wireless Audio (HWA) alliance. The encoder A2DPWB uses is Apache-2.0 code derived from the one Google published in AOSP (Android 17), but Apache-2.0 grants no trademark rights, and products that advertise LHDC normally go through Savitech / HWA certification. A2DPWB has not been certified; the LHDC V5 support is a non-commercial interoperability feature.

libopenaptx Version

libopenaptx is pinned to 0.2.0, the last LGPL-2.1+ release. From 0.2.1 on it is licensed under GPL-3.0-or-later with additional restrictions, which is not compatible with the other libraries linked into A2DPWB. Releases up to v1.0.4 were mistakenly built with 0.2.1; please use v1.0.5 or later.

libopenaptx is statically linked into a2dpwb-core.exe. The installer and the zip ship the LGPL-2.1 text and THIRD_PARTY_LICENSES.md with the libopenaptx copyright, Settings > About A2DPWB links to the third-party licenses, and the complete corresponding source (for rebuilding/relinking with a modified libopenaptx) is available from the repository at the release’s tagged commit with its submodules.

aptX Patent Notice

aptX (classic), aptX HD, aptX Low Latency and aptX Adaptive are trademarks of Qualcomm. According to its README, libopenaptx is an open-source aptX implementation “derived from ffmpeg 4.0 project”; it is used here for aptX, aptX HD and aptX Low Latency. aptX encoding may be covered by patents in some jurisdictions. A2DPWB does not include an aptX Adaptive encoder.

fdk-aac License and AAC Patent Notice

The fdk-aac license requires that the complete license text accompany binary redistributions and that the complete source code of the FDK AAC Codec (and any modifications) be made available free of charge to recipients of the binary. It also grants no patent license: AAC may be covered by patents (the NOTICE refers to Via Licensing), and obtaining any required AAC patent license is the user’s responsibility.

Rust Crates and MPL-2.0

The licenses of the Rust crates are checked when a release is built: cargo-about fails on any license that is not in the accepted list (about.toml, the same as deny.toml). A few crates are under MPL-2.0 (cssparser, selectors, dtoa-short, option-ext); they are used unmodified, and their source is available from crates.io at the versions in Cargo.lock. See THIRD_PARTY_LICENSES.md §9.

Developer Tool a2dpwb_decode

a2dpwb_decode (see Usage) is built from source only and is not in the release. It links the Bluedroid SBC decoder (Apache-2.0), fdk-aac (FDK AAC License), libopenaptx 0.2.0 (LGPL-2.1+), libopus (BSD-3-Clause) and liblc3 (Apache-2.0, bundled in BTstack) at the pinned versions above, and does not link BTstack or libldac. See THIRD_PARTY_LICENSES.md §14.

Test Environment tools/emu and tools/linux_sink

tools/emu (see Building) and the measuring receiver tools/linux_sink (see Usage) use Bumble 0.0.234 (Apache-2.0) and its dependencies, downloaded into local, git-ignored environments at pinned versions. None of it is linked into or shipped with A2DPWB. See THIRD_PARTY_LICENSES.md §15 for the package list and licenses.

Bluetooth Qualification

Commercial Bluetooth products must undergo the Bluetooth Qualification Process managed by the Bluetooth SIG.