From 86bb96e01a56c9d5c8231e253a9f9c6c32ba3d91 Mon Sep 17 00:00:00 2001 From: CTCaer Date: Sun, 22 Jun 2025 14:19:34 +0300 Subject: [PATCH] nyx: part mgr: only copy metadata in mbr if they exist --- nyx/nyx_gui/frontend/gui_tools_partition_manager.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nyx/nyx_gui/frontend/gui_tools_partition_manager.c b/nyx/nyx_gui/frontend/gui_tools_partition_manager.c index b74a9c62..644dae65 100644 --- a/nyx/nyx_gui/frontend/gui_tools_partition_manager.c +++ b/nyx/nyx_gui/frontend/gui_tools_partition_manager.c @@ -425,6 +425,16 @@ static void _prepare_and_flash_mbr_gpt() mbr_t mbr; u8 random_number[16]; + // Read current MBR. + sdmmc_storage_read(storage, 0, 1, &mbr); + + // Copy over metadata if they exist. + if (*(u32 *)&part_info.mbr_old.bootstrap[0x80]) + memcpy(&mbr.bootstrap[0x80], &part_info.mbr_old.bootstrap[0x80], 64); + if (*(u32 *)&part_info.mbr_old.bootstrap[0xE0]) + memcpy(&mbr.bootstrap[0xE0], &part_info.mbr_old.bootstrap[0xE0], 208); + + // Clear the first 16MB. memset((void *)SDMMC_UPPER_BUFFER, 0, AU_ALIGN_BYTES); s32 l4t_idx = -1;