'Does Android 4.2.2 support usb bluetooth dongle?

I can use blueZ hciconfig to find the usb bluetooth device 'hci0'. But I can't enable the bluetooth on Android 4.2.2. It seems android use a new bluetooth stack since version 4.2 . So it doesn't rely on the BlueZ statck now. This is my BoardConfig:

BOARD_HAVE_BLUETOOTH := true  
BOARD_HAVE_BLUETOOTH_BCM := true

And I enabled the HCI USB drvier in the kernel.

Does any one have the idea about how to support usb bluetooth dongle on Android 4.2.2 ? The issue stuck me two weeks. And I can't get more information from the internet.

Thanks very much !



Solution 1:[1]

It is my understanding that Android dropped BlueZ and it now relies on bluedroid by broadcom, I don't know how but what I would do is look for the drivers for that bt dongle online and build the system with:

PRODUCT_COPY_FILES += drivers

on your AndroidProducs.mk file

Solution 2:[2]

CyanogenMod and Android-X86 contain patches to support USB HCI like this: http://review.cyanogenmod.org/#/c/45537/

http://review.cyanogenmod.org/#/c/45538/

http://git.android-x86.org/?p=platform/external/bluetooth/bluedroid.git;a=commit;h=471bdeac2ffe054221b3eab72e3b87523c0aa97c

To enable this support in board look at android-x86 example, for BoardConfig

# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
BLUETOOTH_HCI_USE_USB := true
BOARD_HAVE_BLUETOOTH_BCM := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/generic/x86/bluetooth

and for buildcfg

#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H 
#define BTM_DEF_LOCAL_NAME "Android-x86"
// At present either USB or UART is supported
#define BLUETOOTH_HCI_USE_USB          TRUE
// Bluetooth Low Power Mode is supported on BT4.0
#define HCILP_INCLUDED                 FALSE
#endif

Also your kernel need UHID support.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 aehs29
Solution 2