From: longpanda Date: Wed, 14 Apr 2021 02:26:27 +0000 (+0800) Subject: update vtoytool X-Git-Tag: v1.0.41~6 X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/commitdiff_plain/0aff8f51096c9068cb1964e27be5f3d7638670dc?ds=sidebyside update vtoytool --- diff --git a/VtoyTool/vtoydump.c b/VtoyTool/vtoydump.c index d33151a..34c1ee7 100644 --- a/VtoyTool/vtoydump.c +++ b/VtoyTool/vtoydump.c @@ -435,6 +435,33 @@ static int vtoy_printf_iso_path(ventoy_os_param *param) return 0; } +static int vtoy_check_device(ventoy_os_param *param, const char *device) +{ + unsigned long long size; + uint8_t vtguid[16] = {0}; + uint8_t vtsig[4] = {0}; + + debug("vtoy_check_device for <%s>\n", device); + + size = vtoy_get_disk_size_in_byte(device); + vtoy_get_disk_guid(device, vtguid, vtsig); + + debug("param->vtoy_disk_size=%llu size=%llu\n", + (unsigned long long)param->vtoy_disk_size, (unsigned long long)size); + + if (memcmp(vtguid, param->vtoy_disk_guid, 16) == 0 && + memcmp(vtsig, param->vtoy_disk_signature, 4) == 0) + { + debug("<%s> is right ventoy disk\n", device); + return 0; + } + else + { + debug("<%s> is NOT right ventoy disk\n", device); + return 1; + } +} + static int vtoy_print_os_param(ventoy_os_param *param, char *diskname) { int cnt = 0; @@ -442,16 +469,20 @@ static int vtoy_print_os_param(ventoy_os_param *param, char *diskname) const char *fs; cnt = vtoy_find_disk_by_size(param->vtoy_disk_size, diskname); - if (cnt > 1) + debug("find disk by size %llu, cnt=%d...\n", (unsigned long long)param->vtoy_disk_size, cnt); + if (1 == cnt) { - cnt = vtoy_find_disk_by_guid(param, diskname); + if (vtoy_check_device(param, diskname) != 0) + { + cnt = 0; + } } - else if (cnt == 0) + else { cnt = vtoy_find_disk_by_guid(param, diskname); - debug("find 0 disk by size, try with guid cnt=%d...\n", cnt); + debug("find disk by guid cnt=%d...\n", cnt); } - + if (param->vtoy_disk_part_type < ventoy_fs_max) { fs = g_ventoy_fs[param->vtoy_disk_part_type]; @@ -472,33 +503,6 @@ static int vtoy_print_os_param(ventoy_os_param *param, char *diskname) } } -static int vtoy_check_device(ventoy_os_param *param, const char *device) -{ - unsigned long long size; - uint8_t vtguid[16] = {0}; - uint8_t vtsig[4] = {0}; - - debug("vtoy_check_device for <%s>\n", device); - - size = vtoy_get_disk_size_in_byte(device); - vtoy_get_disk_guid(device, vtguid, vtsig); - - debug("param->vtoy_disk_size=%llu size=%llu\n", - (unsigned long long)param->vtoy_disk_size, (unsigned long long)size); - - if (memcmp(vtguid, param->vtoy_disk_guid, 16) == 0 && - memcmp(vtsig, param->vtoy_disk_signature, 4) == 0) - { - debug("<%s> is right ventoy disk\n", device); - return 0; - } - else - { - debug("<%s> is NOT right ventoy disk\n", device); - return 1; - } -} - /* * Find disk and image path from ventoy runtime data. * By default data is read from phymem(legacy bios) or efivar(UEFI), if -f is input, data is read from file. diff --git a/VtoyTool/vtoytool/00/vtoytool_32 b/VtoyTool/vtoytool/00/vtoytool_32 index a9e11f8..6cda86b 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_32 and b/VtoyTool/vtoytool/00/vtoytool_32 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_64 b/VtoyTool/vtoytool/00/vtoytool_64 index 52a4e56..1acd940 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_64 and b/VtoyTool/vtoytool/00/vtoytool_64 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_aa64 b/VtoyTool/vtoytool/00/vtoytool_aa64 index c342a79..9a429bc 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_aa64 and b/VtoyTool/vtoytool/00/vtoytool_aa64 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_m64e b/VtoyTool/vtoytool/00/vtoytool_m64e index 35098d7..3fd6919 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_m64e and b/VtoyTool/vtoytool/00/vtoytool_m64e differ