mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
Compare commits
2 commits
a25af06b3c
...
65f05f4d58
Author | SHA1 | Date | |
---|---|---|---|
|
65f05f4d58 | ||
|
e043a49fa7 |
7 changed files with 111 additions and 29 deletions
|
@ -1,3 +1,19 @@
|
|||
o Version 3.19 (2022.07.??)
|
||||
Add a new selection dialog for Windows 11 setup customization:
|
||||
- Secure Boot and TPM bypass have now been moved to this dialog
|
||||
- Also allows to bypass the mandatory requirement for a Microsoft account on Windows 11 22H2
|
||||
(NB: Network *MUST* be temporarily disabled for the local account creation to be proposed)
|
||||
- Also add an option to skip all collection questions (Sets all answers to "Don't allow")
|
||||
- Also add an option for setting internal drives offline with Windows To Go
|
||||
Note: These customization options are only be proposed when using a Windows 11 image.
|
||||
Add support for distros using a nonstandard GRUB 2.0 prefix directory (openSUSE Live, GeckoLinux)
|
||||
Add the ability to ignore USBs (See https://github.com/pbatard/rufus/blob/master/res/rufus.ini)
|
||||
Change drive listing to always list in increasing order of size
|
||||
Update exceptions needed by Red Hat and derivatives for latest versions
|
||||
Update UEFI:NTFS drivers to latest
|
||||
Reassign a letter for drives written in DD mode that don't have an ESP (CoreELEC)
|
||||
Fix Windows refusing to mount Linux MBR partitions on FIXED drives
|
||||
|
||||
o Version 3.18 (2022.03.11)
|
||||
Fix DLL sideloading vulnerabilities
|
||||
Fix ISO → ESP creation when running on Windows 11
|
||||
|
|
|
@ -6,6 +6,8 @@ https://github.com/pbatard/rufus/wiki/Localization#Editing_an_existing_translati
|
|||
Or simply download https://rufus-web.akeo.ie/locale/pollock.exe and follow its directions.
|
||||
|
||||
o v3.20 (2022.??.??)
|
||||
IMPORTANT: The translation changes below are *NOT* finalized and may evolve further...
|
||||
Please avoid sending a translation update before I send a request for it, thank you!
|
||||
- *NEW* MSG_323 "Unable to open or read '%s'"
|
||||
- *NEW* MSG_325 "Applying Windows customization: %s"
|
||||
- *NEW* MSG_326 "Windows User Experience"
|
||||
|
@ -14,6 +16,7 @@ o v3.20 (2022.??.??)
|
|||
- *NEW* MSG_329 "Remove requirement for 4GB+ RAM and 64GB+ disk"
|
||||
- *NEW* MSG_330 "Remove requirement for an online Microsoft account"
|
||||
- *NEW* MSG_331 "Disable data collection (Skip privacy questions)"
|
||||
- *NEW* MSG_332 "Prevent Windows To Go from accessing internal disks"
|
||||
|
||||
o v3.14 (2021.03.31)
|
||||
- *UPDATED* MSG_068 "Error while partitioning drive." -> "Could not partition drive."
|
||||
|
|
|
@ -2,8 +2,10 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 3.14\n"
|
||||
"Report-Msgid-Bugs-To: pete@akeo.ie\n"
|
||||
"POT-Creation-Date: 2021-10-23 12:51+0100\n"
|
||||
"PO-Revision-Date: 2021-10-23 13:00+0100\n"
|
||||
"POT-Creation-Date: 2022-06-24 17:34+0100\n"
|
||||
"PO-Revision-Date: 2022-06-24 17:36+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr_FR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -11,9 +13,7 @@ msgstr ""
|
|||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Rufus-LanguageName: French (Français)\n"
|
||||
"X-Rufus-LCID: 0x040c, 0x080c, 0x0c0c, 0x100c, 0x140c, 0x180c, 0x1c0c, 0x200c, 0x240c, 0x280c, 0x2c0c, 0x300c, 0x340c, 0x380c, 0xe40c\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"X-Generator: Poedit 3.1\n"
|
||||
|
||||
#. • IDD_DIALOG → IDS_DRIVE_PROPERTIES_TXT
|
||||
msgid "Drive Properties"
|
||||
|
@ -1709,12 +1709,8 @@ msgid "Create a disk image of the selected device"
|
|||
msgstr "Crée une image disque à partir du périphérique sélectionné"
|
||||
|
||||
#. • MSG_305
|
||||
msgid ""
|
||||
"Use this option to indicate if you plan to install Windows to a different disk, or if you want to run Windows directly from this drive (Windows To Go).\r\n"
|
||||
"In 'Extended Windows 11 Installation' mode, Rufus will patch the media so that Windows 11 can be installed on platforms that don't meet the TPM 2.0 or Secure Boot requirements."
|
||||
msgstr ""
|
||||
"Utilisez cette option pour indiquer si vous voulez installer Windows sur un autre disque, ou bien exécuter Windows directement depuis ce périphérique (Windows To Go).\r\n"
|
||||
"En mode 'Installation Windows 11 étendue', Rufus modifiera le périphérique de manière à ce que Windows 11 puisse être installé sur les plateformes qui ne sont pas compatibles avec les exigences matérielles TPM 2.0 ou Secure Boot."
|
||||
msgid "Use this option to indicate if you plan to install Windows to a different disk, or if you want to run Windows directly from this drive (Windows To Go)."
|
||||
msgstr "Utilisez cette option pour indiquer si vous voulez installer Windows sur un autre disque, ou bien exécuter Windows directement depuis ce périphérique (Windows To Go)."
|
||||
|
||||
#. • MSG_306
|
||||
#.
|
||||
|
@ -1793,13 +1789,37 @@ msgstr ""
|
|||
"A cause de cela, seule l’écriture en mode DD est applicable."
|
||||
|
||||
#. • MSG_322
|
||||
msgid "Standard Windows 11 Installation (TPM 2.0 + Secure Boot)"
|
||||
msgstr "Installation standard de Windows 11 (TPM 2.0 + Secure Boot)"
|
||||
msgid "Unable to open or read '%s'"
|
||||
msgstr "Impossible d'ouvrir ou de lire '%s'"
|
||||
|
||||
#. • MSG_323
|
||||
msgid "Extended Windows 11 Installation (no TPM / no Secure Boot)"
|
||||
msgstr "Installation Windows 11 étendue (sans TPM / sans Secure Boot)"
|
||||
#. • MSG_325
|
||||
msgid "Applying Windows customization: %s"
|
||||
msgstr "Application des options de personalisation de Windows: %s"
|
||||
|
||||
#. • MSG_324
|
||||
msgid "Removing Windows 11 installation restrictions: %s"
|
||||
msgstr "Elimination des restrictions d’installation de Windows 11: %s"
|
||||
#. • MSG_326
|
||||
msgid "Windows User Experience"
|
||||
msgstr "Experience de l'utilisateur Windows"
|
||||
|
||||
#. • MSG_327
|
||||
msgid "Customize Windows installation?"
|
||||
msgstr "Personnaliser l'installation de Windows ?"
|
||||
|
||||
#. • MSG_328
|
||||
msgid "Remove requirement for Secure Boot and TPM 2.0"
|
||||
msgstr "Supprimer la nécessité d'avoir Secure Boot et TPM 2.0"
|
||||
|
||||
#. • MSG_329
|
||||
msgid "Remove requirement for 4GB+ RAM and 64GB+ disk"
|
||||
msgstr "Supprimer la nécessité d'avoir 4Go+ de RAM et 64Go+ de disque"
|
||||
|
||||
#. • MSG_330
|
||||
msgid "Remove requirement for an online Microsoft account"
|
||||
msgstr "Désactiver la collecte de données (Élimine les questions sur la vie-privée)"
|
||||
|
||||
#. • MSG_331
|
||||
msgid "Disable data collection (Skip privacy questions)"
|
||||
msgstr "Supprimer la nécessité d'utiliser un compte Microsoft en ligne"
|
||||
|
||||
#. • MSG_332
|
||||
msgid "Prevent Windows To Go from accessing internal disks"
|
||||
msgstr "Empêcher Windows To Go d'accéder aux disques internes"
|
||||
|
|
|
@ -589,6 +589,7 @@ t MSG_328 "Remove requirement for Secure Boot and TPM 2.0"
|
|||
t MSG_329 "Remove requirement for 4GB+ RAM and 64GB+ disk"
|
||||
t MSG_330 "Remove requirement for an online Microsoft account"
|
||||
t MSG_331 "Disable data collection (Skip privacy questions)"
|
||||
t MSG_332 "Prevent Windows To Go from accessing internal disks"
|
||||
|
||||
#########################################################################
|
||||
l "ar-SA" "Arabic (العربية)" 0x0401, 0x0801, 0x0c01, 0x1001, 0x1401, 0x1801, 0x1c01, 0x2001, 0x2401, 0x2801, 0x2c01, 0x3001, 0x3401, 0x3801, 0x3c01, 0x4001
|
||||
|
@ -4301,6 +4302,15 @@ t MSG_318 "Priorité de thread part default : %d"
|
|||
t MSG_319 "Ignorer le marqueur de démarrage"
|
||||
t MSG_320 "Rafraichissement du schéma de partition (%s)..."
|
||||
t MSG_321 "L’image que vous avez sélectionnée est de type ISOHybrid, mais ses créateurs ne l’ont pas rendue compatible avec le mode ISO (i.e. copie de fichier).\nA cause de cela, seule l’écriture en mode DD est applicable."
|
||||
t MSG_322 "Impossible d'ouvrir ou de lire '%s'"
|
||||
t MSG_325 "Application des options de personalisation de Windows: %s"
|
||||
t MSG_326 "Experience de l'utilisateur Windows"
|
||||
t MSG_327 "Personnaliser l'installation de Windows ?"
|
||||
t MSG_328 "Supprimer la nécessité d'avoir Secure Boot et TPM 2.0"
|
||||
t MSG_329 "Supprimer la nécessité d'avoir 4Go+ de RAM et 64Go+ de disque"
|
||||
t MSG_330 "Désactiver la collecte de données (Élimine les questions sur la vie-privée)"
|
||||
t MSG_331 "Supprimer la nécessité d'utiliser un compte Microsoft en ligne"
|
||||
t MSG_332 "Empêcher Windows To Go d'accéder aux disques internes"
|
||||
|
||||
#########################################################################
|
||||
l "de-DE" "German (Deutsch)" 0x0407, 0x0807, 0x0c07, 0x1007, 0x1407
|
||||
|
|
15
src/format.c
15
src/format.c
|
@ -72,7 +72,7 @@ extern uint32_t dur_mins, dur_secs;
|
|||
extern uint32_t wim_nb_files, wim_proc_files, wim_extra_files;
|
||||
static int actual_fs_type, wintogo_index = -1, wininst_index = 0;
|
||||
extern BOOL force_large_fat32, enable_ntfs_compression, lock_drive, zero_drive, fast_zeroing, enable_file_indexing;
|
||||
extern BOOL write_as_image, use_vds, write_as_esp, is_vds_available, enable_inplace;
|
||||
extern BOOL write_as_image, use_vds, write_as_esp, is_vds_available, enable_inplace, set_drives_offline;
|
||||
extern const grub_patch_t grub_patch[2];
|
||||
extern char* unattend_xml_path;
|
||||
uint8_t *grub2_buf = NULL, *sec_buf = NULL;
|
||||
|
@ -1465,6 +1465,19 @@ static BOOL SetupWinToGo(DWORD DriveIndex, const char* drive_name, BOOL use_esp)
|
|||
|
||||
UpdateProgressWithInfo(OP_FILE_COPY, MSG_267, wim_proc_files + 2 * wim_extra_files, wim_nb_files);
|
||||
|
||||
// Setting internal drives offline for Windows To Go is crucial if, for instance, you are using ReFS
|
||||
// on Windows 10 (therefore ReFS v3.4) and don't want a Windows 11 To Go boot to automatically
|
||||
// "upgrade" the ReFS version on all drives to v3.7, thereby preventing you from being able to mount
|
||||
// those volumes back on Windows 10 ever again. Yes, I have been stung by this Microsoft bullshit!
|
||||
// See: https://gist.github.com/0xbadfca11/da0598e47dd643d933dc#Mountability
|
||||
if (set_drives_offline) {
|
||||
uprintf("Setting the target's internal drives offline using command:");
|
||||
// This applies the "offlineServicing" section of the unattend.xml (while ignoring the other sections)
|
||||
static_sprintf(cmd, "dism /Image:%s\\ /Apply-Unattend:%s", drive_name, unattend_xml_path);
|
||||
uprintf(cmd);
|
||||
RunCommand(cmd, NULL, usb_debug);
|
||||
}
|
||||
|
||||
uprintf("Disabling use of the Windows Recovery Environment using command:");
|
||||
static_sprintf(cmd, "%s\\bcdedit.exe /store %s\\EFI\\Microsoft\\Boot\\BCD /set {default} recoveryenabled no",
|
||||
sysnative_dir, (use_esp) ? ms_efi : drive_name);
|
||||
|
|
28
src/rufus.c
28
src/rufus.c
|
@ -64,10 +64,12 @@ enum bootcheck_return {
|
|||
#define UNATTEND_MINRAM_MINDISK_MASK 0x02
|
||||
#define UNATTEND_NO_ONLINE_ACCOUNT_MASK 0x04
|
||||
#define UNATTEND_NO_DATA_COLLECTION_MASK 0x08
|
||||
#define UNATTEND_OFFLINE_INTERNAL_DRIVES 0x10
|
||||
|
||||
#define UNATTEND_WINPE_SETUP_MASK (UNATTEND_SECUREBOOT_TPM_MASK | UNATTEND_MINRAM_MINDISK_MASK)
|
||||
#define UNATTEND_SPECIALIZE_DEPLOYMENT_MASK (UNATTEND_NO_ONLINE_ACCOUNT_MASK)
|
||||
#define UNATTEND_OOBE_SHELL_SETUP (UNATTEND_NO_DATA_COLLECTION_MASK)
|
||||
#define UNATTEND_OFFLINE_SERVICING (UNATTEND_OFFLINE_INTERNAL_DRIVES)
|
||||
|
||||
static const char* cmdline_hogger = "rufus.com";
|
||||
static const char* ep_reg = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
|
||||
|
@ -88,7 +90,8 @@ static BOOL allowed_filesystem[FS_MAX] = { 0 };
|
|||
static int64_t last_iso_blocking_status;
|
||||
static int selected_pt = -1, selected_fs = FS_UNKNOWN, preselected_fs = FS_UNKNOWN;
|
||||
static int image_index = 0, select_index = 0;
|
||||
static int unattend_xml_mask = (UNATTEND_SECUREBOOT_TPM_MASK | UNATTEND_NO_ONLINE_ACCOUNT_MASK);
|
||||
static int unattend_xml_mask = (UNATTEND_SECUREBOOT_TPM_MASK | UNATTEND_NO_ONLINE_ACCOUNT_MASK |
|
||||
UNATTEND_OFFLINE_INTERNAL_DRIVES);
|
||||
static RECT relaunch_rc = { -65536, -65536, 0, 0};
|
||||
static UINT uMBRChecked = BST_UNCHECKED;
|
||||
static HANDLE format_thread = NULL;
|
||||
|
@ -126,13 +129,13 @@ HWND hDeviceList, hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hL
|
|||
HWND hImageOption, hLogDialog = NULL, hProgress = NULL, hDiskID;
|
||||
HANDLE dialog_handle = NULL;
|
||||
BOOL is_x86_32, use_own_c32[NB_OLD_C32] = { FALSE, FALSE }, mbr_selected_by_user = FALSE;
|
||||
BOOL op_in_progress = TRUE, right_to_left_mode = FALSE, has_uefi_csm = FALSE, its_a_me_mario = FALSE, enable_inplace;
|
||||
BOOL op_in_progress = TRUE, right_to_left_mode = FALSE, has_uefi_csm = FALSE, its_a_me_mario = FALSE, enable_inplace = FALSE;
|
||||
BOOL enable_HDDs = FALSE, enable_VHDs = TRUE, enable_ntfs_compression = FALSE, no_confirmation_on_cancel = FALSE, lock_drive = TRUE;
|
||||
BOOL advanced_mode_device, advanced_mode_format, allow_dual_uefi_bios, detect_fakes, enable_vmdk, force_large_fat32, usb_debug;
|
||||
BOOL use_fake_units, preserve_timestamps = FALSE, fast_zeroing = FALSE, app_changed_size = FALSE;
|
||||
BOOL zero_drive = FALSE, list_non_usb_removable_drives = FALSE, enable_file_indexing, large_drive = FALSE;
|
||||
BOOL write_as_image = FALSE, write_as_esp = FALSE, use_vds = FALSE, ignore_boot_marker = FALSE;
|
||||
BOOL appstore_version = FALSE, is_vds_available = TRUE;
|
||||
BOOL appstore_version = FALSE, is_vds_available = TRUE, set_drives_offline = FALSE;
|
||||
float fScale = 1.0f;
|
||||
int dialog_showing = 0, selection_default = BT_IMAGE, persistence_unit_selection = -1, imop_win_sel = 0;
|
||||
int default_fs, fs_type, boot_type, partition_type, target_type;
|
||||
|
@ -1275,7 +1278,6 @@ static char* CreateUnattendXml(int arch, int mask)
|
|||
fd = fopen(path, "w");
|
||||
if (fd == NULL)
|
||||
return NULL;
|
||||
enable_inplace = mask & UNATTEND_WINPE_SETUP_MASK;
|
||||
|
||||
fprintf(fd, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
|
||||
fprintf(fd, "<unattend xmlns=\"urn:schemas-microsoft-com:unattend\">\n");
|
||||
|
@ -1283,6 +1285,7 @@ static char* CreateUnattendXml(int arch, int mask)
|
|||
// This part produces the unbecoming display of a command prompt window during initial setup, which
|
||||
// may scare users... But the Windows Store version doesn't allow us to edit an offline registry...
|
||||
if (mask & UNATTEND_WINPE_SETUP_MASK) {
|
||||
enable_inplace = TRUE;
|
||||
order = 1;
|
||||
fprintf(fd, " <settings pass=\"windowsPE\">\n");
|
||||
fprintf(fd, " <component name=\"Microsoft-Windows-Setup\" processorArchitecture=\"%s\" language=\"neutral\" "
|
||||
|
@ -1345,6 +1348,19 @@ static char* CreateUnattendXml(int arch, int mask)
|
|||
fprintf(fd, " </settings>\n");
|
||||
}
|
||||
|
||||
if (mask & UNATTEND_OFFLINE_SERVICING) {
|
||||
fprintf(fd, " <settings pass=\"offlineServicing\">\n");
|
||||
if (mask & UNATTEND_OFFLINE_INTERNAL_DRIVES) {
|
||||
set_drives_offline = TRUE;
|
||||
fprintf(fd, " <component name=\"Microsoft-Windows-PartitionManager\" processorArchitecture=\"%s\" language=\"neutral\" "
|
||||
"xmlns:wcm=\"http://schemas.microsoft.com/WMIConfig/2002/State\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
||||
"publicKeyToken=\"31bf3856ad364e35\" versionScope=\"nonSxS\">\n", xml_arch_names[arch]);
|
||||
fprintf(fd, " <SanPolicy>4</SanPolicy>\n");
|
||||
fprintf(fd, " </component>\n");
|
||||
}
|
||||
fprintf(fd, " </settings>\n");
|
||||
}
|
||||
|
||||
fprintf(fd, "</unattend>\n");
|
||||
fclose(fd);
|
||||
return path;
|
||||
|
@ -1609,6 +1625,8 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
|
|||
}
|
||||
StrArrayAdd(&options, lmprintf(MSG_331), TRUE);
|
||||
MAP_BIT(UNATTEND_NO_DATA_COLLECTION_MASK);
|
||||
StrArrayAdd(&options, lmprintf(MSG_332), TRUE);
|
||||
MAP_BIT(UNATTEND_OFFLINE_INTERNAL_DRIVES);
|
||||
i = SelectionDialog(BS_AUTOCHECKBOX, lmprintf(MSG_326), lmprintf(MSG_327),
|
||||
options.String, options.Index, remap8(unattend_xml_mask, map, FALSE));
|
||||
StrArrayDestroy(&options);
|
||||
|
@ -2747,6 +2765,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
fs_type = (int)ComboBox_GetCurItemData(hFileSystem);
|
||||
write_as_image = FALSE;
|
||||
write_as_esp = FALSE;
|
||||
enable_inplace = FALSE;
|
||||
set_drives_offline = FALSE;
|
||||
// Disable all controls except Cancel
|
||||
EnableControls(FALSE, FALSE);
|
||||
FormatStatus = 0;
|
||||
|
|
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 3.19.1904"
|
||||
CAPTION "Rufus 3.19.1906"
|
||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||
|
@ -395,8 +395,8 @@ END
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,19,1904,0
|
||||
PRODUCTVERSION 3,19,1904,0
|
||||
FILEVERSION 3,19,1906,0
|
||||
PRODUCTVERSION 3,19,1906,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -414,13 +414,13 @@ BEGIN
|
|||
VALUE "Comments", "https://rufus.ie"
|
||||
VALUE "CompanyName", "Akeo Consulting"
|
||||
VALUE "FileDescription", "Rufus"
|
||||
VALUE "FileVersion", "3.19.1904"
|
||||
VALUE "FileVersion", "3.19.1906"
|
||||
VALUE "InternalName", "Rufus"
|
||||
VALUE "LegalCopyright", "© 2011-2022 Pete Batard (GPL v3)"
|
||||
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
||||
VALUE "OriginalFilename", "rufus-3.19.exe"
|
||||
VALUE "ProductName", "Rufus"
|
||||
VALUE "ProductVersion", "3.19.1904"
|
||||
VALUE "ProductVersion", "3.19.1906"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
Loading…
Reference in a new issue