Return-Path: Date: Tue, 29 Oct 2013 15:07:59 +0200 From: Andrei Emeltchenko To: Szymon Janc Cc: linux-bluetooth@vger.kernel.org Subject: Re: [PATCH v2] android: Add README file with instructions Message-ID: <20131029130758.GG27517@aemeltch-MOBL1> References: <1383051302-9754-1-git-send-email-szymon.janc@tieto.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1383051302-9754-1-git-send-email-szymon.janc@tieto.com> Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi Szymon, On Tue, Oct 29, 2013 at 01:55:02PM +0100, Szymon Janc wrote: > This file cotains help on how BlueZ for Android should be build, run > and test. Some hints and examples on how BlueZ can be intergrated into > Android are present as well. > --- > V2: > - rebased against master > - clarify requirements on Android init system > > android/Makefile.am | 2 +- > android/README | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 88 insertions(+), 1 deletion(-) > create mode 100644 android/README > > diff --git a/android/Makefile.am b/android/Makefile.am > index 22002be..5690e93 100644 > --- a/android/Makefile.am > +++ b/android/Makefile.am > @@ -96,7 +96,7 @@ EXTRA_DIST += android/client/terminal.c \ > android/client/history.h \ > android/client/terminal.h > > -EXTRA_DIST += android/hal-ipc-api.txt > +EXTRA_DIST += android/hal-ipc-api.txt android/README > > EXTRA_DIST += android/hardware/bluetooth.h \ > android/hardware/bt_av.h \ > diff --git a/android/README b/android/README > new file mode 100644 > index 0000000..ada2c2f > --- /dev/null > +++ b/android/README > @@ -0,0 +1,87 @@ > +BlueZ for Android > +***************** > + > +Since Android 4.2 there exists a well standardized HAL interface that the > +Bluetooth stack is expected to provide and which enables the easy replacement > +of the stack of choice on Android. Android BlueZ is intended as a drop-in > +replacement to Android provided Bluetooth stack. > + > +More details about BlueZ for Android architecture and components can be found > +in android/hal-apc-api.txt file. > + > +=============================== > +Building and running on Android > +=============================== > + > +Build requirements > +================== > + > +- GLib - Android 4.2 or later don't provide GLib and one must provide it in > +'external/bluetooth/glib' folder of Android tree. Sample Android GLib port > +is available at https://code.google.com/p/android-bluez.glib/ > + > +- Bionic support - BlueZ requires signalfd and timerfd APIs to be provided > +by libc library. Currently only 'master' branch available at > +https://android.googlesource.com/platform/bionic provides all required > +functionality and running BlueZ on older branch requires backporting missing > +features. Sample Bionic for Android on Intel Architecture (Android-IA) with all > +required features backported is available at > +https://code.google.com/p/android-bluez.bionic/ > + > +Runtime requirements > +==================== > + > +BlueZ HAL library requires 'bluetoothd' service to be available on Android > +system. This can be done by defining service in init.rc file of targeted board: > + > +service bluetoothd logwrapper /system/bin/bluetoothd logwrapper cannot be found without the full path: service bluetoothd /system/bin/logwrapper /system/bin/bluetoothd > + class main > + group bluetooth net_bt_stack net_bt_stack seems to be bluedroid specific, currently we use group bluetooth net_admin otherwise looks good Best regards Andrei Emeltchenko > + disabled > + oneshot > + > +It is required that bluetooth user could start and stop bluetoothd service by > +setting 'ctl.start' or 'ctl.stop' property. > + > +Required Android init system modifications can be found at > +https://code.google.com/p/android-bluez.system-core/ > + > +Downloading and building > +======================== > + > +Building for Android requires full Android AOSP source tree. Sample Android-IA > +tree with all required components present is available at > +http://code.google.com/p/android-bluez/ > + > +Downloading: > +repo init -u https://code.google.com/p/android-bluez.manifest/ -m topics/bluez > +repo sync > + > +Build for Intel ultrabook: > +'source build/envsetup.sh' > +'lunch core_mesa-eng' > +'make allimages -j8' > + > +After full build is done it is possible to rebuild only BlueZ: > +'cd external/bluetooth/bluez/android/' > +'mm' (or 'mm -B' to force rebuilding of all files) > +'adb sync' to update target device. > + > +============================= > +Building and running on Linux > +============================= > +It is possible to build and test BlueZ for Android daemon on Linux (eg. PC). > +Simply follow instructions available at README file in BlueZ top directory. > +Android daemon binary is located at android/bluetoothd. > + > +======= > +Testing > +======= > + > +BT HAL test tools located in android/haltest is provided for HAL level testing > +of both Android daemon and HAL library. Start it and type 'adapter init' in > +prompt to initialize HAL library. On Android required bluetoothd service will > +be started automatically. On Linux it is required to start android/bluetoothd > +manually before init command timeout. To deinitialize HAL library and stop > +daemon type 'adapter cleanup'. Type 'help' for more information. Tab completion > +is also supported. > \ No newline at end of file > -- > 1.8.4.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html