Update (Jul 9, 2019):
Now, Raspbian Buster, released on 6/20/2019, has bluez 5.50 by default!
This post shows how to update BlueZ on Raspberry Pi from 5.43 (the default version comes with Raspbian Stretch) to 5.50 (released notes [1]). In this post, I assume that you already have a Raspberry Pi 3 B+ or Raspberry Pi Zero W running Raspbian Stretch.
Steps [2]
1. Check Current BlueZ Version
1-1. Before starting, let’s check the current BlueZ version.
bluetoothctl -v
In case of Raspbian Stretch, the BlueZ version should be 5.43.
$ bluetoothctl -v 5.43
2. Install Dependencies
2-1. Update the package list.
sudo apt-get update
2-1. Install the dependencies.
sudo apt-get install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev -y
3. Install BlueZ
3-1. Download BlueZ source code.
wget www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz
3-2. Uncompress the downloaded file.
tar xvf bluez-5.50.tar.xz && cd bluez-5.50
3-3. Configure.
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental
3-4. Compile the source code.
make -j4
3-5. Install.
sudo make install
3-6. Reboot Raspberry Pi 3.
sudo reboot
4. Verify Update[3] [4]
4-1. Verify the BlueZ version by issuing the command below.
bluetoothctl -v
The result should be like this:
$ bluetoothctl -v bluetoothctl: 5.50
References
[1] BlueZ Release Notes
[2] Installing Bluez 5.44 onto Raspbian? – Stack Exchange
[3] Bluetooth LE upgrade not working – Raspberry Pi Forum
[4] Why does bluetoothd show version 5.37 after installing Bluez 5.45? – Stack Exchange
Thanks, it worked to upgrade Debian Stretch because of bluetooth not working after sleep.