From e9a830f3173d65ef3b0539ce36862d68e9caae5c Mon Sep 17 00:00:00 2001 From: Jack Date: Sun, 17 Apr 2022 13:35:48 +0800 Subject: [PATCH] [MakeROM] Fix InitialData generation bugs (#121) * [makerom] Correctly initialize prod initial_data_key_x * [makerom] Properly select CCI CryptoType when not manually specified. * [makerom] Bump version to v0.18.2 --- makerom/src/cardinfo.c | 13 +++++++++---- makerom/src/keyset.c | 2 +- makerom/src/ncsd.c | 2 +- makerom/src/user_settings.c | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/makerom/src/cardinfo.c b/makerom/src/cardinfo.c index 29d1c069..ab782920 100644 --- a/makerom/src/cardinfo.c +++ b/makerom/src/cardinfo.c @@ -135,10 +135,15 @@ int SetCardInfoBitmask(cardinfo_hdr *hdr, cci_settings *set) str = set->rsf->CardInfo.CryptoType; if(!str) { - if(set->options.useExternalSdkCardInfo) - bitmask |= (3 << 6); - else - bitmask |= 0; + u32 val = 0; + if(set->keys->keyset == pki_DEVELOPMENT) { + val = 3; + } + else{ + val = 0; + } + + bitmask |= (val << 6); } else{ int val = strtol(str,NULL,10); diff --git a/makerom/src/keyset.c b/makerom/src/keyset.c index b8cd3e08..5adb4b0e 100644 --- a/makerom/src/keyset.c +++ b/makerom/src/keyset.c @@ -150,7 +150,7 @@ int LoadKeysFromResources(keys_struct *keys) SetNcchKeyX(keys, prod_unfixed_ncch_keyX[i],i); // CCI - SetCciInitialDataKeyX(keys, dev_initial_data_keyx); + SetCciInitialDataKeyX(keys, prod_initial_data_keyx); /* RSA Keys */ // CIA diff --git a/makerom/src/ncsd.c b/makerom/src/ncsd.c index 697f52ea..0fe9c4e6 100644 --- a/makerom/src/ncsd.c +++ b/makerom/src/ncsd.c @@ -581,7 +581,7 @@ int GenCciHdr(cci_settings *set) // Sign Header if (Rsa2048Key_CanSign(&set->keys->rsa.cciCfa) == false) { - printf("[NCSD WARNING] Failed to sign header\n"); + printf("[NCSD WARNING] Failed to sign header (key was incomplete)\n"); memset(hdr->signature, 0xFF, 0x100); return 0; } diff --git a/makerom/src/user_settings.c b/makerom/src/user_settings.c index 2ff09fec..c1b45d44 100644 --- a/makerom/src/user_settings.c +++ b/makerom/src/user_settings.c @@ -910,7 +910,7 @@ void PrintNoNeedParam(char *arg) void DisplayBanner(void) { - printf("CTR MAKEROM v0.18.1 (C) 3DSGuy 2022\n"); + printf("CTR MAKEROM v0.18.2 (C) 3DSGuy 2022\n"); printf("Built: %s %s\n\n", __TIME__, __DATE__); }