From 52c506af9a283316f3f426498452801957adf3b9 Mon Sep 17 00:00:00 2001 From: CTCaer Date: Mon, 6 Apr 2020 05:36:09 +0300 Subject: [PATCH] tools: Force sparse verification on TUI Additionally, because the tool relies 100% on sd card, it will become a Nyx only. Remove the config also, as it will be moved to nyx configuration. --- bootloader/config/config.c | 59 --------------------------- bootloader/config/config.h | 2 - bootloader/frontend/fe_emmc_tools.c | 62 +++++++++++------------------ bootloader/main.c | 3 -- 4 files changed, 23 insertions(+), 103 deletions(-) diff --git a/bootloader/config/config.c b/bootloader/config/config.c index 9e6058d..23b516f 100644 --- a/bootloader/config/config.c +++ b/bootloader/config/config.c @@ -37,7 +37,6 @@ void set_default_configuration() h_cfg.autoboot = 0; h_cfg.autoboot_list = 0; h_cfg.bootwait = 3; - h_cfg.verification = 1; h_cfg.se_keygen_done = 0; h_cfg.sbar_time_keeping = 0; h_cfg.backlight = 100; @@ -97,9 +96,6 @@ int create_config_entry() f_puts("\nbootwait=", &fp); itoa(h_cfg.bootwait, lbuf, 10); f_puts(lbuf, &fp); - f_puts("\nverification=", &fp); - itoa(h_cfg.verification, lbuf, 10); - f_puts(lbuf, &fp); f_puts("\nbacklight=", &fp); itoa(h_cfg.backlight, lbuf, 10); f_puts(lbuf, &fp); @@ -451,61 +447,6 @@ void config_bootdelay() btn_wait(); } -void config_verification() -{ - gfx_clear_grey(0x1B); - gfx_con_setpos(0, 0); - - u32 vr_text_size = 64; - - ment_t *ments = (ment_t *)malloc(sizeof(ment_t) * 6); - u32 *vr_values = (u32 *)malloc(sizeof(u32) * 3); - char *vr_text = (char *)malloc(vr_text_size * 3); - - for (u32 j = 0; j < 3; j++) - { - vr_values[j] = j; - ments[j + 2].type = MENT_DATA; - ments[j + 2].data = &vr_values[j]; - } - - ments[0].type = MENT_BACK; - ments[0].caption = "Back"; - - ments[1].type = MENT_CHGLINE; - - strcpy(vr_text, " Disable (Fastest - Unsafe)"); - strcpy(vr_text + 64, " Sparse (Fast - Safe)"); - strcpy(vr_text + 128, " Full (Slow - Safe)"); - - for (u32 i = 0; i < 3; i++) - { - if (h_cfg.verification != i) - vr_text[vr_text_size * i] = ' '; - else - vr_text[vr_text_size * i] = '*'; - ments[2 + i].caption = vr_text + (i * vr_text_size); - } - - memset(&ments[5], 0, sizeof(ment_t)); - menu_t menu = {ments, "Backup & Restore verification", 0, 0}; - - u32 *temp_verification = (u32 *)tui_do_menu(&menu); - if (temp_verification != NULL) - { - h_cfg.verification = *(u32 *)temp_verification; - _save_config(); - } - - free(ments); - free(vr_values); - free(vr_text); - - if (temp_verification == NULL) - return; - btn_wait(); -} - void config_backlight() { gfx_clear_grey(0x1B); diff --git a/bootloader/config/config.h b/bootloader/config/config.h index a6fbc5c..0410a7e 100644 --- a/bootloader/config/config.h +++ b/bootloader/config/config.h @@ -25,7 +25,6 @@ typedef struct _hekate_config u32 autoboot; u32 autoboot_list; u32 bootwait; - u32 verification; u32 backlight; u32 autohosoff; u32 autonogc; @@ -45,7 +44,6 @@ void set_default_configuration(); int create_config_entry(); void config_autoboot(); void config_bootdelay(); -void config_verification(); void config_backlight(); void config_auto_hos_poweroff(); void config_nogc(); diff --git a/bootloader/frontend/fe_emmc_tools.c b/bootloader/frontend/fe_emmc_tools.c index bd32137..004ed06 100644 --- a/bootloader/frontend/fe_emmc_tools.c +++ b/bootloader/frontend/fe_emmc_tools.c @@ -78,7 +78,7 @@ static int _dump_emmc_verify(sdmmc_storage_t *storage, u32 lba_curr, char *outFi // Check every time or every 4. // Every 4 protects from fake sd, sector corruption and frequent I/O corruption. // Full provides all that, plus protection from extremely rare I/O corruption. - if ((h_cfg.verification >= 2) || !(sparseShouldVerify % 4)) + if (!(sparseShouldVerify % 4)) { if (!sdmmc_storage_read(storage, lba_curr, num, bufEm)) { @@ -307,15 +307,12 @@ static int _dump_emmc_part(char *sd_path, sdmmc_storage_t *storage, emmc_part_t memset(&fp, 0, sizeof(fp)); currPartIdx++; - if (h_cfg.verification) + // Verify part. + if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) { - // Verify part. - if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) - { - EPRINTF("\nPress any key and try again...\n"); + EPRINTF("\nPress any key and try again...\n"); - return 0; - } + return 0; } _update_filename(outFilename, sdPathLen, numSplitParts, currPartIdx); @@ -441,18 +438,15 @@ static int _dump_emmc_part(char *sd_path, sdmmc_storage_t *storage, emmc_part_t // Backup operation ended successfully. f_close(&fp); - if (h_cfg.verification) + // Verify last part or single file backup. + if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) { - // Verify last part or single file backup. - if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) - { - EPRINTF("\nPress any key and try again...\n"); + EPRINTF("\nPress any key and try again...\n"); - return 0; - } - else - tui_pbar(0, gfx_con.y, 100, 0xFF96FF00, 0xFF155500); + return 0; } + else + tui_pbar(0, gfx_con.y, 100, 0xFF96FF00, 0xFF155500); gfx_con.fntsz = 16; // Remove partial backup index file if no fatal errors occurred. @@ -580,10 +574,8 @@ static void _dump_emmc_selected(emmcPartType_t dumpType) timer = get_tmr_s() - timer; gfx_printf("Time taken: %dm %ds.\n", timer / 60, timer % 60); sdmmc_storage_end(&storage); - if (res && h_cfg.verification) + if (res) gfx_printf("\n%kFinished and verified!%k\nPress any key...\n", 0xFF96FF00, 0xFFCCCCCC); - else if (res) - gfx_printf("\nFinished! Press any key...\n"); out: sd_unmount(); @@ -713,15 +705,12 @@ static int _restore_emmc_part(char *sd_path, sdmmc_storage_t *storage, emmc_part memset(&fp, 0, sizeof(fp)); currPartIdx++; - if (h_cfg.verification) + // Verify part. + if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) { - // Verify part. - if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) - { - EPRINTF("\nPress any key and try again...\n"); + EPRINTF("\nPress any key and try again...\n"); - return 0; - } + return 0; } _update_filename(outFilename, sdPathLen, numSplitParts, currPartIdx); @@ -791,18 +780,15 @@ static int _restore_emmc_part(char *sd_path, sdmmc_storage_t *storage, emmc_part // Restore operation ended successfully. f_close(&fp); - if (h_cfg.verification) + // Verify restored data. + if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) { - // Verify restored data. - if (_dump_emmc_verify(storage, lbaStartPart, outFilename, part)) - { - EPRINTF("\nPress any key and try again...\n"); + EPRINTF("\nPress any key and try again...\n"); - return 0; - } - else - tui_pbar(0, gfx_con.y, 100, 0xFF96FF00, 0xFF155500); + return 0; } + else + tui_pbar(0, gfx_con.y, 100, 0xFF96FF00, 0xFF155500); gfx_con.fntsz = 16; gfx_puts("\n\n"); @@ -925,10 +911,8 @@ static void _restore_emmc_selected(emmcPartType_t restoreType) timer = get_tmr_s() - timer; gfx_printf("Time taken: %dm %ds.\n", timer / 60, timer % 60); sdmmc_storage_end(&storage); - if (res && h_cfg.verification) + if (res) gfx_printf("\n%kFinished and verified!%k\nPress any key...\n", 0xFF96FF00, 0xFFCCCCCC); - else if (res) - gfx_printf("\nFinished! Press any key...\n"); out: sd_unmount(); diff --git a/bootloader/main.c b/bootloader/main.c index 477ab74..db982bb 100644 --- a/bootloader/main.c +++ b/bootloader/main.c @@ -862,8 +862,6 @@ static void _auto_launch_firmware() h_cfg.autoboot_list = atoi(kv->val); else if (!strcmp("bootwait", kv->key)) h_cfg.bootwait = atoi(kv->val); - else if (!strcmp("verification", kv->key)) - h_cfg.verification = atoi(kv->val); else if (!strcmp("backlight", kv->key)) h_cfg.backlight = atoi(kv->val); else if (!strcmp("autohosoff", kv->key)) @@ -1270,7 +1268,6 @@ ment_t ment_tools[] = { MDEF_CAPTION("-- Backup & Restore --", 0xFF0AB9E6), MDEF_MENU("Backup", &menu_backup), MDEF_MENU("Restore", &menu_restore), - MDEF_HANDLER("Verification options", config_verification), MDEF_CHGLINE(), MDEF_CAPTION("-------- Misc --------", 0xFF0AB9E6), MDEF_HANDLER("Dump package1/2", dump_packages12),