diff --git a/fusee/fusee-secondary/src/emummc_cfg.h b/fusee/fusee-secondary/src/emummc_cfg.h index 23d611439..0099bd2d8 100644 --- a/fusee/fusee-secondary/src/emummc_cfg.h +++ b/fusee/fusee-secondary/src/emummc_cfg.h @@ -88,6 +88,9 @@ typedef enum { FS_VER_10_2_0, FS_VER_10_2_0_EXFAT, + FS_VER_11_0_0, + FS_VER_11_0_0_EXFAT, + FS_VER_MAX, } emummc_fs_ver_t; diff --git a/fusee/fusee-secondary/src/ips.c b/fusee/fusee-secondary/src/ips.c index 18c0cac6a..059e64150 100644 --- a/fusee/fusee-secondary/src/ips.c +++ b/fusee/fusee-secondary/src/ips.c @@ -423,6 +423,9 @@ static const uint8_t g_fs_hashes[FS_VER_MAX][0x8] = { "\xA9\x52\xB6\x57\xAD\xF9\xC2\xBA", /* FS_VER_10_2_0 */ "\x16\x0D\x3E\x10\x4E\xAD\x61\x76", /* FS_VER_10_2_0_EXFAT */ + + "\xE3\x99\x15\x6E\x84\x4E\xB0\xAA", /* FS_VER_11_0_0 */ + "\x0B\xA1\x5B\xB3\x04\xB5\x05\x63", /* FS_VER_11_0_0_EXFAT */ }; kip1_header_t *apply_kip_ips_patches(kip1_header_t *kip, size_t kip_size, emummc_fs_ver_t *out_fs_ver) { diff --git a/fusee/fusee-secondary/src/nxboot.c b/fusee/fusee-secondary/src/nxboot.c index 838927a35..86af0d34a 100644 --- a/fusee/fusee-secondary/src/nxboot.c +++ b/fusee/fusee-secondary/src/nxboot.c @@ -239,7 +239,9 @@ static bool is_nca_present(const char *nca_name) { static uint32_t nxboot_get_specific_target_firmware(uint32_t target_firmware){ #define CHECK_NCA(NCA_ID, VERSION) do { if (is_nca_present(NCA_ID)) { return ATMOSPHERE_TARGET_FIRMWARE_##VERSION; } } while(0) - if (target_firmware >= ATMOSPHERE_TARGET_FIRMWARE_10_0_0) { + if (target_firmware >= ATMOSPHERE_TARGET_FIRMWARE_11_0_0) { + CHECK_NCA("594c90bcdbcccad6b062eadba0cd0e7e", 11_0_0); + } else if (target_firmware >= ATMOSPHERE_TARGET_FIRMWARE_10_0_0) { CHECK_NCA("26325de4db3909e0ef2379787c7e671d", 10_2_0); CHECK_NCA("5077973537f6735b564dd7475b779f87", 10_1_1); /* Exclusive to China. */ CHECK_NCA("fd1faed0ca750700d254c0915b93d506", 10_1_0); @@ -337,6 +339,8 @@ static uint32_t nxboot_get_target_firmware(const void *package1loader) { return ATMOSPHERE_TARGET_FIRMWARE_9_1_0; } else if (memcmp(package1loader_header->build_timestamp, "20200303", 8) == 0) { return ATMOSPHERE_TARGET_FIRMWARE_10_0_0; + } else if (memcmp(package1loader_header->build_timestamp, "20201030", 8) == 0) { + return ATMOSPHERE_TARGET_FIRMWARE_11_0_0; } else { fatal_error("[NXBOOT] Unable to identify package1!\n"); }