Did you remove the dongle and reinsert it after changing the address? That is what the message wants you to do.
On a CSR-4.0 dongle and Ubuntu 18.04, the btmgmt power off command works but the public-addr fails with status 0x0c (Not Supported) and the static-addr fails with 0x0d (Invalid Parameters) so you do need to compile and run bdaddr from bluez:
$ lsusb | fgrep -i bluetooth Bus 002 Device 064: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) $ hcitool dev Devices: hci0 00:1A:7D:DA:71:13 $ mkdir bdaddr $ cd bdaddr/ $ sudo apt-get source bluez [...] $ sudo apt-get build-dep bluez [...] $ ls bluez-5.48 bluez_5.48-0ubuntu3.4.dsc bluez_5.48-0ubuntu3.4.debian.tar.xz bluez_5.48.orig.tar.xz $ cd bluez-5.48 $ sudo ./configure --enable-experimental [...] $ sudo make [...] $ sudo tools/bdaddr | sudo tee -a bluetooth_original_address Manufacturer: Cambridge Silicon Radio (10) Device address: 00:1A:7D:DA:71:13 (cyber-blue(HK)Ltd) $ uuidgen -r 1aae3392-9f75-4008-ab06-34da97803271 $ sudo tools/bdaddr 01:1A:72:80:32:71 Manufacturer: Cambridge Silicon Radio (10) Device address: 00:1A:7D:DA:71:13 (cyber-blue(HK)Ltd) New BD address: 01:1A:72:80:32:71
Address changed - Reset device now $ #unplug addapter and plug back in $ tools/bdaddr Manufacturer: Cambridge Silicon Radio (10) Device address: 01:1A:72:80:32:71 $ hcitool dev Devices: hci0 01:1A:72:80:32:71 $ sudo install tools/bdaddr /usr/local/bin
Note that I only changed the last 6 digits. The first 6 digits identify the manufacturer and are useful to leave the same; but the program will change the first six if you ask it to. "uuidgen -r" is useful as a source of random digits.
For windows users, there is "Bluetooth MAC address changer for windows".
This guide has taken me the furthest so far, as it allowed me to install the currently 'hard-to-get' bdaddr tool. Unfortunately, it’s still not possible to change the address of the CSR 4.0 device. In the terminal, the message appears as if the address has been changed, but it actually remains the same. The same happens when I use hcitool cmd 0x3f 0x001 <MAC_ADDRESS> or btmgmt public-addr <MAC_ADDRESS>. Interestingly, the btmgmt method does allow me to change the address of my built-in Intel adapter, but that's not the goal I'm trying to achieve. Has anyone recently performed this operation and perhaps has some 'tips' to help move forward?