mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 03:11:16 +00:00
Merge 87a2640987
into 3250b2e32a
This commit is contained in:
commit
e1953c1976
3 changed files with 128 additions and 123 deletions
|
@ -249,13 +249,13 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn)
|
|||
// Check result. Don't error if hash doesn't match.
|
||||
if (cal0_res == 1)
|
||||
{
|
||||
lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#");
|
||||
lv_label_set_text(lb_desc, "#FFDD00 Failed to init the eMMC!#");
|
||||
|
||||
goto out;
|
||||
}
|
||||
else if (cal0_res == 2)
|
||||
{
|
||||
lv_label_set_text(lb_desc, "#FFDD00 CAL0 is corrupt or wrong keys!#\n");
|
||||
lv_label_set_text(lb_desc, "#FFDD00 CAL0 is corrupt or has the wrong keys!#\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -271,7 +271,7 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn)
|
|||
"#FF8000 WLAN MAC:# %02X:%02X:%02X:%02X:%02X:%02X\n"
|
||||
"#FF8000 Bluetooth MAC:# %02X:%02X:%02X:%02X:%02X:%02X\n"
|
||||
"#FF8000 Battery LOT:# %s (%d)\n"
|
||||
"#FF8000 LCD Vendor:# ",
|
||||
"#FF8000 Display Vendor:# ",
|
||||
cal0->version, cal0->update_cnt, cal0->serial_number,
|
||||
cal0->wlan_mac[0], cal0->wlan_mac[1], cal0->wlan_mac[2], cal0->wlan_mac[3], cal0->wlan_mac[4], cal0->wlan_mac[5],
|
||||
cal0->bd_mac[0], cal0->bd_mac[1], cal0->bd_mac[2], cal0->bd_mac[3], cal0->bd_mac[4], cal0->bd_mac[5],
|
||||
|
@ -384,12 +384,12 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
"SoC Speedo 0 (SoC Val):\n"
|
||||
"SoC Speedo 1 (BROM rev):\n"
|
||||
"SoC Speedo 2:\n"
|
||||
"CPU IDDQ Val:\n"
|
||||
"SoC IDDQ Val:\n"
|
||||
"Gpu IDDQ Val:\n"
|
||||
"CPU IDDQ Value:\n"
|
||||
"SoC IDDQ Value:\n"
|
||||
"GPU IDDQ Value:\n"
|
||||
"Vendor Code:\n"
|
||||
"FAB Code:\n"
|
||||
"LOT Code 0:\n"
|
||||
"LOT Code:\n"
|
||||
"Wafer ID:\n"
|
||||
"X Coordinate:\n"
|
||||
"Y Coordinate:"
|
||||
|
@ -424,7 +424,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
sku = "Aula - Fric";
|
||||
break;
|
||||
default:
|
||||
sku = "#FF8000 Unknown#";
|
||||
sku = "#FF8000 Unknown. This should not happen#";
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -438,7 +438,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcpy(dram_man, "Samsung K4F6E304HB-MGCH 4GB");
|
||||
break;
|
||||
case LPDDR4_ICOSA_4GB_HYNIX_H9HCNNNBPUMLHR_NLE:
|
||||
strcpy(dram_man, "Hynix H9HCNNNBPUMLHR-NLE 4GB");
|
||||
strcpy(dram_man, "SK Hynix H9HCNNNBPUMLHR-NLE 4GB");
|
||||
break;
|
||||
case LPDDR4_ICOSA_4GB_MICRON_MT53B512M32D2NP_062_WTC:
|
||||
strcpy(dram_man, "Micron MT53B512M32D2NP-062 WT:C");
|
||||
|
@ -450,7 +450,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcpy(dram_man, "Samsung K4FBE3D4HM-MGXX 8GB");
|
||||
break;
|
||||
default:
|
||||
strcpy(dram_man, "#FF8000 Unknown#");
|
||||
strcpy(dram_man, "#FF8000 Unknown. This should not happen#");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -469,7 +469,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
break;
|
||||
case LPDDR4X_IOWA_4GB_HYNIX_H9HCNNNBKMMLHR_NME:
|
||||
case LPDDR4X_HOAG_4GB_HYNIX_H9HCNNNBKMMLHR_NME:
|
||||
strcpy(dram_man, "Hynix H9HCNNNBKMMLHR-NME 4GB");
|
||||
strcpy(dram_man, "SK Hynix H9HCNNNBKMMLHR-NME 4GB");
|
||||
break;
|
||||
case LPDDR4X_IOWA_4GB_MICRON_MT53E512M32D2NP_046_WTE: // 4266Mbps.
|
||||
case LPDDR4X_HOAG_4GB_MICRON_MT53E512M32D2NP_046_WTE: // 4266Mbps.
|
||||
|
@ -500,12 +500,12 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
case LPDDR4X_HOAG_4GB_HYNIX_H9HCNNNBKMMLXR_NEE: // Replaced from Copper.
|
||||
case LPDDR4X_AULA_4GB_HYNIX_H9HCNNNBKMMLXR_NEE: // Replaced from Copper.
|
||||
case LPDDR4X_IOWA_4GB_HYNIX_H9HCNNNBKMMLXR_NEE: // Replaced from Copper.
|
||||
strcpy(dram_man, "Hynix H9HCNNNBKMMLXR-NEE 4GB");
|
||||
strcpy(dram_man, "SK Hynix H9HCNNNBKMMLXR-NEE 4GB");
|
||||
break;
|
||||
case LPDDR4X_IOWA_4GB_HYNIX_H54G46CYRBX267:
|
||||
case LPDDR4X_HOAG_4GB_HYNIX_H54G46CYRBX267:
|
||||
case LPDDR4X_AULA_4GB_HYNIX_H54G46CYRBX267:
|
||||
strcpy(dram_man, "Hynix H54G46CYRBX267 4GB");
|
||||
strcpy(dram_man, "SK Hynix H54G46CYRBX267 4GB");
|
||||
break;
|
||||
case LPDDR4X_IOWA_4GB_MICRON_MT53E512M32D1NP_046_WTB:
|
||||
case LPDDR4X_HOAG_4GB_MICRON_MT53E512M32D1NP_046_WTB:
|
||||
|
@ -514,7 +514,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
break;
|
||||
|
||||
default:
|
||||
strcpy(dram_man, "#FF8000 Contact me!#");
|
||||
strcpy(dram_man, "#FF8000 Open an issue on GitHub#");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -530,22 +530,22 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
switch (burnt_fuses_hos)
|
||||
{
|
||||
case 0:
|
||||
strcpy(fuses_hos_version, "#96FF00 Golden sample#");
|
||||
strcpy(fuses_hos_version, "#96FF00 Rare Sample Firmware#");
|
||||
break;
|
||||
case 1:
|
||||
strcpy(fuses_hos_version, "1.0.0");
|
||||
strcpy(fuses_hos_version, "1.0.0 - Exploitable");
|
||||
break;
|
||||
case 2:
|
||||
strcpy(fuses_hos_version, "2.0.0 - 2.3.0");
|
||||
strcpy(fuses_hos_version, "2.0.0 - 2.3.0 - Exploitable");
|
||||
break;
|
||||
case 3:
|
||||
strcpy(fuses_hos_version, "3.0.0");
|
||||
strcpy(fuses_hos_version, "3.0.0 - Exploitable");
|
||||
break;
|
||||
case 4:
|
||||
strcpy(fuses_hos_version, "3.0.1 - 3.0.2");
|
||||
strcpy(fuses_hos_version, "3.0.1 - 3.0.2 - Exploitable");
|
||||
break;
|
||||
case 5:
|
||||
strcpy(fuses_hos_version, "4.0.0 - 4.1.0");
|
||||
strcpy(fuses_hos_version, "4.0.0 - 4.1.0 - Exploitable");
|
||||
break;
|
||||
case 6:
|
||||
strcpy(fuses_hos_version, "5.0.0 - 5.1.0");
|
||||
|
@ -593,10 +593,10 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcpy(fuses_hos_version, "19.0.0+");
|
||||
break;
|
||||
case 255:
|
||||
strcpy(fuses_hos_version, "#FFD000 Overburnt#");
|
||||
strcpy(fuses_hos_version, "#FFD000 Fuses overburnt#");
|
||||
break;
|
||||
default:
|
||||
strcpy(fuses_hos_version, "#FF8000 Unknown#");
|
||||
strcpy(fuses_hos_version, "#FF8000 Unknown. This should not happen#");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -675,7 +675,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
break;
|
||||
*/
|
||||
case 6:
|
||||
strcat(txt_buf, "Hynix");
|
||||
strcat(txt_buf, "SK Hynix");
|
||||
break;
|
||||
/*
|
||||
case 8:
|
||||
|
@ -732,7 +732,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "Micron");
|
||||
break;
|
||||
default:
|
||||
s_printf(txt_buf + strlen(txt_buf), "#FF8000 Unknown# (%d)", ram_vendor.chip1.rank0_ch0);
|
||||
s_printf(txt_buf + strlen(txt_buf), "#FF8000 Unknown. This should not happen# (%d)", ram_vendor.chip1.rank0_ch0);
|
||||
break;
|
||||
}
|
||||
s_printf(txt_buf + strlen(txt_buf), "\n#FF8000 Rev ID:# %X.%02X #FF8000 |# %X.%02X\n#FF8000 Density:# %d",
|
||||
|
@ -740,19 +740,19 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
switch ((ram_density.chip0.rank0_ch0 & 0x3C) >> 2)
|
||||
{
|
||||
case 2:
|
||||
strcat(txt_buf, " x 512MB");
|
||||
strcat(txt_buf, " x 512MB. This should not happen");
|
||||
break;
|
||||
case 3:
|
||||
strcat(txt_buf, " x 768MB");
|
||||
strcat(txt_buf, " x 768MB. This should not happen");
|
||||
break;
|
||||
case 4:
|
||||
strcat(txt_buf, " x 1GB");
|
||||
break;
|
||||
case 5:
|
||||
strcat(txt_buf, " x 1.5GB");
|
||||
strcat(txt_buf, " x 1.5GB. This should not happen");
|
||||
break;
|
||||
case 6:
|
||||
strcat(txt_buf, " x 2GB");
|
||||
strcat(txt_buf, " x 2GB. This should not happen");
|
||||
break;
|
||||
default:
|
||||
s_printf(txt_buf + strlen(txt_buf), " x Unk (%d)", (ram_density.chip0.rank0_ch0 & 0x3C) >> 2);
|
||||
|
@ -762,19 +762,19 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
switch ((ram_density.chip1.rank0_ch0 & 0x3C) >> 2)
|
||||
{
|
||||
case 2:
|
||||
strcat(txt_buf, " x 512MB");
|
||||
strcat(txt_buf, " x 512MB. This should not happen");
|
||||
break;
|
||||
case 3:
|
||||
strcat(txt_buf, " x 768MB");
|
||||
strcat(txt_buf, " x 768MB. This should not happen");
|
||||
break;
|
||||
case 4:
|
||||
strcat(txt_buf, " x 1GB");
|
||||
break;
|
||||
case 5:
|
||||
strcat(txt_buf, " x 1.5GB");
|
||||
strcat(txt_buf, " x 1.5GB. This should not happen");
|
||||
break;
|
||||
case 6:
|
||||
strcat(txt_buf, " x 2GB");
|
||||
strcat(txt_buf, " x 2GB. This should not happen");
|
||||
break;
|
||||
default:
|
||||
s_printf(txt_buf + strlen(txt_buf), " x Unk (%d)", (ram_density.chip1.rank0_ch0 & 0x3C) >> 2);
|
||||
|
@ -819,7 +819,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "-???");
|
||||
break;
|
||||
default:
|
||||
strcat(txt_buf, " #FFDD00 Contact me!#");
|
||||
strcat(txt_buf, " #FFDD00 Open a GitHub issue!#");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -846,7 +846,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "??");
|
||||
break;
|
||||
default:
|
||||
strcat(txt_buf, " #FFDD00 Contact me!#");
|
||||
strcat(txt_buf, " #FFDD00 Open a GitHub issue#");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -864,13 +864,13 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "Samsung AMS699VC01");
|
||||
break;
|
||||
case PANEL_OEM_CLONE_6_2:
|
||||
strcat(txt_buf, "#FFDD00 OEM Clone 6.2\"#");
|
||||
strcat(txt_buf, "#FFDD00 Clone Display 6.2in\"#");
|
||||
break;
|
||||
case PANEL_OEM_CLONE_5_5:
|
||||
strcat(txt_buf, "#FFDD00 OEM Clone 5.5\"#");
|
||||
strcat(txt_buf, "#FFDD00 Clone Display 5.5in\"#");
|
||||
break;
|
||||
case PANEL_OEM_CLONE:
|
||||
strcat(txt_buf, "#FFDD00 OEM Clone#");
|
||||
strcat(txt_buf, "#FFDD00 Clone Display#");
|
||||
break;
|
||||
case 0xCCCC:
|
||||
strcat(txt_buf, "#FFDD00 Failed to get info!#");
|
||||
|
@ -891,7 +891,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "Samsung ");
|
||||
break;
|
||||
}
|
||||
strcat(txt_buf, "Unknown #FFDD00 Contact me!#");
|
||||
strcat(txt_buf, "Unknown #FFDD00 Open an issue on GitHub!#");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -988,9 +988,9 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn)
|
|||
|
||||
// Check if patched unit.
|
||||
if (!fuse_check_patched_rcm())
|
||||
strcat(txt_buf, "\n\n#96FF00 This unit is exploitable#\n#96FF00 to the RCM bug!#");
|
||||
strcat(txt_buf, "\n\n#96FF00 This unit is exploitable#\n#96FF00 with the RCM bug!#");
|
||||
else
|
||||
strcat(txt_buf, "\n\n#FF8000 This unit is patched#\n#FF8000 to the RCM bug!#");
|
||||
strcat(txt_buf, "\n\n#FF8000 This unit is patched#\n#FF8000 against the RCM bug!#");
|
||||
|
||||
lv_label_set_text(lb_desc2, txt_buf);
|
||||
|
||||
|
@ -1044,7 +1044,7 @@ static lv_res_t _create_window_bootrom_info_status(lv_obj_t *btn)
|
|||
|
||||
u32 res = fuse_read_ipatch(_ipatch_process);
|
||||
if (res != 0)
|
||||
s_printf(txt_buf + strlen(txt_buf), "#FFDD00 Failed to read ipatches. Error: %d#", res);
|
||||
s_printf(txt_buf + strlen(txt_buf), "#FFDD00 Failed to read the ipatches. Error: %d#", res);
|
||||
|
||||
lv_label_set_text(lb_desc, txt_buf);
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ static lv_res_t _create_mbox_lockpick(lv_obj_t *btn)
|
|||
lv_mbox_set_recolor_text(mbox, true);
|
||||
|
||||
lv_mbox_set_text(mbox, "#FF8000 Lockpick RCM#\n\nThis will launch Lockpick RCM.\nDo you want to continue?\n\n"
|
||||
"To return back from lockpick use\n#96FF00 Reboot to hekate#.");
|
||||
"To return back from Lockpick use the \n#96FF00 Reboot to hekate# option.");
|
||||
|
||||
lv_mbox_add_btns(mbox, mbox_btn_map, _launch_lockpick_action);
|
||||
lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5);
|
||||
|
@ -1190,7 +1190,7 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn)
|
|||
//"#FF8000 VD Recover Operations:# %d\n"
|
||||
"#FF8000 Total Writes SLC:# %d MB\n"
|
||||
"#FF8000 Total Writes MLC:# %d MB\n"
|
||||
"#FF8000 BigFile limit status:# %d\n"
|
||||
"#FF8000 Big File limit status:# %d\n"
|
||||
"#FF8000 Average Erases Hybrid:# %d",
|
||||
|
||||
//rpt->avg_erase_cycles_sys,
|
||||
|
@ -1242,7 +1242,7 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn)
|
|||
"#FF8000 Uncorrectable ECC:# %d\n"
|
||||
"#FF8000 Temperature Now:# %d oC\n"
|
||||
//"#FF8000 Temperature Min:# %d oC\n"
|
||||
"#FF8000 Temperature Max:# %d oC\n"
|
||||
"#FF8000 Temperature Maximum:# %d oC\n"
|
||||
"#FF8000 Health Level EUDA:# %d%%\n"
|
||||
//"#FF8000 Health Level SYS:# %d%%\n"
|
||||
"#FF8000 Health Level MLC:# %d%%",
|
||||
|
@ -1349,7 +1349,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench)
|
|||
|
||||
if (res)
|
||||
{
|
||||
lv_mbox_set_text(mbox, "#FFDD00 Failed to init Storage!#");
|
||||
lv_mbox_set_text(mbox, "#FFDD00 Failed to init Storage. This might be a hardware issue!#");
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -1594,7 +1594,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn)
|
|||
|
||||
if (!emmc_initialize(false))
|
||||
{
|
||||
lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#");
|
||||
lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC chip!#");
|
||||
lv_obj_set_width(lb_desc, lv_obj_get_width(desc));
|
||||
emmc_errors = emmc_get_error_count();
|
||||
|
||||
|
@ -1622,9 +1622,12 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "Samsung ");
|
||||
break;
|
||||
case 0x45: // Unofficial.
|
||||
strcat(txt_buf, "SanDisk ");
|
||||
strcat(txt_buf, "SanDisk (Unofficial) ");
|
||||
lv_win_add_btn(win, NULL, SYMBOL_FILE_ALT" Device Report", _create_mbox_emmc_sandisk_report);
|
||||
break;
|
||||
case 0x89:
|
||||
strcat(txt_buf, "Silicon Motion (Unofficial) ");
|
||||
break;
|
||||
case 0x90:
|
||||
strcat(txt_buf, "SK Hynix ");
|
||||
break;
|
||||
|
@ -1719,7 +1722,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn)
|
|||
"Month/Year:\n\n"
|
||||
"#00DDFF Ext CSD:#\n"
|
||||
"Cmd Classes:\n"
|
||||
"Max Rate:\n"
|
||||
"Maximum Rate:\n"
|
||||
"Current Rate:\n"
|
||||
"Type Support:\n\n"
|
||||
"Write Cache:\n"
|
||||
|
@ -1787,7 +1790,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn)
|
|||
idx++;
|
||||
}
|
||||
if (!idx)
|
||||
strcat(txt_buf, "#FFDD00 Partition table is empty!#");
|
||||
strcat(txt_buf, "#FFDD00 GPP Partition table is empty!#");
|
||||
|
||||
emmc_gpt_free(&gpt);
|
||||
|
||||
|
@ -1811,10 +1814,10 @@ out_error:
|
|||
lv_mbox_set_recolor_text(mbox, true);
|
||||
|
||||
s_printf(txt_buf,
|
||||
"#FF8000 eMMC Issues Check#\n\n"
|
||||
"#FFDD00 Your eMMC is initialized in slower mode,#\n"
|
||||
"#FFDD00 or init/read/write errors occurred!#\n"
|
||||
"#FFDD00 This might mean hardware issues!#\n\n"
|
||||
"#FF8000 eMMC Issue Detected#\n\n"
|
||||
"#FFDD00 Your eMMC is initialized in a slow mode,#\n"
|
||||
"#FFDD00 or an init/read/write error occurred!#\n"
|
||||
"#FFDD00 This might be a hardware issue!#\n\n"
|
||||
"#00DDFF Bus Speed:# %d MB/s\n\n"
|
||||
"#00DDFF SDMMC4 Errors:#\n"
|
||||
"Init fails: %d\n"
|
||||
|
@ -1890,7 +1893,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||
switch (sd_storage.cid.manfid)
|
||||
{
|
||||
case 0x00:
|
||||
strcat(txt_buf, "Fake ");
|
||||
strcat(txt_buf, "Fake SD Card");
|
||||
break;
|
||||
case 0x01:
|
||||
strcat(txt_buf, "Panasonic ");
|
||||
|
@ -2201,13 +2204,13 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn)
|
|||
|
||||
lv_label_set_static_text(lb_desc,
|
||||
"#00DDFF Fuel Gauge IC Info:#\n"
|
||||
"Capacity now:\n"
|
||||
"Capacity full:\n"
|
||||
"Current Capacity:\n"
|
||||
"Full Capacity:\n"
|
||||
"Capacity (design):\n"
|
||||
"Current now:\n"
|
||||
"Current average:\n"
|
||||
"Voltage now:\n"
|
||||
"Voltage open-circuit:\n"
|
||||
"Current Voltade:\n"
|
||||
"Open-circuit voltage:\n"
|
||||
"Min voltage reached:\n"
|
||||
"Max voltage reached:\n"
|
||||
"Empty voltage:\n"
|
||||
|
@ -2309,9 +2312,9 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn)
|
|||
"#00DDFF Battery Charger IC Info:#\n"
|
||||
"Input current limit:\n"
|
||||
"System voltage limit:\n"
|
||||
"Charge current limit:\n"
|
||||
"Charge voltage limit:\n"
|
||||
"Charge status:\n"
|
||||
"Charging current limit:\n"
|
||||
"Charging voltage limit:\n"
|
||||
"Charging status:\n"
|
||||
"Temperature status:\n\n"
|
||||
"#00DDFF USB-PD IC Info:#\n"
|
||||
"Connection status:\n"
|
||||
|
@ -2353,7 +2356,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn)
|
|||
strcat(txt_buf, "Fast charging\n");
|
||||
break;
|
||||
case 3:
|
||||
strcat(txt_buf, "Charge terminated\n");
|
||||
strcat(txt_buf, "Charging terminated\n");
|
||||
break;
|
||||
default:
|
||||
s_printf(txt_buf + strlen(txt_buf), "Unknown (%d)\n", value);
|
||||
|
@ -2524,8 +2527,8 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent)
|
|||
if (lockpick_found)
|
||||
{
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"View Ipatches and dump the unpatched and patched versions\nof BootROM.\n"
|
||||
"Or dump every single key via #C7EA46 Lockpick RCM#.\n");
|
||||
"View the Ipatches and dump the unpatched and patched versions the \nof BootROM,\n"
|
||||
"Or dump every single key with #C7EA46 Lockpick RCM#.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2564,8 +2567,8 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_label_set_recolor(label_txt4, true);
|
||||
lv_label_set_static_text(label_txt4,
|
||||
"View and dump the cached #C7EA46 Fuses# and #C7EA46 KFuses#.\n"
|
||||
"Fuses contain info about the SoC/SKU and KFuses HDCP keys.\n"
|
||||
"You can also see info about #C7EA46 DRAM#, #C7EA46 Screen# and #C7EA46 Touch panel#.");
|
||||
"Fuses contain information about the SoC/SKU and KFuses HDCP keys.\n"
|
||||
"You can also see information about #C7EA46 DRAM#, #C7EA46 Screen# and #C7EA46 Touch panel#.");
|
||||
lv_obj_set_style(label_txt4, &hint_small_style);
|
||||
lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -2613,8 +2616,8 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_obj_t *label_txt5 = lv_label_create(h2, NULL);
|
||||
lv_label_set_recolor(label_txt5, true);
|
||||
lv_label_set_static_text(label_txt5,
|
||||
"View info about the eMMC or microSD and their partition list.\n"
|
||||
"Additionally you can benchmark read speeds.");
|
||||
"View info about the eMMC chip or microSD card and their partition list.\n"
|
||||
"Additionally you can benchmark their speeds.");
|
||||
lv_obj_set_style(label_txt5, &hint_small_style);
|
||||
lv_obj_align(label_txt5, btn5, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -2638,8 +2641,8 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_obj_t *label_txt6 = lv_label_create(h2, NULL);
|
||||
lv_label_set_recolor(label_txt6, true);
|
||||
lv_label_set_static_text(label_txt6,
|
||||
"View battery and battery charger related info.\n"
|
||||
"Additionally you can dump battery charger's registers.\n");
|
||||
"View information related to the battery.\n"
|
||||
"Also enables dumping the battery charger registers.\n");
|
||||
lv_obj_set_style(label_txt6, &hint_small_style);
|
||||
lv_obj_align(label_txt6, btn7, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <libs/lvgl/lvgl.h>
|
||||
|
||||
#define CLOCK_MIN_YEAR 2024
|
||||
#define CLOCK_MAX_YEAR (CLOCK_MIN_YEAR + 10)
|
||||
#define CLOCK_MAX_YEAR (CLOCK_MIN_YEAR + 50)
|
||||
#define CLOCK_YEARLIST "2024\n2025\n2026\n2027\n2028\n2029\n2030\n2031\n2032\n2033\n2034"
|
||||
|
||||
extern hekate_config h_cfg;
|
||||
|
@ -209,7 +209,7 @@ static void _create_autoboot_window()
|
|||
lv_label_set_static_text(label_sep, "");
|
||||
|
||||
lv_obj_t *label_txt = lv_label_create(h1, NULL);
|
||||
lv_label_set_static_text(label_txt, "Main configurations");
|
||||
lv_label_set_static_text(label_txt, "Main configuration");
|
||||
lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim);
|
||||
lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -(LV_DPI / 4));
|
||||
|
||||
|
@ -366,9 +366,9 @@ static lv_res_t _save_nyx_options_action(lv_obj_t *btn)
|
|||
nyx_changes_made = false;
|
||||
|
||||
if (res)
|
||||
lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#96FF00 The configuration was saved to sd card!#");
|
||||
lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#96FF00 The updated configuration has been saved to the microSD card!#");
|
||||
else
|
||||
lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#FFDD00 Failed to save the configuration#\n#FFDD00 to sd card!#");
|
||||
lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#FFDD00 Failed to save the configuration#\n#FFDD00 to microSD card!#");
|
||||
lv_mbox_add_btns(mbox, mbox_btn_map, NULL);
|
||||
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
lv_obj_set_top(mbox, true);
|
||||
|
@ -618,10 +618,9 @@ static lv_res_t _create_window_nyx_colors(lv_obj_t *btn)
|
|||
lv_obj_t *lbl_test = lv_label_create(h2, NULL);
|
||||
lv_label_set_long_mode(lbl_test, LV_LABEL_LONG_BREAK);
|
||||
lv_label_set_static_text(lbl_test,
|
||||
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
|
||||
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris "
|
||||
"nisi ut aliquip ex ea commodo consequat.");
|
||||
"This is a test message to show text colors, "
|
||||
"The quick brown fox jumped over the lazy dog. "
|
||||
"123456789 !@#$%^&*()-_=+[]\;'./,{}|:"<>? ");
|
||||
lv_obj_set_width(lbl_test, lv_obj_get_width(h2) - LV_DPI * 6 / 10);
|
||||
lv_obj_align(lbl_test, lbl_sample, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 5);
|
||||
color_test.label = lbl_test;
|
||||
|
@ -745,7 +744,7 @@ static lv_res_t _create_mbox_clock_edit(lv_obj_t *btn)
|
|||
lv_mbox_set_recolor_text(mbox, true);
|
||||
lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6);
|
||||
|
||||
lv_mbox_set_text(mbox, "Enter #C7EA46 Date# and #C7EA46 Time# for Nyx\nThis will not alter the actual HW clock!");
|
||||
lv_mbox_set_text(mbox, "Enter #C7EA46 Date# and #C7EA46 Time# for Nyx\nThis will not alter the clock outside of Nyx!");
|
||||
|
||||
// Get current time.
|
||||
rtc_time_t time;
|
||||
|
@ -892,6 +891,7 @@ save_data:
|
|||
|
||||
if (!nx_hoag)
|
||||
{
|
||||
|
||||
// Save binary dump.
|
||||
memcpy(data, &jc_pad->bt_conn_l, sizeof(jc_bt_conn_t));
|
||||
memcpy(data + sizeof(jc_bt_conn_t), &jc_pad->bt_conn_r, sizeof(jc_bt_conn_t));
|
||||
|
@ -1049,7 +1049,7 @@ disabled_or_cal0_issue:;
|
|||
|
||||
// Check if pairing info was found.
|
||||
if (joycon_found == 2)
|
||||
strcat(txt_buf, "#C7EA46 Success!#\n#C7EA46 Found 2 out of 2 Joy-Con pairing data!#\n");
|
||||
strcat(txt_buf, "#C7EA46 Success!#\n#C7EA46 Found Joy-Con pairing data!#\n");
|
||||
else
|
||||
{
|
||||
s_printf(txt_buf + strlen(txt_buf), "#FF8000 Failed!#\n#FF8000 Warning:# Found #FFDD00 %d out of 2# pairing data!\n", joycon_found);
|
||||
|
@ -1061,24 +1061,24 @@ disabled_or_cal0_issue:;
|
|||
strcat(txt_buf, "#C7EA46 Both pairing data are HOS based!#");
|
||||
else if (!is_l_hos && is_r_hos)
|
||||
{
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Left# pairing data is not HOS based!");
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Left# pairing data is not Horizon Os based! Re-pair Joy-Cons to fix");
|
||||
success = false;
|
||||
}
|
||||
else if (is_l_hos && !is_r_hos)
|
||||
{
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Right# pairing data is not HOS based!");
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Right# pairing data is not Horizon OS based! Re-pair Joy-Cons to fix");
|
||||
success = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 No# pairing data is HOS based!");
|
||||
strcat(txt_buf, "#FF8000 Warning:# #FFDD00 No# pairing data is Horizon OS based! Re-pair Joy-Cons to fix.");
|
||||
success = false;
|
||||
}
|
||||
|
||||
if (!success)
|
||||
strcat(txt_buf,
|
||||
"\n\n#FFDD00 Make sure that both Joy-Con are connected,#\n"
|
||||
"#FFDD00 and that you paired them in HOS!#");
|
||||
"\n\n#FFDD00 Make sure that both Joy-Cons are connected,#\n"
|
||||
"#FFDD00 and that you have paired them in Horizon OS!#");
|
||||
|
||||
if (cal_error)
|
||||
s_printf(txt_buf + strlen(txt_buf), "\n\n#FF8000 Warning: Failed (%d) to get IMU calibration!#", cal_error);
|
||||
|
@ -1276,9 +1276,9 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn)
|
|||
label_txt2 = lv_label_create(sw_h2, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Sets the boot entries per line to 5. (Default is 4)\n"
|
||||
"#C7EA46 This allows a total of 10 boot entries to be shown in Launch#\n"
|
||||
"#C7EA46 and More Configs sections.#\n\n\n");
|
||||
"Sets the boot entries visible per line to 5. (Default is 4)\n"
|
||||
"#C7EA46 This allows a total of 10 boot entries to be shown in the Launch#\n"
|
||||
"#C7EA46 and More Configs menus.#\n\n\n");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12);
|
||||
|
||||
|
@ -1325,7 +1325,7 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn)
|
|||
|
||||
label_txt2 = lv_label_create(sw_h3, NULL);
|
||||
lv_label_set_static_text(label_txt2, "Set the type of data verification done for backup and restore.\n"
|
||||
"Can be canceled without losing the backup/restore.\n");
|
||||
"Can be changed without losing the backup/restore.\n");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4);
|
||||
|
||||
|
@ -1461,8 +1461,8 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent)
|
|||
label_txt2 = lv_label_create(l_cont, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Set how long to show bootlogo when autoboot is enabled.\n"
|
||||
"#C7EA46 You can press# #FF8000 VOL-# #C7EA46 during that time to enter hekate's menu.#\n");
|
||||
"Sets how long to show bootlogo when autoboot is enabled.\n"
|
||||
"#C7EA46 You can press# #FF8000 VOL-# #C7EA46 during that time to enter the hekate menu.#\n");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4);
|
||||
|
||||
|
@ -1477,8 +1477,8 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent)
|
|||
label_txt2 = lv_label_create(sw_h2, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"It checks fuses and applies the patch automatically\n"
|
||||
"if higher firmware. It is now a global config and set\n"
|
||||
"This option checks fuses and applies the patch automatically\n"
|
||||
"if a higher firmwareis present. It is now a global config and set\n"
|
||||
"at auto by default. (ON: Auto)\n\n\n");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12);
|
||||
|
@ -1493,7 +1493,7 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent)
|
|||
|
||||
label_txt2 = lv_label_create(sw_h3, NULL);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"When Shutdown is used from HOS, the device wakes up after\n"
|
||||
"When Shutdown is used from Horizon OS, the device wakes up after\n"
|
||||
"15s. Enable this to automatically power off on the next\npayload injection.");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12);
|
||||
|
|
|
@ -203,7 +203,7 @@ static lv_res_t _create_mbox_hid(usb_ctxt_t *usbs)
|
|||
|
||||
lv_obj_t *lbl_tip = lv_label_create(mbox, NULL);
|
||||
lv_label_set_recolor(lbl_tip, true);
|
||||
lv_label_set_static_text(lbl_tip, "Note: To end it, press #C7EA46 L3# + #C7EA46 HOME# or remove the cable.");
|
||||
lv_label_set_static_text(lbl_tip, "Note: To end HID Emulation, press #C7EA46 L3# + #C7EA46 HOME# or remove the cable.");
|
||||
lv_obj_set_style(lbl_tip, &hint_small_style);
|
||||
|
||||
lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action);
|
||||
|
@ -282,20 +282,20 @@ static lv_res_t _create_mbox_ums(usb_ctxt_t *usbs)
|
|||
if (usbs->type == MMC_SD)
|
||||
{
|
||||
lv_label_set_static_text(lbl_tip,
|
||||
"Note: To end it, #C7EA46 safely eject# from inside the OS.\n"
|
||||
"Note: To end UMS, #C7EA46 safely eject the device# from inside your OS.\n"
|
||||
" #FFDD00 DO NOT remove the cable!#");
|
||||
}
|
||||
else
|
||||
{
|
||||
lv_label_set_static_text(lbl_tip,
|
||||
"Note: To end it, #C7EA46 safely eject# from inside the OS.\n"
|
||||
"Note: To end UMS, #C7EA46 safely eject the devuce# from inside your OS.\n"
|
||||
" #FFDD00 If it's not mounted, you might need to remove the cable!#");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lv_label_set_static_text(lbl_tip,
|
||||
"Note: To end it, #C7EA46 safely eject# from inside the OS\n"
|
||||
"Note: To end it, #C7EA46 safely eject the device# from inside your OS\n"
|
||||
" or by removing the cable!#");
|
||||
}
|
||||
lv_obj_set_style(lbl_tip, &hint_small_style);
|
||||
|
@ -333,10 +333,10 @@ static lv_res_t _create_mbox_ums_error(int error)
|
|||
switch (error)
|
||||
{
|
||||
case 1:
|
||||
lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 Error mounting SD Card!#");
|
||||
lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 Error mounting the SD Card!#");
|
||||
break;
|
||||
case 2:
|
||||
lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 No emuMMC found active!#");
|
||||
lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 No active emuMMC found!#");
|
||||
break;
|
||||
case 3:
|
||||
lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 Active emuMMC is not partition based!#");
|
||||
|
@ -982,8 +982,8 @@ static lv_res_t _create_window_unset_abit_tool(lv_obj_t *btn)
|
|||
// Check errors.
|
||||
if (total[2] || total[3])
|
||||
{
|
||||
s_printf(txt_buf, "\n\n#FFDD00 Errors: folder accesses: %d, arc bit fixes: %d!#\n"
|
||||
"#FFDD00 Filesystem should be checked for errors.#",
|
||||
s_printf(txt_buf, "\n\n#FFDD00 Errors: folder accesses: %d, archive bit fixes: %d!#\n"
|
||||
"#FFDD00 SD Card Filesystem should be checked for errors.#",
|
||||
total[2], total[3]);
|
||||
}
|
||||
|
||||
|
@ -1012,7 +1012,7 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn)
|
|||
lv_mbox_set_recolor_text(mbox, true);
|
||||
|
||||
char *txt_buf = malloc(SZ_16K);
|
||||
strcpy(txt_buf, "#FF8000 Don't touch the screen!#\n\nThe tuning process will start in ");
|
||||
strcpy(txt_buf, "#FF8000 Don't touch the screen!#\n\nThe calibration process will start in ");
|
||||
u32 text_idx = strlen(txt_buf);
|
||||
lv_mbox_set_text(mbox, txt_buf);
|
||||
|
||||
|
@ -1187,6 +1187,8 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn)
|
|||
{
|
||||
strcat(txt_buf, "#FFDD00 Unknown pkg1 version!#");
|
||||
lv_label_set_text(lb_desc, txt_buf);
|
||||
strcat(txt_buf, "#FFDD00 Try updating hekate or your CFW!#");
|
||||
lv_label_set_text(lb_desc, txt_buf);
|
||||
manual_system_maintenance(true);
|
||||
|
||||
if (!res)
|
||||
|
@ -1218,7 +1220,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn)
|
|||
{
|
||||
if (!pkg1_decrypt(pkg1_id, pkg1))
|
||||
{
|
||||
strcat(txt_buf, "#FFDD00 Pkg1 decryption failed!#\n");
|
||||
strcat(txt_buf, "#FFDD00 Package1 decryption failed!#\n");
|
||||
if (h_cfg.t210b01)
|
||||
strcat(txt_buf, "#FFDD00 Is BEK missing?#\n");
|
||||
lv_label_set_text(lb_desc, txt_buf);
|
||||
|
@ -1233,10 +1235,10 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn)
|
|||
|
||||
// Display info.
|
||||
s_printf(txt_buf + strlen(txt_buf),
|
||||
"#C7EA46 NX Bootloader size: #0x%05X\n"
|
||||
"#C7EA46 Secure monitor addr: #0x%05X\n"
|
||||
"#C7EA46 Bootloader size: #0x%05X\n"
|
||||
"#C7EA46 Secure monitor address: #0x%05X\n"
|
||||
"#C7EA46 Secure monitor size: #0x%05X\n"
|
||||
"#C7EA46 Warmboot addr: #0x%05X\n"
|
||||
"#C7EA46 Warmboot adress: #0x%05X\n"
|
||||
"#C7EA46 Warmboot size: #0x%05X\n\n",
|
||||
hdr_pk11->ldr_size, pkg1_id->secmon_base, hdr_pk11->sm_size, pkg1_id->warmboot_base, hdr_pk11->wb_size);
|
||||
|
||||
|
@ -1317,7 +1319,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn)
|
|||
pkg2_hdr_t *pkg2_hdr = pkg2_decrypt(pkg2, kb);
|
||||
if (!pkg2_hdr)
|
||||
{
|
||||
strcat(txt_buf, "#FFDD00 Pkg2 decryption failed!#");
|
||||
strcat(txt_buf, "#FFDD00 Package2 decryption failed!#");
|
||||
lv_label_set_text(lb_desc, txt_buf);
|
||||
manual_system_maintenance(true);
|
||||
|
||||
|
@ -1476,10 +1478,10 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_obj_t *label_txt2 = lv_label_create(h1, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Allows you to backup the eMMC partitions individually or as\n"
|
||||
"Allows you to backup eMMC partitions individually or as\n"
|
||||
"a whole raw image to the SD card.\n"
|
||||
"#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up. #"
|
||||
"#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46 .#");
|
||||
"#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up, with the #"
|
||||
"#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46#Filesystems");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -1493,10 +1495,10 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent)
|
|||
label_txt2 = lv_label_create(h1, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Allows you to restore the eMMC/emuMMC partitions individually\n"
|
||||
"Allows you to restore eMMC/emuMMC partitions individually\n"
|
||||
"or as a whole raw image from the SD card.\n"
|
||||
"#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up. #"
|
||||
"#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46 .#");
|
||||
"#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up, with the #"
|
||||
"#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46#Filesystems");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -1532,7 +1534,7 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_label_set_recolor(label_txt4, true);
|
||||
lv_label_set_static_text(label_txt4,
|
||||
"Allows you to partition the SD Card for using it with #C7EA46 emuMMC#,\n"
|
||||
"#C7EA46 Android# and #C7EA46 Linux#. You can also flash Linux and Android.\n");
|
||||
"#C7EA46 Android# and #C7EA46 Linux#. Also allows writing L4T Images.\n");
|
||||
lv_obj_set_style(label_txt4, &hint_small_style);
|
||||
lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -1611,8 +1613,8 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent)
|
|||
label_txt2 = lv_label_create(h1, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Allows you to calibrate the touchscreen module.\n"
|
||||
"#FF8000 This fixes any issues with touchscreen in Nyx and HOS.#");
|
||||
"Allows you to calibrate the touchscreen.\n"
|
||||
"#FF8000 This fixes issues with the touchscreen in Nyx and Horizon OS.#");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
|
||||
|
@ -1666,11 +1668,11 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent)
|
|||
s_printf(txt_buf,
|
||||
"Allows you to enter RCM without using #C7EA46 VOL+# & #C7EA46 HOME# (jig).\n"
|
||||
"#FF8000 It can restore all versions of AutoRCM whenever requested.#\n"
|
||||
"#FF3C28 This corrupts the BCT and you can't boot without a custom#\n"
|
||||
"#FF3C28 bootloader.#");
|
||||
"#FF3C28 This corrupts the BCT, so you need to inject a custom bootloader to boot#\n"
|
||||
"#FF3C28 A BOOT0 / BOOT1 Backup is recommended before enabling this.#");
|
||||
|
||||
if (h_cfg.rcm_patched)
|
||||
strcat(txt_buf, " #FF8000 This is disabled because this unit is patched!#");
|
||||
strcat(txt_buf, " #FF8000 This is disabled because this unit is patched, to prevent bricks!#");
|
||||
|
||||
lv_obj_t *label_txt4 = lv_label_create(h2, NULL);
|
||||
lv_label_set_recolor(label_txt4, true);
|
||||
|
@ -1694,8 +1696,8 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent)
|
|||
label_txt2 = lv_label_create(h2, NULL);
|
||||
lv_label_set_recolor(label_txt2, true);
|
||||
lv_label_set_static_text(label_txt2,
|
||||
"Allows you to dump and decrypt pkg1 and pkg2 and further\n"
|
||||
"split it up into their individual parts. It also dumps the kip1.");
|
||||
"Allows you to dump and decrypt Package1 and Package2 and further\n"
|
||||
"split it up into their individual parts. It also dumps kip1.");
|
||||
lv_obj_set_style(label_txt2, &hint_small_style);
|
||||
lv_obj_align(label_txt2, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3);
|
||||
}
|
||||
|
@ -1721,7 +1723,7 @@ void create_tab_tools(lv_theme_t *th, lv_obj_t *parent)
|
|||
lv_tabview_set_btns_pos(tv, LV_TABVIEW_BTNS_POS_BOTTOM);
|
||||
|
||||
lv_obj_t *tab1= lv_tabview_add_tab(tv, "eMMC "SYMBOL_DOT" SD Partitions "SYMBOL_DOT" USB");
|
||||
lv_obj_t *tab2 = lv_tabview_add_tab(tv, "Arch bit "SYMBOL_DOT" RCM "SYMBOL_DOT" Touch "SYMBOL_DOT" Pkg1/2");
|
||||
lv_obj_t *tab2 = lv_tabview_add_tab(tv, "Archive bit "SYMBOL_DOT" RCM "SYMBOL_DOT" Touch "SYMBOL_DOT" Pkg1/2");
|
||||
|
||||
lv_obj_t *line_sep = lv_line_create(tv, NULL);
|
||||
static const lv_point_t line_pp[] = { {0, 0}, { 0, LV_DPI / 4} };
|
||||
|
|
Loading…
Reference in a new issue