mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-23 02:16:41 +00:00
fss: Disallow Mariko boot on Atmosphere< 0.17.0
Trying to boot on lower Atmosphere versions can have serious implications.
This commit is contained in:
parent
d287d40208
commit
d4d6730c20
1 changed files with 15 additions and 0 deletions
|
@ -36,6 +36,7 @@ extern bool is_ipl_updated(void *buf, char *path, bool force);
|
||||||
// FSS0 Magic and Meta header offset.
|
// FSS0 Magic and Meta header offset.
|
||||||
#define FSS0_MAGIC 0x30535346
|
#define FSS0_MAGIC 0x30535346
|
||||||
#define FSS0_META_OFFSET 0x4
|
#define FSS0_META_OFFSET 0x4
|
||||||
|
#define FSS0_VERSION_0_17_0 0x110000
|
||||||
|
|
||||||
// FSS0 Content Types.
|
// FSS0 Content Types.
|
||||||
#define CNT_TYPE_FSP 0
|
#define CNT_TYPE_FSP 0
|
||||||
|
@ -148,12 +149,25 @@ int parse_fss(launch_ctxt_t *ctxt, const char *path, fss0_sept_t *sept_ctxt)
|
||||||
// Check if valid FSS0 and parse it.
|
// Check if valid FSS0 and parse it.
|
||||||
if (fss_meta->magic == FSS0_MAGIC)
|
if (fss_meta->magic == FSS0_MAGIC)
|
||||||
{
|
{
|
||||||
|
bool mariko_not_supported = false;
|
||||||
|
if (h_cfg.t210b01 && (fss_meta->version < FSS0_VERSION_0_17_0))
|
||||||
|
{
|
||||||
|
gfx_con.mute = false;
|
||||||
|
mariko_not_supported = true;
|
||||||
|
}
|
||||||
|
|
||||||
gfx_printf("Found FSS0, Atmosphere %d.%d.%d-%08x\n"
|
gfx_printf("Found FSS0, Atmosphere %d.%d.%d-%08x\n"
|
||||||
"Max HOS supported: %d.%d.%d\n"
|
"Max HOS supported: %d.%d.%d\n"
|
||||||
"Unpacking and loading components.. ",
|
"Unpacking and loading components.. ",
|
||||||
fss_meta->version >> 24, (fss_meta->version >> 16) & 0xFF, (fss_meta->version >> 8) & 0xFF, fss_meta->git_rev,
|
fss_meta->version >> 24, (fss_meta->version >> 16) & 0xFF, (fss_meta->version >> 8) & 0xFF, fss_meta->git_rev,
|
||||||
fss_meta->hos_ver >> 24, (fss_meta->hos_ver >> 16) & 0xFF, (fss_meta->hos_ver >> 8) & 0xFF);
|
fss_meta->hos_ver >> 24, (fss_meta->hos_ver >> 16) & 0xFF, (fss_meta->hos_ver >> 8) & 0xFF);
|
||||||
|
|
||||||
|
if (mariko_not_supported)
|
||||||
|
{
|
||||||
|
EPRINTF("Mariko not supported on < 0.17.0!");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
if (!sept_ctxt)
|
if (!sept_ctxt)
|
||||||
{
|
{
|
||||||
ctxt->atmosphere = true;
|
ctxt->atmosphere = true;
|
||||||
|
@ -255,6 +269,7 @@ out:
|
||||||
return (!sept_ctxt ? 1 : sept_used);
|
return (!sept_ctxt ? 1 : sept_used);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fail:
|
||||||
f_close(&fp);
|
f_close(&fp);
|
||||||
free(fss);
|
free(fss);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue