For a CC2541 based ble peripheral we have updated the BLE stack from 1.4.0 to 1.4.2.2. To ease the update process for the end user, we have decided to retain the bonding information by setting the OAD_KEEP_NV_PAGES compiler directive as described in the SBL wiki.
While this configuration has worked with all tested phones without any problems, we face problems when trying to connect with Sony Xperia after Update to Android 7.0. A connection is not possible any more.
A little analysis shows, that if we completely erase the flash and reprogram the chip (this means that the SNV area gets reinitialized by the stack), everything works fine.
We have the impression that there are invalid or undefined SNV items for the new stack (that get utilized when connecting with Xperia/Android 7.0).
Please note, we are talking about the SNV items reserved for the stack only (SNV ids <= BLE_NVID_GATT_CFG_END).
Can the stack version 1.4.2.2 work proprely with a booted SNV area of stack version 1.4.0 under all conditions? Is the full compatibility given?