Skip to content

Commit 753b168

Browse files
committed
Update for v0.14.2.AD Release
1 parent 363d2a2 commit 753b168

File tree

12 files changed

+309
-225
lines changed

12 files changed

+309
-225
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ body:
5252
description: Which version of RefindPlus is affected?
5353
type: choice
5454
options:
55-
- 'Official v0.14.2.AC Release'
55+
- 'Official v0.14.2.AD Release'
5656
- 'Official Older Released Version'
5757
- 'Official Pre-Release Code Build'
5858
- 'Unofficially Modified Code Build'

.github/workflows/labels.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@ name: 'Auto Labels'
44
on:
55
issues:
66
types: [labeled, unlabeled]
7-
pull_request:
8-
types: [labeled, unlabeled]
97

108
permissions:
119
contents: read
1210
issues: write
13-
pull-requests: write
1411

1512
jobs:
1613

BootMaster/icns.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757

5858
BOOLEAN UsingAltImg = FALSE;
59-
extern BOOLEAN BootLogoFlag;
59+
extern BOOLEAN ExitLogoFlag;
6060

6161
//
6262
// well-known icons
@@ -226,7 +226,7 @@ INTN UpdateBaseIcon (
226226
#if REFIT_DEBUG > 0
227227
ALT_LOG(1, LOG_LINE_NORMAL,
228228
L"Find %s Img: '%s.xyz'",
229-
(BootLogoFlag) ? L"ExitLogo" : L"Icon",
229+
(ExitLogoFlag) ? L"ExitLogo" : L"Icon",
230230
BaseName
231231
);
232232
#endif

BootMaster/launch_efi.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100

101101
CHAR16 *BootSelection = NULL;
102102
CHAR16 *ValidText = L"Invalid Loader";
103-
BOOLEAN BootLogoFlag = FALSE;
103+
BOOLEAN ExitLogoFlag = FALSE;
104104
extern BOOLEAN IsBoot;
105105
extern BOOLEAN ShimFound;
106106
extern BOOLEAN SecureFlag;
@@ -893,8 +893,8 @@ EFI_STATUS StartEFIImage (
893893
!(GlobalConfig.DisableBootLogo & DISABLE_BOOTLOGO_WIN)
894894
);
895895

896-
BootLogoFlag = (ShowLogoLin || ShowLogoWin);
897-
if (BootLogoFlag) {
896+
ExitLogoFlag = (ShowLogoLin || ShowLogoWin);
897+
if (ExitLogoFlag) {
898898
if (ScreenW > 1024 && ScreenH > 1024) {
899899
// Stash current size
900900
OrigIconBig = GlobalConfig.IconSizes[ICON_SIZE_BIG];
@@ -964,8 +964,8 @@ EFI_STATUS StartEFIImage (
964964
GlobalConfig.IconSizes[ICON_SIZE_BIG] = OrigIconBig;
965965
}
966966

967-
BootLogoFlag = FALSE;
968-
} // if BootLogoFlag
967+
ExitLogoFlag = FALSE;
968+
} // if ExitLogoFlag
969969

970970
if (GlobalConfig.WriteSystemdVars && OSType == 'L') {
971971
// Inform SystemD of RefindPlus ESP
@@ -1133,6 +1133,9 @@ EFI_STATUS StartEFIImage (
11331133
// DA-TAG: bailout:
11341134
MY_FREE_POOL(FullLoadOptions);
11351135

1136+
// Free BootLogoImage on bailout
1137+
MY_FREE_IMAGE(BootLogoImage);
1138+
11361139
if (!IsDriver) {
11371140
FinishExternalScreen();
11381141
}

BootMaster/main.c

Lines changed: 46 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ UINTN EfiMajorVersion = 0;
230230
UINT32 AccessFlagsBoot = ACCESS_FLAGS_BOOT;
231231
UINT32 AccessFlagsFull = ACCESS_FLAGS_FULL;
232232
CHAR16 *ArchType = NULL;
233-
CHAR16 *ArchBits = NULL;
234233
CHAR16 *OurToolTag = NULL;
235234
CHAR16 *OurTypeTag = NULL;
236235
CHAR16 *VendorInfo = NULL;
@@ -3886,39 +3885,20 @@ EFI_STATUS EFIAPI efi_main (
38863885
#endif
38873886

38883887
/* Architecture */
3889-
#if defined(EFIX64)
3888+
#if defined(EFIX64)
38903889
ArchType = L"x86_64";
3891-
ArchBits = L"64 bit";
3892-
#elif defined(EFI32)
3890+
#elif defined(EFI32)
38933891
ArchType = L"x86_32";
3894-
ArchBits = L"32 bit";
3895-
#elif defined(EFIAARCH64)
3892+
#elif defined(EFIAARCH64)
38963893
ArchType = L"ARM_64";
3897-
ArchBits = L"64 bit";
3898-
#else
3894+
#else
38993895
ArchType = LABEL_UNKNOWN;
3900-
#endif
3901-
3902-
#if REFIT_DEBUG > 0
3903-
if (ArchBits == NULL) {
3904-
LOG_MSG("Arch/Type:- '%s'", ArchType);
3905-
}
3906-
else {
3907-
LOG_MSG("Arch/Type:- '%s' (%s)", ArchType, ArchBits);
3908-
}
3909-
LOG_MSG("\n");
3896+
#endif
39103897

3911-
/* Build Engine */
3912-
LOG_MSG("Made With:- ");
3913-
# if defined(__MAKEWITH_TIANO)
3914-
LOG_MSG("'TianoCore EDK II'");
3915-
# elif defined(__MAKEWITH_GNUEFI)
3916-
LOG_MSG("'GNU-EFI'");
3917-
# else
3918-
LOG_MSG("Unknown DevKit");
3919-
# endif
3898+
#if REFIT_DEBUG > 0
3899+
LOG_MSG("Arch/Type:- '%s'", ArchType);
39203900
LOG_MSG("\n");
3921-
#endif
3901+
#endif
39223902

39233903
/* Toolchain */
39243904
OurTypeTag = L" (Local)";
@@ -3942,18 +3922,29 @@ EFI_STATUS EFIAPI efi_main (
39423922
OurToolTag = L"Other/Unknown";
39433923
#endif
39443924

3945-
#if REFIT_DEBUG > 0
3925+
#if REFIT_DEBUG > 0
39463926
LOG_MSG("Toolchain:- '%s'%s", OurToolTag, OurTypeTag);
39473927
LOG_MSG("\n");
39483928

3929+
/* Build Engine */
3930+
LOG_MSG("Made With:- ");
3931+
#if defined(__MAKEWITH_TIANO)
3932+
LOG_MSG("'TianoCore EDK II'");
3933+
#elif defined(__MAKEWITH_GNUEFI)
3934+
LOG_MSG("'GNU-EFI'");
3935+
#else
3936+
LOG_MSG("Unknown DevKit");
3937+
#endif
3938+
LOG_MSG("\n");
3939+
39493940
/* TimeStamp */
39503941
LOG_MSG(
3951-
"Timestamp:- '%d-%02d-%02d %02d:%02d:%02d' (Base)",
3942+
"Timestamp:- '%d-%02d-%02d %02d:%02d:%02d'",
39523943
NowYear, NowMonth,
39533944
NowDay, NowHour,
39543945
NowMinute, NowSecond
39553946
);
3956-
#endif
3947+
#endif
39573948

39583949
/* Run Secure Boot Update and Proceed Accordingly */
39593950
MokProtocol = SecureBootSetup();
@@ -3980,16 +3971,16 @@ EFI_STATUS EFIAPI efi_main (
39803971
#if REFIT_DEBUG > 0
39813972
/* Log System Details */
39823973
LogBasicInfo (MokProtocol);
3983-
#endif
39843974

39853975
// First scan volumes by calling ScanVolumes() to find "SelfVolume",
39863976
// SelfVolume is required by LoadDrivers() and ReadConfig();
39873977
// A second call is needed later to enumerate volumes as well as
39883978
// to register new filesystem(s) accessed by drivers.
3989-
#if REFIT_DEBUG > 0
39903979
MY_MUTELOGGER_SET;
39913980
#endif
3981+
39923982
ScanVolumes();
3983+
39933984
#if REFIT_DEBUG > 0
39943985
MY_MUTELOGGER_OFF;
39953986
if (!SelfVolSet) {
@@ -4067,28 +4058,40 @@ EFI_STATUS EFIAPI efi_main (
40674058
#ifdef __MAKEWITH_TIANO
40684059
Status = CheckStatusOC();
40694060
if (Status == EFI_ALREADY_STARTED) {
4061+
#if REFIT_DEBUG > 0
4062+
LOG_MSG("** WARN: RefindPlus Chainload via OpenCore Detected\n");
4063+
LOG_MSG(" 1. Some Features *MAY NOT* Function As Expected\n");
4064+
LOG_MSG(" 2. ");
4065+
#endif
4066+
40704067
// Disable 'NvramProtect' and 'NvramProtectEx' if chainloaded via OpenCore
40714068
if (GlobalConfig.NvramProtect ||
40724069
GlobalConfig.NvramProtectEx
40734070
) {
4074-
WarnOC = TRUE;
40754071
GlobalConfig.NvramProtect = FALSE;
40764072
GlobalConfig.NvramProtectEx = FALSE;
40774073

40784074
#if REFIT_DEBUG > 0
4079-
LOG_MSG("** WARN: RefindPlus Chainload via OpenCore Detected\n");
4080-
LOG_MSG(" 1. Some Features *MAY NOT* Function as Expected\n");
4081-
if (!AppleFirmware) {
4082-
LOG_MSG(" 2. ");
4083-
}
4084-
else {
4085-
LOG_MSG(" 2. The 'NvramProtect' Feature Has Been Disabled\n");
4075+
// DA-TAG: WarnOC for convenience here
4076+
// Proper 'TRUE' tag set later
4077+
WarnOC = (
4078+
GlobalConfig.EnableTouch ||
4079+
GlobalConfig.EnableMouse
4080+
);
4081+
4082+
if (AppleFirmware && WarnOC) {
4083+
LOG_MSG("The 'NvramProtect' Feature Has Been Disabled\n");
40864084
LOG_MSG(" 3. ");
40874085
}
4088-
LOG_MSG("RefindPlus Pointer Device Settings are Ignored");
4089-
LOG_MSG("\n\n");
40904086
#endif
40914087
}
4088+
4089+
#if REFIT_DEBUG > 0
4090+
LOG_MSG("RefindPlus Pointer Device Settings Are Ignored");
4091+
LOG_MSG("\n\n");
4092+
#endif
4093+
4094+
WarnOC = TRUE;
40924095
}
40934096

40944097
/* Unlock partitions if required */

CHANGELOG.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
0.14.2.AD (PRE-RELEASE):
1+
0.14.2.AD (11 NOV 2025):
22
-----------------------
33
- Adds Full `Linux EFI Bootable Kernel` Support
44
* Now fully supports booting `Linux Unified Kernel` images
@@ -10,6 +10,8 @@
1010
- Fixes Issues with Using the `banner_scale` Setting. Thanks @Mardekaar
1111
- Fixes `Auto Defined BadRAM` Handling
1212
* This element of the `TagBadRAM` feature was previously a `NOOP`
13+
- Improves Image Scaling Handling. Thanks @emperor06
14+
* Now uses floating-point arithmetic on 64-bit architectures
1315
- Improves `FollowSymlinks` Handling
1416
* Can now be targeted at specific volumes
1517
- Removes impacts on other installed instances
@@ -35,7 +37,7 @@
3537
- Amends Feature: `BootLogo` to `ExitLogo`
3638
* Renamed to distinguish from inherited `BootLogo` feature
3739
- That applied to Legacy BIOS Boot items
38-
- `BootLogo` and `ExitLogo` may be fully merged later
40+
- `BootLogo` and `ExitLogo` may be fully merged later
3941
* Auto scaling of ExitLogo image can now be skipped
4042
- Via a new `disable_exitlogo_scale` configuration token
4143
* Final clearing of ExitLogo image can now be skipped

README.md

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ A Boot Manager for Mac and PC
1818

1919
## Overview
2020

21-
RefindPlus builds on _`rEFInd`_ to extend its functionality with enhancements and fixes that include several Apple Mac and UEFI-PC related items that may be of interest to anyone requiring a capable boot manager.
21+
RefindPlus is a fork of _`rEFInd`_ that provides extended functionality via enhancements and fixes that include several Apple Mac and UEFI-PC related items that may be of interest to anyone requiring a boot manager for Mac and PC.
2222

23-
RefindPlus is particularly useful for those with additional configuration needs or that require advanced or otherwise non-typical options for running operating systems and uEFI utilities on Mac and PC.
23+
RefindPlus is particularly useful for those with additional configuration needs or that require advanced or otherwise non-typical (hence typically unavailable) options for running operating systems and uEFI utilities on Mac and PC.
2424

2525
Some features:
2626
- Maintains feature and configuration parity with `Upstream v0.14.2` base.
@@ -54,7 +54,9 @@ Some features:
5454

5555
## Installation
5656

57-
[MyBootMgr](https://www.dakanji.com/creations/index.html) is recommended to automate installing RefindPlus when running Mac OS on Intel-based Macs. Alternatively, as the RefindPlus efi file can function as a drop-in replacement for the upstream efi file, the [rEFInd package](https://www.rodsbooks.com/refind/installing.html) can be installed first and its efi file replaced with the RefindPlus efi file (Rename RefindPlus file to match). This allows installing RefindPlus on other compatible operating systems supported upstream. See `UEFI Secure Boot` under the [Divergence Section](https://github.com/RefindPlusRepo/RefindPlus#divergence) for how to enable this if required.
57+
A straightforward way is to make the RefindPlus efi file a `UEFI Fallback File` by naming it accordingly, `BOOTx64.efi`, and placing this in the `UEFI Fallback Path` of a disk, `/EFI/BOOT`.
58+
59+
[MyBootMgr](https://www.dakanji.com/creations/index.html) is recommended to automate installing RefindPlus when running Mac OS on Intel-based Macs. Alternatively, as the RefindPlus efi file can function as a drop-in replacement for the upstream efi file, the [rEFInd package](https://www.rodsbooks.com/refind/installing.html) can be installed first and its efi file replaced with the RefindPlus efi file (rename RefindPlus file to match). This allows installing RefindPlus on other compatible operating systems supported upstream. See `UEFI Secure Boot` under the [Divergence Section](https://github.com/RefindPlusRepo/RefindPlus#divergence) for how to enable this if required.
5860

5961
> [!NOTE]
6062
>
@@ -97,10 +99,12 @@ decline_help_size |Disables feature that sets additional UI scaling for very
9799
decline_help_text |Disables feature that sets screen text to complementary colours
98100
decouple_key_f10 |Unmaps the `F10` key from native screenshots (the `\` key remains mapped)
99101
disable_apfs_load |Disables inbuilt provision of APFS filesystem capability
100-
disable_apfs_sync |Disables feature allowing direct APFS/FileVault boot (Without "PreBoot")
101-
disable_bootlogo |Disables display of boot logos on loading some items if required
102-
disable_check_amfi |Disables AMFI Checks on Mac OS if required
103-
disable_check_compat |Disables Mac version compatibility checks if required
102+
disable_apfs_sync |Disables feature allowing direct APFS/FileVault boot (without "PreBoot")
103+
disable_check_amfi |Disables AMFI Checks on Mac OS
104+
disable_check_compat |Disables Mac version compatibility checks
105+
disable_exitlogo_clear|Disables clearing displayed exit logo images on exit screens
106+
disable_exitlogo_image|Disables display of exit logo images on exit screens
107+
disable_exitlogo_scale|Disables scaling displayed exit logo images on exit screens
104108
disable_pass_gop_thru |Disables feature that provides GOP instance on UGA for some loading screens
105109
disable_legacy_sync |Disables detailed indentification of Mac legacy BIOS boot capability
106110
disable_nvram_paniclog|Disables logging Mac OS kernel panics to nvRAM
@@ -110,7 +114,7 @@ disable_rescan_dxe |Disables scanning for newly revealed DXE drivers when con
110114
disable_set_applefb |Disables provision, under some circumstances, of missing Apple Framebuffers
111115
disable_set_consolegop|Disables feature that fixes some issues with GOP graphics on legacy units
112116
enable_esp_filter |Prevents other ESPs other than the RefindPlus ESP being scanned for loaders
113-
force_trim |Forces `TRIM` on Third-Party SSDs on Macs if required
117+
force_trim |Allows forcing `TRIM` on Third-Party SSDs on Macs
114118
hidden_icons_external |Allows scanning for `.VolumeIcon` icons on external volumes
115119
hidden_icons_ignore |Disables scanning for `.VolumeIcon` image icons if not required
116120
hidden_icons_prefer |Prioritises `.VolumeIcon` and `.VolumeBadge` image icons when available
@@ -144,12 +148,17 @@ In addition to the new functionality listed above, the following upstream tokens
144148
- `tools` option to _enable_ graphics mode loading for such.
145149
- `none` option to _disable_ graphics mode loading for everything.
146150
- `everything` option to _enable_ graphics mode loading for everything.
147-
- `OpenCore` and `Clover` can be specifically set to load in graphics mode.
148-
- **"showtools":** Additional tool added:
151+
- `SystemD`, `OpenCore`, and `Clover` can be set to load in graphics mode.
152+
- **"showtools":** Defaults changed and additional tool added:
149153
- `clean_nvram` : Allows resetting nvRAM directly from RefindPlus.
150154
- When run on Apple firmware, RefindPlus will additionally trigger nvRAM garbage collection
151155
- **menuentry:** Additional OSTypes added for manual stanzas:
152-
- `RefitVariant`, `OpenCore`, and `Clover` can be additionally defined
156+
- `RefitVariant`, `SystemD`, `OpenCore`, and `Clover` can be additionally defined
157+
- **"follow_symlinks":** Accepts optional additional parameters
158+
- `follow_symlinks ON` : Symlinks always followed
159+
- `follow_symlinks OFF` : Symlinks never followed
160+
- `follow_symlinks OFF "Vol_1,Vol_2"`: Symlinks followed unless on list
161+
- `follow_symlinks ON "Vol_9,Vol_10"`: Symlinks followed only if listed
153162
- **"csr_values":** A value of `0` can be set as the `Enabled` value to allow `Over The Air (OTA)` updates when running Mac OS 11.x (Big Sur) or newer with SIP enabled.
154163
- This is equivalent to activating the `csr_normalise` token.
155164
- **"log_level":** Controls the native log format and an implementation of the upstream format.
@@ -173,8 +182,8 @@ In addition to the new functionality listed above, the following upstream tokens
173182
## Divergence
174183

175184
Significant visible implementation differences vis-a-vis the upstream base are:
176-
- **UEFI Secure Boot:** RefindPlus binaries are currently not signed for secure boot support and do not include the `Secure Boot Advanced Targeting (SBAT)` sections required by Shim v15.3/newer.
177-
- > The process [outlined here](https://www.rodsbooks.com/refind/secureboot.html#installation) for signing self built upstream binaries can be followed to enable suport.
185+
- **UEFI Secure Boot:** RefindPlus binaries as from v0.14.2.AD include `Secure Boot Advanced Targeting (SBAT)` sections required by Shim v15.3/newer for secure boot support but require users to self-sign the binaries and to enroll the certificate.
186+
- > The process [outlined upstream](https://www.rodsbooks.com/refind/secureboot.html#installation) for self-signing can be followed to enable support.
178187
- > An adaptation of the process for RefindPlus is [provided here](https://github.com/RefindPlusRepo/RefindPlus/discussions/190#discussioncomment-10130431). Modify for newer releases as required.
179188
- > Refer to [this summation](https://forum.manjaro.org/t/howto-enable-secure-boot-with-refind/121403/6) for futher insight.
180189
- **GZipped Loaders:** RefindPlus only provides stub support for handling GZipped loaders as this is largely only relevant for units on the ARM architecture.
@@ -195,15 +204,15 @@ Significant visible implementation differences vis-a-vis the upstream base are:
195204
- > Activate the RefindPlus-specific `disable_apfs_load` setting to switch this feature off.
196205
- **APFS PreBoot Volumes:** RefindPlus always synchronises APFS System and PreBoot partitions transparently such that the Preboot partitions of APFS volumes are always used to boot APFS formatted Mac OS. Hence, a single option for booting Mac OS on APFS volumes is presented in RefindPlus to provide maximum APFS compatibility. This is done using an inbuilt `SyncAPFS` feature.
197206
- > Activate the RefindPlus-specific `disable_apfs_sync` setting to switch this feature off.
198-
- **Mac nvRAM Protection:** RefindPlus always prevents UEFI Windows Secure Boot from saving certificates to Mac nvRAM as this can result in damage and, ultimately, an inability to boot anything on some Macs (Typically Pre 2013 Vintage). Blocking these certificates does not impact the operation of UEFI Windows on such Macs. This filtering only happens when Mac firmware is detected and is not applied to other types of firmware. This is done using an inbuilt `ProtectNVRAM` feature.
207+
- **Mac nvRAM Protection:** RefindPlus always prevents UEFI Windows Secure Boot from saving certificates to Mac nvRAM as this can result in damage and, ultimately, an inability to boot anything on some Macs (typically Pre 2013 Vintage). Blocking these certificates does not impact the operation of UEFI Windows on such Macs. This filtering only happens when Mac firmware is detected and is not applied to other types of firmware. This is done using an inbuilt `ProtectNVRAM` feature.
199208
- > Activate the RefindPlus-specific `disable_nvram_protect` setting to switch this feature off.
200209
- **Mac Legacy BIOS Boot:** RefindPlus originally assumed all Macs were capable of legacy BIOS boot based on code that went in upstream back in 2012 when this was a reasonable default. However, some later Intel Macs do not support legacy BIOS boot and RefindPlus now attempts to categorise Macs to enable/disable legacy boot accordingly.
201210
- > Activate the RefindPlus-specific `disable_legacy_sync` setting to keep the old assumption.
202211
- **Secondary Configuration Files:** While the upstream documentation prohibits including tertiary configuration files from secondary configuration files, there is no mechanism enforcing this prohibition. Hence, tertiary, quaternary, quinary, and more, configuration files can in fact be included.
203212
- > RefindPlus enforces the limitation for inclusion to secondary configuration files.
204213
- **Shortcut Keys:** RefindPlus does not allocate shortcut keys based on the operating system type/name as there is no way of knowing what would actually be loaded in many cases.
205214
- > Keys are allocated based on display position in the order of `Key 1` to `Key Z`.
206-
- > Alphabetic `Keys I and O` are not used while Numeric `Key 0` is reserved for internal use.
215+
- > Alphabetic `Keys I and O` are not used, while Numeric `Key 0` is reserved for internal use.
207216
- > Keys are not allocated to `Tools` apart from `Key A` for `About Refindplus` and `Key Z` for `System Shutdown`.
208217
- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted, and the `Entry` object immediately discarded, once a `Disabled` setting is encountered. The outcome is the same as upstream, which always continues to create and return a fully built object that is later discarded in such cases. The approach adopted in RefindPlus allows for an optimised loading process particularly when such `Disabled` tokens are placed immediately after the `menuentry` line (see examples near the bottom of the `config.conf-sample` file).
209218
- > This also applies to `submenuentry` items which can be enabled or disabled separately.

0 commit comments

Comments
 (0)