Hi. I am working on firmware for nRF9160 based IoT device
Already found a way how I can switch between two different images in flash from the current firmware and it's super useful
Firmware image that laying on backend cloud server includes logic to check that main features like server connection and peripherals working well to make a decision to keep that version or roll back to the previous one. One more secure mechanism implemented using MCU boot it's if firmware not confirming itself device switching back to known firmware stored in a flash that should work well. All those methods providing a good way of reliability, so it really hard to brick the device in process of OTA.
But what if somehow binary with for example blink code that confirming to use this FW as the main one appears on the server
So at the end device after such update would run just "blink" code without any options to roll back to an older image
I understand that this is a very unlikely case, but if it's happening in production all user devices would be bricked as the result of for example a hacker attack on the server and replacing image to as in my example "self-confirming blink" so the device should be shipped back for restoration e.t.c
I wonder if there is any way how we could roll back the device to the old image without a J-link connection in situations like described upper to make it usable for production cases
Regards, Bogdan