diff --git a/config/boards/xiaomi-elish.conf b/config/boards/xiaomi-elish.conf index 4dce9d4ca849..ab8e1e269363 100644 --- a/config/boards/xiaomi-elish.conf +++ b/config/boards/xiaomi-elish.conf @@ -37,6 +37,10 @@ function post_family_tweaks_bsp__xiaomi-elish_firmware() { install -Dm655 $SRC/packages/bsp/usb-gadget-network/remove-usbgadget-network.sh $destination/usr/local/bin/ install -Dm644 $SRC/packages/bsp/usb-gadget-network/usbgadget-rndis.service $destination/usr/lib/systemd/system/ + # Bluetooth MAC addr setup service + install -Dm655 $SRC/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh $destination/usr/local/bin/ + install -Dm644 $SRC/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.service $destination/usr/lib/systemd/system/ + # Kernel postinst script to update abl boot partition install -Dm655 $SRC/packages/bsp/xiaomi-elish/zz-update-abl-kernel $destination/etc/kernel/postinst.d/ @@ -71,6 +75,7 @@ function post_family_tweaks__xiaomi-elish_enable_services() { chroot_sdcard systemctl enable usbgadget-rndis.service chroot_sdcard systemctl enable pd-mapper.service chroot_sdcard systemctl enable tqftpserv.service + chroot_sdcard systemctl enable bt-fixed-mac.service return 0 } diff --git a/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.service b/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.service new file mode 100644 index 000000000000..8a9f7b08a2d1 --- /dev/null +++ b/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.service @@ -0,0 +1,11 @@ +[Unit] +Description=Bluetooth Fixed Mac Address +After=bluetooth.service systemd-machine-id-commit.service +Wants=bluetooth.service +[Service] +Type=oneshot +RemainAfterExit=yes +SyslogIdentifier=bt-fixed-mac +ExecStart=/usr/local/bin/bt-fixed-mac.sh +[Install] +WantedBy=bluetooth.target diff --git a/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh b/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh new file mode 100644 index 000000000000..03d9d51787e0 --- /dev/null +++ b/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +mac="$(echo $(cat /etc/machine-id; echo bluetooth)| sha256sum -)" +bt_mac=$(echo "42:${mac:0:2}:${mac:4:2}:${mac:8:2}:${mac:12:2}:${mac:16:2}") +echo $bt_mac +/usr/bin/bluetoothctl mgmt.public-addr $bt_mac