mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-23 02:16:41 +00:00
nyx: disable reboot to OFW button if autorcm
This commit is contained in:
parent
c9405680f2
commit
a6d7fa7fe1
7 changed files with 16 additions and 8 deletions
|
@ -42,6 +42,7 @@ void set_default_configuration()
|
||||||
h_cfg.errors = 0;
|
h_cfg.errors = 0;
|
||||||
h_cfg.eks = NULL;
|
h_cfg.eks = NULL;
|
||||||
h_cfg.rcm_patched = fuse_check_patched_rcm();
|
h_cfg.rcm_patched = fuse_check_patched_rcm();
|
||||||
|
h_cfg.autorcm_enabled = false;
|
||||||
h_cfg.emummc_force_disable = false;
|
h_cfg.emummc_force_disable = false;
|
||||||
|
|
||||||
sd_power_cycle_time_start = 0;
|
sd_power_cycle_time_start = 0;
|
||||||
|
|
|
@ -37,6 +37,7 @@ typedef struct _hekate_config
|
||||||
bool t210b01;
|
bool t210b01;
|
||||||
bool emummc_force_disable;
|
bool emummc_force_disable;
|
||||||
bool rcm_patched;
|
bool rcm_patched;
|
||||||
|
bool autorcm_enabled;
|
||||||
u32 errors;
|
u32 errors;
|
||||||
hos_eks_mbr_t *eks;
|
hos_eks_mbr_t *eks;
|
||||||
} hekate_config;
|
} hekate_config;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2022 CTCaer
|
* Copyright (c) 2018-2023 CTCaer
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
@ -1101,6 +1101,7 @@ static lv_res_t _create_mbox_reboot(lv_obj_t *btn)
|
||||||
lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES);
|
lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES);
|
||||||
|
|
||||||
static const char * mbox_btn_map[] = { "\221OFW", "\221RCM", "\221Cancel", "" };
|
static const char * mbox_btn_map[] = { "\221OFW", "\221RCM", "\221Cancel", "" };
|
||||||
|
static const char * mbox_btn_map_autorcm[] = { "\261OFW", "\221RCM", "\221Cancel", "" };
|
||||||
static const char * mbox_btn_map_patched[] = { "\221OFW", "\221Normal", "\221Cancel", "" };
|
static const char * mbox_btn_map_patched[] = { "\221OFW", "\221Normal", "\221Cancel", "" };
|
||||||
lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL);
|
lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL);
|
||||||
lv_mbox_set_recolor_text(mbox, true);
|
lv_mbox_set_recolor_text(mbox, true);
|
||||||
|
@ -1108,7 +1109,10 @@ static lv_res_t _create_mbox_reboot(lv_obj_t *btn)
|
||||||
|
|
||||||
lv_mbox_set_text(mbox, "#FF8000 Choose where to reboot:#");
|
lv_mbox_set_text(mbox, "#FF8000 Choose where to reboot:#");
|
||||||
|
|
||||||
lv_mbox_add_btns(mbox, h_cfg.rcm_patched ? mbox_btn_map_patched : mbox_btn_map, _reboot_action);
|
if (h_cfg.rcm_patched)
|
||||||
|
lv_mbox_add_btns(mbox, mbox_btn_map_patched, _reboot_action);
|
||||||
|
else
|
||||||
|
lv_mbox_add_btns(mbox, !h_cfg.autorcm_enabled ? mbox_btn_map : mbox_btn_map_autorcm, _reboot_action);
|
||||||
|
|
||||||
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);
|
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||||
lv_obj_set_top(mbox, true);
|
lv_obj_set_top(mbox, true);
|
||||||
|
|
|
@ -155,7 +155,7 @@ static void _create_window_backup_restore(emmcPartType_t type, const char* win_l
|
||||||
// Refresh AutoRCM button.
|
// Refresh AutoRCM button.
|
||||||
if (emmc_btn_ctxt.restore && (type == PART_BOOT) && !emmc_btn_ctxt.raw_emummc)
|
if (emmc_btn_ctxt.restore && (type == PART_BOOT) && !emmc_btn_ctxt.raw_emummc)
|
||||||
{
|
{
|
||||||
if (get_autorcm_status(false))
|
if (get_set_autorcm_status(false))
|
||||||
lv_btn_set_state(autorcm_btn, LV_BTN_STATE_TGL_REL);
|
lv_btn_set_state(autorcm_btn, LV_BTN_STATE_TGL_REL);
|
||||||
else
|
else
|
||||||
lv_btn_set_state(autorcm_btn, LV_BTN_STATE_REL);
|
lv_btn_set_state(autorcm_btn, LV_BTN_STATE_REL);
|
||||||
|
|
|
@ -56,7 +56,7 @@ static lv_obj_t *_create_container(lv_obj_t *parent)
|
||||||
return h1;
|
return h1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get_autorcm_status(bool toggle)
|
bool get_set_autorcm_status(bool toggle)
|
||||||
{
|
{
|
||||||
u32 sector;
|
u32 sector;
|
||||||
u8 corr_mod0, mod1;
|
u8 corr_mod0, mod1;
|
||||||
|
@ -128,6 +128,8 @@ out:
|
||||||
free(tempbuf);
|
free(tempbuf);
|
||||||
emmc_end();
|
emmc_end();
|
||||||
|
|
||||||
|
h_cfg.autorcm_enabled = enabled;
|
||||||
|
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +143,7 @@ static lv_res_t _create_mbox_autorcm_status(lv_obj_t *btn)
|
||||||
lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL);
|
lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL);
|
||||||
lv_mbox_set_recolor_text(mbox, true);
|
lv_mbox_set_recolor_text(mbox, true);
|
||||||
|
|
||||||
bool enabled = get_autorcm_status(true);
|
bool enabled = get_set_autorcm_status(true);
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
|
@ -1660,7 +1662,7 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent)
|
||||||
lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _create_mbox_autorcm_status);
|
lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _create_mbox_autorcm_status);
|
||||||
|
|
||||||
// Set default state for AutoRCM and lock it out if patched unit.
|
// Set default state for AutoRCM and lock it out if patched unit.
|
||||||
if (get_autorcm_status(false))
|
if (get_set_autorcm_status(false))
|
||||||
lv_btn_set_state(btn3, LV_BTN_STATE_TGL_REL);
|
lv_btn_set_state(btn3, LV_BTN_STATE_TGL_REL);
|
||||||
else
|
else
|
||||||
lv_btn_set_state(btn3, LV_BTN_STATE_REL);
|
lv_btn_set_state(btn3, LV_BTN_STATE_REL);
|
||||||
|
|
|
@ -23,7 +23,7 @@ extern lv_obj_t *ums_mbox;
|
||||||
|
|
||||||
void create_tab_tools(lv_theme_t *th, lv_obj_t *parent);
|
void create_tab_tools(lv_theme_t *th, lv_obj_t *parent);
|
||||||
void nyx_run_ums(void *param);
|
void nyx_run_ums(void *param);
|
||||||
bool get_autorcm_status(bool change);
|
bool get_set_autorcm_status(bool change);
|
||||||
lv_res_t action_ums_sd(lv_obj_t *btn);
|
lv_res_t action_ums_sd(lv_obj_t *btn);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 naehrwert
|
* Copyright (c) 2018 naehrwert
|
||||||
*
|
*
|
||||||
* Copyright (c) 2018-2022 CTCaer
|
* Copyright (c) 2018-2023 CTCaer
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
|
Loading…
Reference in a new issue