I am using S132V3 on NRF52832 device. In my application we need to set a static, non-rotating, private resolvable address. I can't get into why that is here. In theory this should be easy, just compute a valid address and call sd_ble_gap_addr_set(), however that function checks the MSB's for the type and won't accept private resolvable as an address type. So no dice there.
Then I turned MWU off, and located the MAC address in softdevice memory and swapped it out with the right one. Something like (volatile uint8_t)0x200001be&=0x7F; plus a couple more addresses.
Strangely enough, I got this to work in peripheral mode, I can bond to it from a phone. However I need simultaneous central/peripheral and things are a bit hairy. Certain calls to SD seem to require that high bit to be set or they crash, and other calls need the MAC address "restored" or bonds don't work.
I've yet to get everything working 100% in central. Is there some other way to work around this?