From 1c636983ca404d521845a2434c9526a17f3aec5e Mon Sep 17 00:00:00 2001 From: amazingfate Date: Sun, 9 Jun 2024 02:55:13 +0800 Subject: [PATCH] xiaomi-elish: Generate bluetooth mac address from machine-id Since v6.9 default mac bluetooth address of QCA6390 "00:00:00:00:5a:ad" is no longer usable. So we have to generate a new one. --- config/boards/xiaomi-elish.conf | 5 +++++ .../bsp/generate-bt-mac-addr/bt-fixed-mac.service | 11 +++++++++++ packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh | 6 ++++++ 3 files changed, 22 insertions(+) create mode 100644 packages/bsp/generate-bt-mac-addr/bt-fixed-mac.service create mode 100644 packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh 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