You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gaganpreet kaur f00409e882 Fix for multiple com.android.bluetooth crash issues. 1 year ago
audio_a2dp_hw Add more Hearing Aid Profile logs 2 years ago
audio_bluetooth_hw Refine the log messages of audio_bluetooth_hal 1 year ago
audio_hal_interface Make sure the Hearing Aid source is ready before resuming or suspending calls 1 year ago
audio_hearing_aid_hw Suppress implicit-fallthrough warnings. 2 years ago
binder GAP: Reset bondingInitiatedLocally flag(3/3) 4 months ago
bta Fix for multiple com.android.bluetooth crash issues. 3 months ago
btcore Use memcpy instead of casting to convert device_class to int 1 year ago
btif Bluetooth: Enable Hybrid Audio from stack 4 months ago
build Run code coverage only on host target 1 year ago
common Revert "Preserve x18 while calling aptX encoder libraries." 1 year ago
conf Convert Android.mk file to Android.bp 1 year ago
device Bluetooth: Read BLE vendor capability to proceed on Secure conn 7 months ago
doc Remove code related to Health Device Profile and MCAP Protocol 1 year ago
embdrv Linux build fix 2 years ago
gd packet: Add Packet classes and tests 1 year ago
hci Android 10.0.0 release 34 6 months ago
include Bluetooth: Enable Hybrid Audio from stack 4 months ago
internal_include Android 10.0.0 Release 38 (QQ3A.200605.002) 5 months ago
linux_include/log Fix errors around logging when compiling on Linux 2 years ago
main Merge "Add stack side interface for Bluetooth audio HAL V2" am: 9ac498e5f3 am: 03b104281d 1 year ago
osi Revert "Revert "DO NOT MERGE: osi: Offload mutex pointer to local scope"" 1 year ago
packet Validate all AVRCP packets before use to prevent out of bounds reads. 1 year ago
profile Make sure only valid packet fields are accessed in VendorPacketHandler 10 months ago
proto Multi-A2DP: Fix timing and codec measurement in metrics 2 years ago
service Bluetooth: Enable Hybrid Audio from stack 4 months ago
stack Fix for multiple com.android.bluetooth crash issues. 3 months ago
test RootCanal: Set the timer period to 1 second 1 year ago
tools Hearing Aid Dump Audio Tool: Add No Start Cmd feature 1 year ago
types Add a ClassOfDevice type 1 year ago
udrv Check ch_id in UIPC_Read before using it 1 year ago
utils Revert "libprocessgroup users use libcutils" 1 year ago
vendor_libs RootCanal: Make beacons less verbose 1 year ago
vnd Make copyright headers consistent with Google template; remove "(C)" 3 years ago
.clang-format Only use the new format in gd/ 1 year ago
.gitignore gn-build: Add tinyxml2 as a secondary source 5 years ago
.gn Make copyright headers consistent with Google template; remove "(C)" 3 years ago
Android.bp Copy reactor classes to new directory 1 year ago
AndroidTestTemplate.xml Test: Save SSR dump after test 2 years ago
BUILD.gn Remove code related to Health Device Profile and MCAP Protocol 1 year ago
CleanSpec.mk Make copyright headers consistent with Google template; remove "(C)" 3 years ago
EventLogTags.logtags Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event 4 years ago
MODULE_LICENSE_APACHE2 Add NOTICE and MODULE_LICENSE files 5 years ago
NOTICE Add NOTICE and MODULE_LICENSE files 5 years ago
OWNERS Update owners 1 year ago
PREUPLOAD.cfg Upload hook that guides people towards AOSP 2 years ago
README.md Move Bluetooth headers to system/bt (1/3) 3 years ago
TEST_MAPPING DO NOT MERGE Fix potential overflow in btif_rc 8 months ago

README.md

Fluoride Bluetooth stack

Building and running on AOSP

Just build AOSP - Fluoride is there by default.

Building and running on Linux

Instructions for Ubuntu, tested on 14.04 with Clang 3.5.0 and 16.10 with Clang 3.8.0

Download source

mkdir ~/fluoride
cd ~/fluoride
git clone https://android.googlesource.com/platform/system/bt

Install dependencies (require sudo access):

cd ~/fluoride/bt
build/install_deps.sh

Then fetch third party dependencies:

cd ~/fluoride/bt
mkdir third_party
cd third_party
git clone https://github.com/google/googletest.git
git clone https://android.googlesource.com/platform/external/aac
git clone https://android.googlesource.com/platform/external/libchrome
git clone https://android.googlesource.com/platform/external/libldac
git clone https://android.googlesource.com/platform/external/modp_b64
git clone https://android.googlesource.com/platform/external/tinyxml2

And third party dependencies of third party dependencies:

cd fluoride/bt/third_party/libchrome/base/third_party
mkdir valgrind
cd valgrind
curl https://chromium.googlesource.com/chromium/src/base/+/master/third_party/valgrind/valgrind.h?format=TEXT | base64 -d > valgrind.h
curl https://chromium.googlesource.com/chromium/src/base/+/master/third_party/valgrind/memcheck.h?format=TEXT | base64 -d > memcheck.h

NOTE: If system/bt is checked out under AOSP, then create symbolic links instead of downloading sources

cd system/bt
mkdir third_party
cd third_party
ln -s ../../../external/aac aac
ln -s ../../../external/libchrome libchrome
ln -s ../../../external/libldac libldac
ln -s ../../../external/modp_b64 modp_b64
ln -s ../../../external/tinyxml2 tinyxml2
ln -s ../../../external/googletest googletest

Generate your build files

cd ~/fluoride/bt
gn gen out/Default

Build

cd ~/fluoride/bt
ninja -C out/Default all

This will build all targets (the shared library, executables, tests, etc) and put them in out/Default. To build an individual target, replace “all” with the target of your choice, e.g. ninja -C out/Default net_test_osi.

Run

cd ~/fluoride/bt/out/Default
LD_LIBRARY_PATH=./ ./bluetoothtbd -create-ipc-socket=fluoride

Eclipse IDE Support

  1. Follows the Chromium project Eclipse Setup Instructions until “Optional: Building inside Eclipse” section (don’t do that section, we will set it up differently)

  2. Generate Eclipse settings:

  cd system/bt
  gn gen --ide=eclipse out/Default
  1. In Eclipse, do File->Import->C/C++->C/C++ Project Settings, choose the XML location under system/bt/out/Default

  2. Right click on the project. Go to Preferences->C/C++ Build->Builder Settings. Uncheck “Use default build command”, but instead using “ninja -C out/Default”

  3. Goto Behaviour tab, change clean command to “-t clean”