mirror of
https://github.com/pbatard/rufus.git
synced 2026-07-08 22:45:39 +00:00
Compare commits
3 commits
v4.15_BETA
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d8fbf9830 |
||
|
|
eedeaea75f |
||
|
|
2b5b6d2d7c |
19 changed files with 138 additions and 51 deletions
2
.github/workflows/codeql.yml
vendored
2
.github/workflows/codeql.yml
vendored
|
|
@ -41,7 +41,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
|
|
|
|||
2
.github/workflows/coverity.yml
vendored
2
.github/workflows/coverity.yml
vendored
|
|
@ -28,7 +28,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: recursive
|
||||
|
|
|
|||
2
.github/workflows/mingw.yml
vendored
2
.github/workflows/mingw.yml
vendored
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
upx
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: recursive
|
||||
|
|
|
|||
2
.github/workflows/setup.yml
vendored
2
.github/workflows/setup.yml
vendored
|
|
@ -19,7 +19,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Add MSBuild to PATH
|
||||
uses: microsoft/setup-msbuild@v3
|
||||
|
|
|
|||
2
.github/workflows/vs2026.yml
vendored
2
.github/workflows/vs2026.yml
vendored
|
|
@ -40,7 +40,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: recursive
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@
|
|||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
|
|
@ -217,7 +217,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
|
|
@ -238,7 +238,7 @@
|
|||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
|
@ -257,7 +257,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
o Version 4.15 (2026.06.??)
|
||||
o Version 4.15 (2026.06.30)
|
||||
Add RISC-V 64 support to UEFI:NTFS
|
||||
Improve the guards for using the "silent" option
|
||||
Improve the guards for using the "silent" Windows installation option
|
||||
Improve the ability to cancel during write retries
|
||||
Improve progress reporting for compressed image extraction
|
||||
Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
|
||||
Fix "silent" Windows installation failing at 75% in most cases
|
||||
Fix a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
|
||||
Fix the first WUE option always being checked by default
|
||||
Fix first WUE option always being checked by default
|
||||
Fix an infinite loop when using Windows ISOs that contain multiple WIMs
|
||||
Fix "Enable runtime UEFI media validation" checkbox not always being properly enabled
|
||||
Other WUE improvements/fixes for OneDrive removal and username validation (with thanks to @christian8641)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
• Pakeitimų žurnalas: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus adalah utiliti yang membantu memformat dan mencipta pemacu kilat USB boot, seperti pemacu pen/kekunci USB, kayu memori, dan lain-lain.
|
||||
• Laman rasmi: https://rufus.ie
|
||||
• Kod Sumber: https://github.com/pbatard/rufus
|
||||
• ChangeLog: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende.
|
||||
• Log Perubahan: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende.
|
||||
• Offisiell webside: https://rufus.ie
|
||||
• Kildekode: https://github.com/pbatard/rufus
|
||||
• Endringslogg: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus ابزاری است که به فرمت و ایجاد درایوهای فلش USB قابل بوت، مانند کلیدهای USB/pendrives، مموری استیک ها و غیره به شما کمک می کند.
|
||||
|
|
@ -114,19 +114,17 @@
|
|||
• Trang web chính thức: https://rufus.ie
|
||||
• Mã nguồn: https://github.com/pbatard/rufus
|
||||
• Nhật ký thay đổi: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt"
|
||||
"ReleaseNotes","3","Text","• Windows User Experience improvements:
|
||||
• - Add a ""Quality of Life"" option, to disable Teams, Outlook, Copilot and other Microsoft forced nuisances
|
||||
• - Add a Silent installation option, that automatically, and WITHOUT PROMPT, installs Windows on the first detected disk
|
||||
• - Add an option to copy 'SkuSiPolicy.p7b' to the ESP on installation (please refer to KB5042562 for more info)
|
||||
• - Add tooltips for all the dialog options
|
||||
• Add limited support for El-Torito UEFI image extraction (Mostly for Dell BIOS update ISOs)
|
||||
• Improve error report when the user tries to use an image that resides on the target drive
|
||||
• Improve the UEFI:NTFS partition label to make the install media more explicit during Windows Setup disk partitioning
|
||||
• Improve support for Bazzite and other Fedora derivatives that don't follow EFI conventions
|
||||
• Improve detection and exclusion of the new Bitdefender hidden VHDs
|
||||
• Improve reporting of GRUB and Isolinux MBRs
|
||||
• Fix potential errors during creation of Windows To Go media, due to the use of new versions of bcdboot
|
||||
• Fix errors with local accounts that start or end with whitespaces",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"ReleaseNotes","3","Text","• Add RISC-V 64 support to UEFI:NTFS
|
||||
• Improve the guards for using the ""silent"" Windows installation option
|
||||
• Improve the ability to cancel during write retries
|
||||
• Improve progress reporting for compressed image extraction
|
||||
• Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
|
||||
• Fix ""silent"" Windows installation failing at 75% in most cases
|
||||
• Fix a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
|
||||
• Fix first WUE option always being checked by default
|
||||
• Fix an infinite loop when using Windows ISOs that contain multiple WIMs
|
||||
• Fix ""Enable runtime UEFI media validation"" checkbox not always being properly enabled
|
||||
• Other WUE improvements/fixes for OneDrive removal and username validation (with thanks to @christian8641)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"Title","4","Text","Rufus",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"ShortTitle","5","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"SortTitle","6","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
|
|
|
|||
|
|
|
@ -7,4 +7,4 @@ libbled_a_SOURCES = bled.c bled_size.c crc32.c data_align.c data_extract_all.c d
|
|||
init_handle.c open_transformer.c seek_by_jump.c seek_by_read.c xz_dec_bcj.c xz_dec_lzma2.c xz_dec_stream.c \
|
||||
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
|
||||
zstd_error_private.c
|
||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -Wno-undef -Wno-strict-aliasing
|
||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ libbled_a_SOURCES = bled.c bled_size.c crc32.c data_align.c data_extract_all.c d
|
|||
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
|
||||
zstd_error_private.c
|
||||
|
||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -Wno-undef -Wno-strict-aliasing
|
||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
|
|
|
|||
|
|
@ -254,6 +254,9 @@ typedef struct transformer_state_t {
|
|||
} magic;
|
||||
} transformer_state_t;
|
||||
|
||||
typedef int64_t(*unpacker_t)(transformer_state_t* xstate);
|
||||
typedef int64_t(*get_uncompressed_size_t)(int fd);
|
||||
int64_t get_uncompressed_size(int fd, int type);
|
||||
void init_transformer_state(transformer_state_t *xstate) FAST_FUNC;
|
||||
ssize_t transformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
|
||||
ssize_t xtransformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
|
||||
|
|
|
|||
|
|
@ -15,9 +15,6 @@
|
|||
#include "bb_archive.h"
|
||||
#include "bled.h"
|
||||
|
||||
typedef int64_t(*unpacker_t)(transformer_state_t *xstate);
|
||||
extern int64_t get_uncompressed_size(int fd, int type);
|
||||
|
||||
/* Globals */
|
||||
smallint bb_got_signal;
|
||||
uint64_t bb_total_rb, bb_total_wb;
|
||||
|
|
@ -303,6 +300,34 @@ int64_t bled_uncompress_from_buffer_to_buffer(const char* src, const size_t src_
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* Get the decompressed size of file 'src', compressed using 'type' */
|
||||
int64_t bled_get_uncompressed_size(const char* src, int type)
|
||||
{
|
||||
int fd = -1;
|
||||
int64_t ret = -1;
|
||||
|
||||
if (!bled_initialized) {
|
||||
bb_error_msg("The library has not been initialized");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((type < 0) || (type >= BLED_COMPRESSION_MAX)) {
|
||||
bb_error_msg("Unsupported compression format");
|
||||
goto err;
|
||||
}
|
||||
|
||||
fd = _openU(src, _O_RDONLY | _O_BINARY, 0);
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
|
||||
ret = get_uncompressed_size(fd, type);
|
||||
|
||||
err:
|
||||
if (fd > 0)
|
||||
_close(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Initialize the library.
|
||||
* When the parameters are not NULL or zero you can:
|
||||
* - specify the buffer size to use (must be larger than 256KB and a power of two)
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@
|
|||
#include "bb_archive.h"
|
||||
#include "bled.h"
|
||||
|
||||
typedef int64_t(*get_uncompressed_size_t)(int fd);
|
||||
|
||||
/* -------------------------------------------------------------------------
|
||||
* Internal helpers
|
||||
* ---------------------------------------------------------------------- */
|
||||
|
|
@ -702,6 +700,60 @@ static int64_t get_uncompress_size_zstd(int fd)
|
|||
return (int64_t)size;
|
||||
}
|
||||
|
||||
#if defined(BLED_EXPECT_DISK_IMAGE)
|
||||
extern progress_t bled_progress;
|
||||
extern unpacker_t unpacker[BLED_COMPRESSION_MAX];
|
||||
int64_t get_uncompressed_size_from_disk_image(int fd, int type)
|
||||
{
|
||||
progress_t old_bled_progress = bled_progress;
|
||||
int64_t size = DECOMP_SIZE_UNKNOWN;
|
||||
uint8_t buf[8192];
|
||||
transformer_state_t xstate;
|
||||
|
||||
bled_progress = NULL; /* Can't have progress on this operation */
|
||||
init_transformer_state(&xstate);
|
||||
xstate.src_fd = fd;
|
||||
xstate.dst_fd = -1;
|
||||
xstate.mem_output_buf = buf;
|
||||
xstate.mem_output_size = 0;
|
||||
xstate.mem_output_size_max = sizeof(buf);
|
||||
|
||||
if (setjmp(bb_error_jmp))
|
||||
goto out;
|
||||
|
||||
lseek(fd, 0, SEEK_SET);
|
||||
size = unpacker[type](&xstate);
|
||||
if (size != sizeof(buf) || buf[0x1fe] != 0x55 || buf[0x1ff] != 0xaa) {
|
||||
size = DECOMP_SIZE_UNKNOWN;
|
||||
goto out;
|
||||
}
|
||||
if (buf[0x1be] == 0x00 && buf[0x1c2] == 0xee) {
|
||||
/*
|
||||
* Protective EFI MBR => look for the primary GPT, which'll also give us the sector size
|
||||
* The address of the backup GPT is assumed to be the last LBA for the disk
|
||||
*/
|
||||
if (memcmp("EFI PART", &buf[0x200], 8) == 0)
|
||||
size = (get_le64(&buf[0x220]) + 1) * 512;
|
||||
else if (memcmp("EFI PART", &buf[0x1000], 8) == 0)
|
||||
size = (get_le64(&buf[0x1020]) + 1) * 4096;
|
||||
else
|
||||
bb_error_msg("Could not locate primary GPT");
|
||||
} else if (buf[0x1be] == 0x80) {
|
||||
/* Regular bootable MBR => compute the max LBA (using primary partitions only) */
|
||||
uint32_t max_lba = 1;
|
||||
for (int i = 0; i < 4; i++)
|
||||
max_lba = MAX(max_lba, get_le32(&buf[0x1be + 0x10 * i + 8]) + get_le32(&buf[0x1be + 0x10 * i + 0xc]));
|
||||
size = (max_lba + 1) * 512; /* assume 512-byte sectors for anything MBR based */
|
||||
if (size < 4096)
|
||||
size = DECOMP_SIZE_UNKNOWN;
|
||||
}
|
||||
|
||||
out:
|
||||
bled_progress = old_bled_progress;
|
||||
return size;
|
||||
}
|
||||
#endif
|
||||
|
||||
static get_uncompressed_size_t _get_uncompressed_size[BLED_COMPRESSION_MAX] = {
|
||||
get_uncompress_size_none,
|
||||
get_uncompress_size_zip,
|
||||
|
|
@ -718,13 +770,11 @@ static get_uncompressed_size_t _get_uncompressed_size[BLED_COMPRESSION_MAX] = {
|
|||
/* Get the decompressed size of file 'fd', compressed using 'type' */
|
||||
int64_t get_uncompressed_size(int fd, int type)
|
||||
{
|
||||
int64_t size = -1;
|
||||
|
||||
if ((type < 0) || (type >= BLED_COMPRESSION_MAX)) {
|
||||
bb_error_msg("Unsupported compression format");
|
||||
return -1;
|
||||
}
|
||||
size = _get_uncompressed_size[type](fd);
|
||||
int64_t size = _get_uncompressed_size[type](fd);
|
||||
#if defined(BLED_EXPECT_DISK_IMAGE)
|
||||
if (size < 0)
|
||||
size = get_uncompressed_size_from_disk_image(fd, type);
|
||||
#endif
|
||||
|
||||
/* Make sure to reset our file pointer */
|
||||
lseek(fd, 0, SEEK_SET);
|
||||
|
|
|
|||
|
|
@ -119,8 +119,8 @@ unpack_zstd_stream_inner(transformer_state_t *xstate,
|
|||
IF_DESKTOP(long long) int FAST_FUNC
|
||||
unpack_zstd_stream(transformer_state_t *xstate)
|
||||
{
|
||||
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), 1024),
|
||||
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), 1024);
|
||||
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), SECTOR_ALIGNMENT),
|
||||
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), SECTOR_ALIGNMENT);
|
||||
|
||||
IF_DESKTOP(long long) int result;
|
||||
void *out_buff;
|
||||
|
|
|
|||
1
src/db.h
1
src/db.h
|
|
@ -84,6 +84,7 @@ static uint8_t sha256db[] = {
|
|||
0x82, 0x11, 0xfa, 0xe8, 0xaf, 0xf0, 0x23, 0x3f, 0x05, 0xa8, 0xb7, 0x8c, 0x58, 0x15, 0x25, 0xe2, 0x81, 0xac, 0x98, 0x23, 0x54, 0xa8, 0xc4, 0x3b, 0xb4, 0x96, 0x5e, 0x61, 0xdc, 0x98, 0xb4, 0x62, // syslinux-6.03/pre8/ldlinux.bss
|
||||
0x83, 0x57, 0xaa, 0xd3, 0x6a, 0xec, 0x68, 0x21, 0xcb, 0xf2, 0x17, 0x4d, 0xb5, 0xd2, 0x09, 0xef, 0x2c, 0xd2, 0x62, 0x88, 0x12, 0x39, 0xeb, 0xc3, 0xf4, 0xc1, 0xcf, 0x55, 0xab, 0x10, 0xee, 0x55, // grub-2.12~rc1/core.img
|
||||
0x83, 0x9b, 0xd0, 0x8a, 0xcb, 0x68, 0x47, 0xd6, 0x55, 0x07, 0xf1, 0x4e, 0x7a, 0x55, 0x6e, 0x91, 0xe6, 0x12, 0x9c, 0x47, 0x86, 0x3f, 0x7d, 0x61, 0xe2, 0xce, 0x6d, 0xb7, 0x8d, 0xf3, 0xd2, 0x3f, // syslinux-6.03/pre9/ldlinux.bss
|
||||
0x84, 0x73, 0x50, 0x4a, 0x84, 0x9c, 0x89, 0x83, 0x29, 0xcb, 0x90, 0x92, 0xf2, 0x5e, 0x26, 0x9d, 0x4e, 0x19, 0x3b, 0xc7, 0x72, 0xf8, 0x48, 0x9f, 0xa2, 0xc5, 0xd5, 0xa5, 0xd2, 0xd8, 0x87, 0x74, // grub-2.12-nonstandard-gdie/core.img
|
||||
0x87, 0xaa, 0x91, 0xf8, 0x7f, 0xba, 0x5f, 0x31, 0x79, 0x43, 0x08, 0xda, 0xa4, 0xa4, 0x8d, 0xad, 0x6c, 0xf6, 0xfa, 0x34, 0x26, 0x4d, 0x66, 0xb8, 0x84, 0xb8, 0xb9, 0xdc, 0x96, 0x42, 0xed, 0x86, // syslinux-5.02/ldlinux.sys
|
||||
0x88, 0x14, 0xe5, 0x76, 0xab, 0xc1, 0xaa, 0x44, 0xdd, 0xe9, 0x43, 0xb0, 0xca, 0xae, 0xe8, 0x33, 0xa5, 0x81, 0x01, 0x42, 0x61, 0x4a, 0xde, 0xeb, 0x4c, 0xc7, 0x25, 0xe7, 0x8a, 0x50, 0x45, 0xb7, // syslinux-6.03/ldlinux.bss
|
||||
0x8b, 0x93, 0x7e, 0x5e, 0x8b, 0xae, 0x5a, 0xf8, 0xc8, 0x95, 0x63, 0xc0, 0x0e, 0x9c, 0xaf, 0xc6, 0xcd, 0x7c, 0x2c, 0x80, 0x8a, 0xda, 0x7b, 0xf4, 0xad, 0x51, 0x08, 0xda, 0x3e, 0x51, 0xcd, 0x70, // grub-2.00-22/core.img
|
||||
|
|
|
|||
|
|
@ -1765,11 +1765,15 @@ const char* GetFsName(HANDLE hPhysical, LARGE_INTEGER StartingOffset)
|
|||
if (buf == NULL)
|
||||
goto out;
|
||||
|
||||
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS through the 512 bytes superblock at offset 0
|
||||
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS/SquashFS through the 512 bytes superblock at offset 0
|
||||
if (!SetFilePointerEx(hPhysical, StartingOffset, NULL, FILE_BEGIN))
|
||||
goto out;
|
||||
if (!ReadFile(hPhysical, buf, sector_size, &size, NULL) || size != sector_size)
|
||||
goto out;
|
||||
if (memcmp("hsqs", buf, 4) == 0) {
|
||||
ret = "SquashFS";
|
||||
goto out;
|
||||
}
|
||||
if (strncmp("CD001", &buf[0x01], 5) == 0) {
|
||||
ret = "ISO9660";
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -1391,6 +1391,8 @@ DWORD WINAPI ImageScanThread(LPVOID param)
|
|||
(img_report.compression_type != BLED_COMPRESSION_NONE && img_report.compression_type < BLED_COMPRESSION_MAX) ?
|
||||
"compressed " : "", img_report.is_vhd ? "VHD" : "disk");
|
||||
selection_default = BT_IMAGE;
|
||||
if (img_report.projected_size > 0)
|
||||
uprintf(" Size: %s (Projected)", SizeToHumanReadable(img_report.projected_size, FALSE, FALSE));
|
||||
}
|
||||
|
||||
if (img_report.is_iso) {
|
||||
|
|
@ -1525,7 +1527,8 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
|
|||
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_358), lmprintf(MSG_359));
|
||||
goto out;
|
||||
}
|
||||
if ((size_check) && (img_report.projected_size > (uint64_t)SelectedDrive.DiskSize)) {
|
||||
/* Add 4 KB extra margin for VHD footers and so on */
|
||||
if ((size_check) && (img_report.projected_size > ((uint64_t)SelectedDrive.DiskSize + 4 * KB))) {
|
||||
// This ISO image is too big for the selected target
|
||||
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_088), lmprintf(MSG_089));
|
||||
goto out;
|
||||
|
|
|
|||
10
src/rufus.rc
10
src/rufus.rc
|
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_ACCEPTFILES
|
||||
CAPTION "Rufus 4.15.2393"
|
||||
CAPTION "Rufus 4.15.2396"
|
||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||
|
|
@ -409,8 +409,8 @@ END
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 4,15,2393,0
|
||||
PRODUCTVERSION 4,15,2393,0
|
||||
FILEVERSION 4,15,2396,0
|
||||
PRODUCTVERSION 4,15,2396,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
|
@ -428,13 +428,13 @@ BEGIN
|
|||
VALUE "Comments", "https://rufus.ie"
|
||||
VALUE "CompanyName", "Akeo Consulting"
|
||||
VALUE "FileDescription", "Rufus"
|
||||
VALUE "FileVersion", "4.15.2393"
|
||||
VALUE "FileVersion", "4.15.2396"
|
||||
VALUE "InternalName", "Rufus"
|
||||
VALUE "LegalCopyright", "© 2011-2026 Pete Batard (GPL v3)"
|
||||
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
||||
VALUE "OriginalFilename", "rufus-4.15.exe"
|
||||
VALUE "ProductName", "Rufus"
|
||||
VALUE "ProductVersion", "4.15.2393"
|
||||
VALUE "ProductVersion", "4.15.2396"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
|||
|
|
@ -99,6 +99,9 @@ static int8_t IsCompressedBootableImage(const char* path)
|
|||
ErrorStatus = 0;
|
||||
if (img_report.compression_type < BLED_COMPRESSION_MAX) {
|
||||
bled_init(0, uprintf, NULL, NULL, NULL, NULL, &ErrorStatus);
|
||||
dc = bled_get_uncompressed_size(path, file_assoc[i].type);
|
||||
if (dc > 0)
|
||||
img_report.projected_size = dc;
|
||||
dc = bled_uncompress_to_buffer(path, (char*)buf, MBR_SIZE, file_assoc[i].type);
|
||||
bled_exit();
|
||||
} else if (img_report.compression_type == BLED_COMPRESSION_MAX) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue