mirror of
https://github.com/pbatard/rufus.git
synced 2026-07-09 06:55:39 +00:00
Compare commits
No commits in common. "master" and "v4.15_BETA2" have entirely different histories.
master
...
v4.15_BETA
19 changed files with 51 additions and 138 deletions
2
.github/workflows/codeql.yml
vendored
2
.github/workflows/codeql.yml
vendored
|
|
@ -41,7 +41,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v4
|
uses: github/codeql-action/init@v4
|
||||||
|
|
|
||||||
2
.github/workflows/coverity.yml
vendored
2
.github/workflows/coverity.yml
vendored
|
|
@ -28,7 +28,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
|
||||||
2
.github/workflows/mingw.yml
vendored
2
.github/workflows/mingw.yml
vendored
|
|
@ -54,7 +54,7 @@ jobs:
|
||||||
upx
|
upx
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
|
||||||
2
.github/workflows/setup.yml
vendored
2
.github/workflows/setup.yml
vendored
|
|
@ -19,7 +19,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Add MSBuild to PATH
|
- name: Add MSBuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v3
|
uses: microsoft/setup-msbuild@v3
|
||||||
|
|
|
||||||
2
.github/workflows/vs2026.yml
vendored
2
.github/workflows/vs2026.yml
vendored
|
|
@ -40,7 +40,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -181,7 +181,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|
@ -200,7 +200,7 @@
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -217,7 +217,7 @@
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -238,7 +238,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|
@ -257,7 +257,7 @@
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
o Version 4.15 (2026.06.30)
|
o Version 4.15 (2026.06.??)
|
||||||
Add RISC-V 64 support to UEFI:NTFS
|
Add RISC-V 64 support to UEFI:NTFS
|
||||||
Improve the guards for using the "silent" Windows installation option
|
Improve the guards for using the "silent" option
|
||||||
Improve the ability to cancel during write retries
|
Improve the ability to cancel during write retries
|
||||||
Improve progress reporting for compressed image extraction
|
Improve progress reporting for compressed image extraction
|
||||||
Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
|
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 "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 a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
|
||||||
Fix first WUE option always being checked by default
|
Fix the first WUE option always being checked by default
|
||||||
Fix an infinite loop when using Windows ISOs that contain multiple WIMs
|
Fix an infinite loop when using Windows ISOs that contain multiple WIMs
|
||||||
Fix "Enable runtime UEFI media validation" checkbox not always being properly enabled
|
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)
|
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.
|
• 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
|
• Laman rasmi: https://rufus.ie
|
||||||
• Kod Sumber: https://github.com/pbatard/rufus
|
• Kod Sumber: https://github.com/pbatard/rufus
|
||||||
• 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.
|
• 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.
|
||||||
• Offisiell webside: https://rufus.ie
|
• Offisiell webside: https://rufus.ie
|
||||||
• Kildekode: https://github.com/pbatard/rufus
|
• Kildekode: https://github.com/pbatard/rufus
|
||||||
• Endringslogg: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus ابزاری است که به فرمت و ایجاد درایوهای فلش USB قابل بوت، مانند کلیدهای USB/pendrives، مموری استیک ها و غیره به شما کمک می کند.
|
• Endringslogg: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus ابزاری است که به فرمت و ایجاد درایوهای فلش USB قابل بوت، مانند کلیدهای USB/pendrives، مموری استیک ها و غیره به شما کمک می کند.
|
||||||
|
|
@ -114,17 +114,19 @@
|
||||||
• Trang web chính thức: https://rufus.ie
|
• Trang web chính thức: https://rufus.ie
|
||||||
• Mã nguồn: https://github.com/pbatard/rufus
|
• Mã nguồn: https://github.com/pbatard/rufus
|
||||||
• Nhật ký thay đổi: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt"
|
• Nhật ký thay đổi: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt"
|
||||||
"ReleaseNotes","3","Text","• Add RISC-V 64 support to UEFI:NTFS
|
"ReleaseNotes","3","Text","• Windows User Experience improvements:
|
||||||
• Improve the guards for using the ""silent"" Windows installation option
|
• - Add a ""Quality of Life"" option, to disable Teams, Outlook, Copilot and other Microsoft forced nuisances
|
||||||
• Improve the ability to cancel during write retries
|
• - Add a Silent installation option, that automatically, and WITHOUT PROMPT, installs Windows on the first detected disk
|
||||||
• Improve progress reporting for compressed image extraction
|
• - Add an option to copy 'SkuSiPolicy.p7b' to the ESP on installation (please refer to KB5042562 for more info)
|
||||||
• Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
|
• - Add tooltips for all the dialog options
|
||||||
• Fix ""silent"" Windows installation failing at 75% in most cases
|
• Add limited support for El-Torito UEFI image extraction (Mostly for Dell BIOS update ISOs)
|
||||||
• Fix a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
|
• Improve error report when the user tries to use an image that resides on the target drive
|
||||||
• Fix first WUE option always being checked by default
|
• Improve the UEFI:NTFS partition label to make the install media more explicit during Windows Setup disk partitioning
|
||||||
• Fix an infinite loop when using Windows ISOs that contain multiple WIMs
|
• Improve support for Bazzite and other Fedora derivatives that don't follow EFI conventions
|
||||||
• Fix ""Enable runtime UEFI media validation"" checkbox not always being properly enabled
|
• Improve detection and exclusion of the new Bitdefender hidden VHDs
|
||||||
• Other WUE improvements/fixes for OneDrive removal and username validation (with thanks to @christian8641)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
• 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",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
"Title","4","Text","Rufus",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
"Title","4","Text","Rufus",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
"ShortTitle","5","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
"ShortTitle","5","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
"SortTitle","6","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 \
|
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 \
|
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
|
||||||
zstd_error_private.c
|
zstd_error_private.c
|
||||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
|
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -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 \
|
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
|
||||||
zstd_error_private.c
|
zstd_error_private.c
|
||||||
|
|
||||||
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
|
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -Wno-undef -Wno-strict-aliasing
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|
|
||||||
|
|
@ -254,9 +254,6 @@ typedef struct transformer_state_t {
|
||||||
} magic;
|
} magic;
|
||||||
} transformer_state_t;
|
} 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;
|
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 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;
|
ssize_t xtransformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,9 @@
|
||||||
#include "bb_archive.h"
|
#include "bb_archive.h"
|
||||||
#include "bled.h"
|
#include "bled.h"
|
||||||
|
|
||||||
|
typedef int64_t(*unpacker_t)(transformer_state_t *xstate);
|
||||||
|
extern int64_t get_uncompressed_size(int fd, int type);
|
||||||
|
|
||||||
/* Globals */
|
/* Globals */
|
||||||
smallint bb_got_signal;
|
smallint bb_got_signal;
|
||||||
uint64_t bb_total_rb, bb_total_wb;
|
uint64_t bb_total_rb, bb_total_wb;
|
||||||
|
|
@ -300,34 +303,6 @@ int64_t bled_uncompress_from_buffer_to_buffer(const char* src, const size_t src_
|
||||||
return ret;
|
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.
|
/* Initialize the library.
|
||||||
* When the parameters are not NULL or zero you can:
|
* 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)
|
* - specify the buffer size to use (must be larger than 256KB and a power of two)
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@
|
||||||
#include "bb_archive.h"
|
#include "bb_archive.h"
|
||||||
#include "bled.h"
|
#include "bled.h"
|
||||||
|
|
||||||
|
typedef int64_t(*get_uncompressed_size_t)(int fd);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------
|
/* -------------------------------------------------------------------------
|
||||||
* Internal helpers
|
* Internal helpers
|
||||||
* ---------------------------------------------------------------------- */
|
* ---------------------------------------------------------------------- */
|
||||||
|
|
@ -700,60 +702,6 @@ static int64_t get_uncompress_size_zstd(int fd)
|
||||||
return (int64_t)size;
|
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] = {
|
static get_uncompressed_size_t _get_uncompressed_size[BLED_COMPRESSION_MAX] = {
|
||||||
get_uncompress_size_none,
|
get_uncompress_size_none,
|
||||||
get_uncompress_size_zip,
|
get_uncompress_size_zip,
|
||||||
|
|
@ -770,11 +718,13 @@ static get_uncompressed_size_t _get_uncompressed_size[BLED_COMPRESSION_MAX] = {
|
||||||
/* Get the decompressed size of file 'fd', compressed using 'type' */
|
/* Get the decompressed size of file 'fd', compressed using 'type' */
|
||||||
int64_t get_uncompressed_size(int fd, int type)
|
int64_t get_uncompressed_size(int fd, int type)
|
||||||
{
|
{
|
||||||
int64_t size = _get_uncompressed_size[type](fd);
|
int64_t size = -1;
|
||||||
#if defined(BLED_EXPECT_DISK_IMAGE)
|
|
||||||
if (size < 0)
|
if ((type < 0) || (type >= BLED_COMPRESSION_MAX)) {
|
||||||
size = get_uncompressed_size_from_disk_image(fd, type);
|
bb_error_msg("Unsupported compression format");
|
||||||
#endif
|
return -1;
|
||||||
|
}
|
||||||
|
size = _get_uncompressed_size[type](fd);
|
||||||
|
|
||||||
/* Make sure to reset our file pointer */
|
/* Make sure to reset our file pointer */
|
||||||
lseek(fd, 0, SEEK_SET);
|
lseek(fd, 0, SEEK_SET);
|
||||||
|
|
|
||||||
|
|
@ -119,8 +119,8 @@ unpack_zstd_stream_inner(transformer_state_t *xstate,
|
||||||
IF_DESKTOP(long long) int FAST_FUNC
|
IF_DESKTOP(long long) int FAST_FUNC
|
||||||
unpack_zstd_stream(transformer_state_t *xstate)
|
unpack_zstd_stream(transformer_state_t *xstate)
|
||||||
{
|
{
|
||||||
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), SECTOR_ALIGNMENT),
|
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), 1024),
|
||||||
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), SECTOR_ALIGNMENT);
|
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), 1024);
|
||||||
|
|
||||||
IF_DESKTOP(long long) int result;
|
IF_DESKTOP(long long) int result;
|
||||||
void *out_buff;
|
void *out_buff;
|
||||||
|
|
|
||||||
1
src/db.h
1
src/db.h
|
|
@ -84,7 +84,6 @@ 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
|
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, 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
|
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
|
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
|
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
|
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,15 +1765,11 @@ const char* GetFsName(HANDLE hPhysical, LARGE_INTEGER StartingOffset)
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS/SquashFS through the 512 bytes superblock at offset 0
|
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS through the 512 bytes superblock at offset 0
|
||||||
if (!SetFilePointerEx(hPhysical, StartingOffset, NULL, FILE_BEGIN))
|
if (!SetFilePointerEx(hPhysical, StartingOffset, NULL, FILE_BEGIN))
|
||||||
goto out;
|
goto out;
|
||||||
if (!ReadFile(hPhysical, buf, sector_size, &size, NULL) || size != sector_size)
|
if (!ReadFile(hPhysical, buf, sector_size, &size, NULL) || size != sector_size)
|
||||||
goto out;
|
goto out;
|
||||||
if (memcmp("hsqs", buf, 4) == 0) {
|
|
||||||
ret = "SquashFS";
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
if (strncmp("CD001", &buf[0x01], 5) == 0) {
|
if (strncmp("CD001", &buf[0x01], 5) == 0) {
|
||||||
ret = "ISO9660";
|
ret = "ISO9660";
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
||||||
|
|
@ -1391,8 +1391,6 @@ DWORD WINAPI ImageScanThread(LPVOID param)
|
||||||
(img_report.compression_type != BLED_COMPRESSION_NONE && img_report.compression_type < BLED_COMPRESSION_MAX) ?
|
(img_report.compression_type != BLED_COMPRESSION_NONE && img_report.compression_type < BLED_COMPRESSION_MAX) ?
|
||||||
"compressed " : "", img_report.is_vhd ? "VHD" : "disk");
|
"compressed " : "", img_report.is_vhd ? "VHD" : "disk");
|
||||||
selection_default = BT_IMAGE;
|
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) {
|
if (img_report.is_iso) {
|
||||||
|
|
@ -1527,8 +1525,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
|
||||||
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_358), lmprintf(MSG_359));
|
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_358), lmprintf(MSG_359));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
/* Add 4 KB extra margin for VHD footers and so on */
|
if ((size_check) && (img_report.projected_size > (uint64_t)SelectedDrive.DiskSize)) {
|
||||||
if ((size_check) && (img_report.projected_size > ((uint64_t)SelectedDrive.DiskSize + 4 * KB))) {
|
|
||||||
// This ISO image is too big for the selected target
|
// This ISO image is too big for the selected target
|
||||||
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_088), lmprintf(MSG_089));
|
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_088), lmprintf(MSG_089));
|
||||||
goto out;
|
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
|
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Rufus 4.15.2396"
|
CAPTION "Rufus 4.15.2393"
|
||||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||||
|
|
@ -409,8 +409,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,15,2396,0
|
FILEVERSION 4,15,2393,0
|
||||||
PRODUCTVERSION 4,15,2396,0
|
PRODUCTVERSION 4,15,2393,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
|
@ -428,13 +428,13 @@ BEGIN
|
||||||
VALUE "Comments", "https://rufus.ie"
|
VALUE "Comments", "https://rufus.ie"
|
||||||
VALUE "CompanyName", "Akeo Consulting"
|
VALUE "CompanyName", "Akeo Consulting"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "4.15.2396"
|
VALUE "FileVersion", "4.15.2393"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2026 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2026 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
||||||
VALUE "OriginalFilename", "rufus-4.15.exe"
|
VALUE "OriginalFilename", "rufus-4.15.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "4.15.2396"
|
VALUE "ProductVersion", "4.15.2393"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
||||||
|
|
@ -99,9 +99,6 @@ static int8_t IsCompressedBootableImage(const char* path)
|
||||||
ErrorStatus = 0;
|
ErrorStatus = 0;
|
||||||
if (img_report.compression_type < BLED_COMPRESSION_MAX) {
|
if (img_report.compression_type < BLED_COMPRESSION_MAX) {
|
||||||
bled_init(0, uprintf, NULL, NULL, NULL, NULL, &ErrorStatus);
|
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);
|
dc = bled_uncompress_to_buffer(path, (char*)buf, MBR_SIZE, file_assoc[i].type);
|
||||||
bled_exit();
|
bled_exit();
|
||||||
} else if (img_report.compression_type == BLED_COMPRESSION_MAX) {
|
} else if (img_report.compression_type == BLED_COMPRESSION_MAX) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue