Licenses
Table of contents
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:
- 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.