diff --git a/src/elf2kip.c b/src/elf2kip.c index 005957c..237d62c 100644 --- a/src/elf2kip.c +++ b/src/elf2kip.c @@ -554,6 +554,7 @@ int ParseKipConfiguration(const char *json, KipHeader *kip_hdr) { } int allow_debug = 0; int force_debug = 0; + int force_debug_prod = 0; if (!cJSON_GetBoolean(value, "allow_debug", &allow_debug)) { status = 0; goto PARSE_CAPS_END; @@ -562,7 +563,11 @@ int ParseKipConfiguration(const char *json, KipHeader *kip_hdr) { status = 0; goto PARSE_CAPS_END; } - desc = (allow_debug & 1) | ((force_debug & 1) << 1); + if (!cJSON_GetBoolean(value, "force_debug_prod", &force_debug_prod)) { + status = 0; + goto PARSE_CAPS_END; + } + desc = (allow_debug & 1) | ((force_debug_prod & 1) << 1) | ((force_debug & 1) << 2); kip_hdr->Capabilities[cur_cap++] = (u32)((desc << 17) | (0xFFFF)); } else { fprintf(stderr, "Error: unknown capability %s\n", type_str); diff --git a/src/npdmtool.c b/src/npdmtool.c index 0481b2d..eec7acf 100644 --- a/src/npdmtool.c +++ b/src/npdmtool.c @@ -819,6 +819,7 @@ int CreateNpdm(const char *json, void **dst, u32 *dst_size) { } int allow_debug = 0; int force_debug = 0; + int force_debug_prod = 0; if (!cJSON_GetBoolean(value, "allow_debug", &allow_debug)) { status = 0; goto NPDM_BUILD_END; @@ -827,7 +828,11 @@ int CreateNpdm(const char *json, void **dst, u32 *dst_size) { status = 0; goto NPDM_BUILD_END; } - desc = (allow_debug & 1) | ((force_debug & 1) << 1); + if (!cJSON_GetBoolean(value, "force_debug_prod", &force_debug_prod)) { + status = 0; + goto NPDM_BUILD_END; + } + desc = (allow_debug & 1) | ((force_debug_prod & 1) << 1) | ((force_debug & 1) << 2); caps[cur_cap++] = (u32)((desc << 17) | (0xFFFF)); } }