ну да у меня последовательность такая: проверяется кнопочная
комбинация на откат прошивки если комбинация совпала то проверяется целостность базовой прошивки, если целая то заливка и перезагрузка. При этом не забыть сделать невалидной прошивку обновления, а то откат на базовую тут же обновится.
если не откат то сравнивается CRC обновления и рабочей программы если отличаются проверяю целостность прошивки обновления, если целая то заливка и перезагрузка.
если CRC совпадают, то проверяю целостность рабочей программы. Если целостность нарушена, то обновление на резервную(она же обновление)