bt_le_ext_adv_update_param() cannot change BDADDR
BDADDR does not change even if bt_le_adv_param.id is changed in bt_le_ext_adv_update_param().
I checked the source code.(I think you are wrong.)
------------------------------------------------------------------------------
zephyr/subsys/bluetooth/host/adv.c
int bt_le_ext_adv_update_param()
...
le_ext_adv_param_set()
...
////////////////////////////////////
It looks like are setting BDADDR
////////////////////////////////////
err = bt_id_set_adv_own_addr(adv, param->options, dir_adv, &cp->own_addr_type);
...
/* Set which local identity address we're advertising with */
///////////////////////////////////////////////
BDADDR is not new addr but old(current) addr?
///////////////////////////////////////////////
id_addr = &bt_dev.id_addr[adv->id];
...
if (options & BT_LE_ADV_OPT_USE_IDENTITY) {
if (id_addr->type == BT_ADDR_LE_RANDOM) {
err = bt_id_set_adv_random_addr(adv, &id_addr->a);
}