diff --git a/bootloader/hos/sept.c b/bootloader/hos/sept.c index f37019e..5f2e33e 100644 --- a/bootloader/hos/sept.c +++ b/bootloader/hos/sept.c @@ -202,19 +202,22 @@ int reboot_to_sept(const u8 *tsec_fw, u32 kb, ini_sec_t *cfg_sec) memcpy(tmp_cfg, &b_cfg, sizeof(boot_cfg_t)); f_lseek(&fp, PATCHED_RELOC_SZ); f_write(&fp, tmp_cfg, sizeof(boot_cfg_t), NULL); - f_close(&fp); update_sept_payload = false; } + + f_close(&fp); } else + { + f_close(&fp); f_rename("sept/payload.bin", "sept/payload.bak"); // Backup foreign payload. - - f_close(&fp); + } } if (update_sept_payload) { volatile reloc_meta_t *reloc = (reloc_meta_t *)(IPL_LOAD_ADDR + RELOC_META_OFF); + f_mkdir("sept"); f_open(&fp, "sept/payload.bin", FA_WRITE | FA_CREATE_ALWAYS); f_write(&fp, (u8 *)reloc->start, reloc->end - reloc->start, NULL); f_close(&fp); diff --git a/nyx/nyx_gui/hos/sept.c b/nyx/nyx_gui/hos/sept.c index 907ea8f..0acd981 100644 --- a/nyx/nyx_gui/hos/sept.c +++ b/nyx/nyx_gui/hos/sept.c @@ -182,19 +182,22 @@ int reboot_to_sept(const u8 *tsec_fw, u32 kb) memcpy(tmp_cfg, (boot_cfg_t *)b_cfg, sizeof(boot_cfg_t)); f_lseek(&fp, PATCHED_RELOC_SZ); f_write(&fp, tmp_cfg, sizeof(boot_cfg_t), NULL); - f_close(&fp); update_sept_payload = false; } + + f_close(&fp); } else + { + f_close(&fp); f_rename("sept/payload.bin", "sept/payload.bak"); // Backup foreign payload. - - f_close(&fp); + } } if (update_sept_payload) { volatile reloc_meta_t *reloc = (reloc_meta_t *)(nyx_str->hekate + RELOC_META_OFF); + f_mkdir("sept"); f_open(&fp, "sept/payload.bin", FA_WRITE | FA_CREATE_ALWAYS); f_write(&fp, (u8 *)nyx_str->hekate, reloc->end - reloc->start, NULL); f_close(&fp);