Skip to content

Releases: dakanji/RefindPlus

v0.14.2.AA

08 Oct 19:22
Compare
Choose a tag to compare
  1. Attached a replacement package, HotFix-01, to address misc post release issues1. The fix is a rebuild without adding an SBAT section to the binary.

  • Synced with Upstream v0.14.2
  • Fixes Handling Windows Recovery Tools Volumes
    • Now filtered out from scanning for loaders via GUID
    • Effectively results in an unending scan loop otherwise
    • This bug was inherited from upstream code
  • Fixes ScanFirmwareDefined Handling
    • Spurious items were added (Typically as firmware shell instances)
    • This bug was introduced in v0.14.0.AC (Commit aad3298)
  • Fixes Jpeg Image Handling
    • Garbled images were output
    • This bug was introduced in v0.14.1.AA (Commit 3ae51e9)
      • This reversed the order of two parameters in MyMemSet as part of an upstream sync
        • #define memset MyMemSet to #define memset(b, c, v) MyMemSet(b, v, c) in libeg/nanojpeg.c
      • These parameters had already been reversed elsewhere in v0.13.2.AG (Commit 2d8ab59)
      • The cumulative changes invalidated each other
  • Fixes UGA Graphics Handling
    • RefindPlus crashed when run with UGA-based GPUs
  • Improves HelpIcon Handling
    • The os_uefi icon is now cached on first use
    • Misc other icon caching related optimisations
  • Improves .VolumeIcon Handling
    • These can now be located under the same folder as a loader
    • Such are preferred over any in the default (volume root) location
  • Improves Misc Handling
    • Some entry types were mislabelled as Linux
    • Now recognises Linux Unified Key Setup (LUKS) encrypted volumes
    • Now limits spoof_osx_version to Apple firmware to match documentation
    • No longer attempts to clear the opencore-version variable when booting into Mac OS
      • This variable is actually only stored in a volatile state
    • Addressed misc static analysis flags
      • These affect some filesystem drivers; which are updated accordingly
  • Amends Tool Handling
    • Largely aligned with the new approach introduced with Upstream v0.14.2
      • RefindPlus variation:
        • EFI/BOOT/tools is scanned in addition to EFI/tools by default
        • The Memtest tool is effectively handled the old way
          • memtest and memtestXYZ folders are scanned
          • Memtest fallback loader files (Boot{arch}.efi) are handled
    • Adds tools option to use_graphics_for configuration token
      • These can now be set to load in graphics screen mode
      • Verbose screen output is disabled when set to use graphics
      • NB: Some tools, such as some uEFI shell, may require text screen mode
  • Amends Ventoy Handling
    • Instances are now automatically detected and processed
    • Hence, specific handling is no longer user configurable
    • The associated handle_ventoy configuration token is now removed and ignored if set
  • Amends HelpScan Feature
    • The feature is now essentially included upstream as a core item
    • Hence, specific handling is no longer user configurable
    • The associated decline_help_scan configuration token is now removed and ignored if set

  1. HotFix 01: 10 Oct 24

v0.14.1.AA

04 Jun 06:09
Compare
Choose a tag to compare
  • Synced with Upstream v0.14.1
  • Adds SyncTrust Feature
    • The boot Chain of Trust may be broken on booting with 3rd-party tools on T2/TPM chipped units
    • When this happens, the unit refuses to boot the selected item and may even become unresponsive
    • This feature provides a workaround by triggering a trusted native reboot to the selected item
    • This feature can be enabled by activating a new sync_trust configuration token
  • Adds LegacySync Feature
    • RefindPlus previously assumed all Macs were capable of legacy BIOS boot
      • This was from code that went in upstream in 2012 when this was a reasonable working assumption
        • However, Macs later became UEFI certified and the last Intel Macs appear to be UEFI Class 3+
        • UEFI Class 3/3+ devices do not support legacy BIOS boot
      • This feature attempts to categorise Macs and allow/disallow legacy BIOS boot accordingly
    • Enabled by default but can be disabled using a new disable_legacy_sync configuration token
      • Disabling might be needed if a Mac is mis-categorised and legacy BIOS boot wrongly prevented
  • Adds HelpSize Feature
    • Provides option to force non-standard or otherwise unsupported screen resolutions
      • This can help work around issues where pre-boot configuration screen are not displayed
      • The issues are typically EDID related or the auto-selection of incorrect/incompatible resolutions
      • This aspect of the HelpSize feature requires booting into systems that fully support the graphics
    • An ExDPI category for screens with resolutions of 6400 x 4000 or more was created
      • UI elements are scaled up by four (4) on such screens when UI element scaling is active
      • UI elements on other HiDPI screens are still scaled up by two (2) with UI scaling active
    • Enabled by default but can be disabled using a new decline_help_size configuration token
      • The new token sets RefindPlus to only apply up to 2x UI element scaling
  • Fixes Legacy BIOS Boot on Certified UEFI Class 2 Macs
    • Optimisations for speed had potentially disabled legacy BIOS boot on some Macs
    • This bug was introduced in v0.13.3.AB (Commit 66dbed0)
  • Fixes Potential Memory Conflict
    • Some constants were passed to a function that reallocates memory
    • This bug was introduced in v0.14.0.AA (Commit 3fc36f5)
    • Extended in v0.14.0.AB (Commit 5cb1ed9)
  • Fixes Display Resolution Handling
    • User defined resolutions were not being properly handled
      • Only the default, max, resolution was considered
      • This meant that instances with defined resolutions were not properly displayed
    • Separately, the selected resolution when seeking max was not always the actual maximum
    • Additionally, a HelpSize Feature, documented separately, was introduced
  • Fixes DirectBoot Handling
    • Was not functional
  • Fixes HelpScan Handling
    • Rationalises implementation
      • Could be applied, when disabled, to some items that should be excluded
  • Improves SystemdVars Handling
  • Improves GraphicsFor Handling
    • Users can now set none under the use_graphics_for token to disable graphics mode boot
    • Users can now set everything to activate this for all boots
      • The previous option of setting use_graphics_for alone has also been fixed and remains
  • Improves HiddenTags Handling
    • Shows volumes names along with GUID where only the GUID would have previously been shown
      • Allows human friendly instance identification when viewing the Restore Entries screen
    • Breaks backward compatibility with upstream when tags are hidden in RefindPlus
      • Tags hidden upstream remain forward compatible with RefindPlus
    • Fixes situation where some loaders in ESP locations were not hidden when selected on-screen (minus key)
      • Was also the case when full paths were used in dont_scan_files
  • Improves License Presentation
    • Rationalises presentation to make clear it is on GPLv3/Later
  • Improves MemTest Handling
    • Updated exclusion from loaders (Row 1 Items)
    • Updated to handle memtest+{ARCH}.efi and memtest86+{ARCH}.efi files as per upstream
  • Improves ProtectNvram Handling
    • Now also blocks the CurrentPolicy and CurrentActivePolicy variables
  • Improves SyncNVram Handling
    • Now also clears the opencore-version variable, if present, when booting into macOS directly
      • This variable is effectively an OpenCore Present flag that is checked by the macOS kernel
      • This variable removal only applies when RefindPlus is NOT chain-loaded via OpenCore
      • This variable removal also applies to macOS installers
    • Separately, the implementation of the base feature was not functional on macOS boots and was fixed
  • Improves HelpIcon Handling
    • The following OS Icons are now cached on first load and reused as required afterwards when this feature is active
      • List is "os_mac", "os_win", "os_win8", "os_linux", "os_legacy", "os_clover", "os_opencore", "os_unknown", and "dummy image"
      • List is stored in TableBuiltinIconOS
    • Supplements the existing caching of items covered by BuiltinIconTable
      • The BuiltinIconTable item caching always happens with or without the HelpIcon feature
  • Improves CleanNvram Handling
    • Now clears CurrentPolicy and CurrentActivePolicy variables on Apple firmware
  • Improves Misc Handling
    • Restructured config file into four (4) sections
    • Completed LodePNG 20230410 update started in v0.14.0.AC
    • Renames the cd item under the scanfor config token as cdbios
      • Provides clarity that this is a BIOS scan option
      • Maintains compatibility with existing settings including upstream
    • The TimeoutSeconds item in REFIT_MENU_SCREEN was changed to INTN
      • Follow on from fix to Timeout item in REFIT_CONFIG previously changed to INTN
      • The original fix for SilentBoot/DirectBoot was incomplete (Commit 78d6138 in v0.13.2.AH)
    • Applied misc micro optimisation for speed
      • Restructured search pattern for config tokens
      • Optimised LoadDrivers function
    • Misc fixes for running in TextOnly mode
    • Adjusted AppleFramebuffer handling to eliminate unneeded cycles
  • Renames Misc Configuration Tokens
    • disable_amfi to disable_check_amfi
    • disable_compat_check to disable_check_compat

v0.14.0.AC

06 Feb 03:01
Compare
Choose a tag to compare
  • Adds SyncNVram Feature
    • Sets RefindPlus to always clear some nvRAM settings on certain boot types
      • Currently applied to Bluetooth settings for macOS
        • bluetoothInternalControllerinfo
        • bluetoothActiveControllerInfo
        • bluetoothExternalDongleFailed
    • The feature can be enabled using a new sync_nvram configuration token
  • Adds PersistBootArgs Feature
    • Outputs of macOS boot argument related settings are now written to vRAM instead of to nvRAM
      • This is to reduce wear and tear on the nvRAM storage chip
    • Enabled by default but can be disabled using a new persist_boot_args configuration token
  • Fixes HelpIcon Feature
    • The feature had been switched off by default instead of being switched on
    • This bug was introduced in v0.14.0.AB (Commit 9dcd45a)
  • Fixes Legacy MBR, including Legacy Windows, Handling
    • Negatively impacted by Volume->RootDir filtering in the DontScanVolumes check consolidation
    • This bug was introduced in v0.14.0.AB (Commit a92b376)
  • Improves Misc Handling
    • Partially back-ported LodePNG updates
    • Additional CSR scenarios are now recognised
    • Updated misc function structures to improve speed
      • Variable initialisation tweaks
      • Memory handling tweaks to prefer stack over heap where possible
    • MemLog resolution set to 1/10000 seconds (1/10 milliseconds)
      • For timing accuracy when RefindPlus loads under a second
      • Previous resolution was 1/1000 seconds (1 millisecond)
    • Extend ostype Coverage in Manual Stanzas
      • Now includes RefitVariant, OpenCore, and Clover
      • These are additional to the upstream original items
      • Manual stanzas stay in Section 3 of the config file
  • Improves Graphics Handling
    • Improvements to handling Appleframebuffer
    • Improvements to handling Graphics Pass Through
      • Misc optimisation
      • The PassGopThrough feature added in 0.13.3.AD is now user configurable
        • Enabled by default but can now be disabled using a new disable_pass_gop_thru configuration token
    • Improvements to handling misc graphics items
    • Amendments to GOP Graphics Handling
      • GOP is now provided/replaced on the ConsoleOut handle by default when required
      • Hence, the "Opt-In" provide_console_gop token is replaced by the "Opt-Out" disable_set_consolegop
  • Improves SetBootArgs Handling
    • The set_boot_args configuration token can now take a -none setting
    • This permits disabling previous settings in supplementary/theme config files
  • Improves Misc Linux Distro Handling
    • Now better labelled
  • Improves Icon File Scanning
    • Optimises VolumeIcon and VolumeBadges searches
    • These items are now only scanned for displayed volumes
    • Improves loading speed by reducing disk I/O access
  • Improves macOS Installer Handling
    • Now better identified and labelled
  • Improves RotateCSR Handling
    • Now displays a confirmation input screen before execution
    • The NormaliseCSR feature was always applied when rotating
  • Amends Non Standard Binary Handling
    • Apple 'Fat' Binary now also assumed valid on UEFI-PC
    • Consistent with upstream implementation
      • 'Plain' Binaries are assumed valid on Apple firmware
      • Upstream considers such invalid on all firmware types
  • Amends HideUIFlags Handling
    • Now aligned with behaviour of other configuration tokens
      • Existing settings are now overridden by settings in supplementary/theme config files
      • Settings in supplementary/theme config files were previously added to existing ones
    • A new flag, none, was added
      • Allows reseting the token in supplementary/theme config files
      • Takes priority over all other settings whenever present
  • Amends Ventoy Handling
    • Specific Ventoy handling is now disabled unless enabled via a new handle_ventoy configuration token
      • This eliminates time on spent on unnecessary searches
      • Also eliminates a default divergence from upstream
    • Whole Disk volumes with Legacy Bootcode were previously hidden whenever Ventoy was present
      • This was to avoid spurious/unbootable instances appearing
        • This however affected legitimate instances without a way to override the behaviour
      • Now attempts to target this when handle_ventoy is set or lets them appear instead
      • Users can hide unwanted instances if required
  • Amends SilenceAPFS Feature
    • No longer separately user configurable and subsumed into the SupplyAPFS feature
    • The associated disable_apfs_mute configuration token is now removed and ignored if set
  • Removes HelpTags Feature
    • The issue the feature was meant to fix does not actually exist
    • The associated decline_help_tags configuration token is now removed and ignored if set
  • Renames Configuration Token
    • decline_apple_fb to disable_set_applefb

v0.14.0.AB

03 Oct 02:30
Compare
Choose a tag to compare
  1. Attached a replacement package, HotFix-01, to address misc post release issues1

  • Adds HelpScan Feature
    • Ensures that some typically unwanted loaders are not displayed in the first row
      • Enforces tools only appearing in the second row
      • Always adds program default items for exclusion to user defined ones
    • Enabled by default but can be disabled using a new decline_help_scan configuration token
      • The new token sets RefindPlus to follow the upstream implementation
  • Fixes MemTest Tool
    • The MemTest fallback loader file was not recognised as a MemTest loader
    • Hence MemTest could only be run via explicit MemTest efi files
    • This bug was introduced in v0.12.0.AN (Commit 44b53e8)
  • Improves Ventoy Handling
    • Removes multiple redundant/invalid loader options that otherwise appear
    • Displays an os_ventoy icon if present
  • Improves ScaleUI Handling
    • Eliminates extra UI scaling that may happen on main screen rescans
  • Improves SyncAPFS Handling
    • Handles synced multi instance APFS container volumes in DontScanVolumes list
    • Stores APFS Roles in volume object instead of retrieving such each time
  • Improves Misc External Screen Tool Handling
    • Some tools that run external screens, such as GDisk, may change volume device paths
    • Hence, on return, RefindPlus did not operate as it should
    • Previously fixed but re-emerged and now addressed again
  • Improves Linux Param File Handling
    • A memory conflict meant the files were not always read
  • Improves Filesystem Driver Handling
    • Resolves failure to install on some handles
  • Improves GPT Handling
    • Applies misc minor tweaks
  • Improves Comma Delimited Strings Handling
    • Now accommodates leading spaces before string elements
  • Improves Loader Icon Handling
    • Provides generic Linux fallback for some distros
    • Prevents fallback loaders with invalid architectures from being displayed
  • Improves AlsoScan Feature Handling
    • The @root/boot path was removed from the default also_scan_dirs list
    • Added in v0.13.3.AD but users should be able to add this if required
  • Renames Misc Configuration Tokens
    • decline_nvram_protect to disable_nvram_protect
    • decline_reload_gop to disable_reload_gop
    • decline_apfs_load to disable_apfs_load
    • decline_apfs_mute to disable_apfs_mute
    • decline_apfs_sync to disable_apfs_sync
    • decline_apple_fb to disable_provide_fb

  1. HotFix 01: 01 Nov 23

v0.14.0.AA

13 Jun 19:00
Compare
Choose a tag to compare
  1. Attached a replacement package, HotFix-01, to address misc post release issues1

  • Synced with Upstream v0.14.0
  • Updates Deprecated EFI 1.x Protocols
    • Misc deprecated protocols aligned with UEFI 2.x specs
    • Some are related to filesystem drivers; for which updated versions are created accordingly
  • Adds HelpIcon Feature
    • Improves loading speed by preferring the current theme's generic/default loader icons
    • Enabled by default but can be disabled using a new decline_help_icon configuration token
  • Adds GZippedLoaders Feature
    • Stub implementation of upstream feature focused on the ARM architecture
  • Adds Misc Upstream Changes/Fixes
  • Fixes ReloadGOP Feature
    • A regression had meant that the feature was not active
    • This bug was introduced in v0.13.3.AD (Commit dc642c6)
  • Improves SupplyNVME Feature
    • Further isolated from other code
  • Improves SupplyAPFS Feature
    • Now run after device connection to ensure APFS availability
    • This should also resolve availability with some third party flashed GPUs
  • Improves AcquireGOP Feature
    • Now handles uncompressed OptionROMs
    • None encountered to date but theoretically possible
  • Improves AlsoScan Feature
    • The @root/boot path was added to the default also_scan_dirs list
  • Improves DynamicCSR Feature
    • Now also enables the RotateCSR tool if configured to be displayed
      • The tool was previously always disabled when DynamicCSR was active
    • Now attempts up to three (3) rotations
      • Some users have more than two (2) CSR settings
      • Stops at the first match of the target setting or after the third attempt
    • A screen message about NormalisedCSR was additionally suppressed
  • Improves Generic Menu Handling
    • Now provides a Return to Main Menu option on all such menus
  • Improves OpenCore Instance Handling
    • Now prevents loading OpenCore when RefindPlus is loaded via OpenCore
    • That is, prevents loading OpenCore when it is already active
  • Improves NvramProtect and NvramProtectEx Features
    • Now disabled when RefindPlus is loaded via OpenCore
  • Exposes MitigatePrimedBuffer Feature for User Configuration
    • Previously activated by default on all types of firmware
    • A limited base implementation is always active on Non-Apple firmware
    • Can now be extended on by activating a new mitigate_primed_buffer token
    • The feature does not operate on Apple firmware regardless of the token setting
  • Amends Filesystem Drivers
  • Amends Big Selection Image Size Filtering
    • The maximum Big Selection image size is increased to 512px from 320px
    • The Small Selection image maximum is maintained at 256px
  • Amends EFI File Validity Checks
    • Apple Fat Binaries are now always assumed to be valid on Apple firmware
    • This similarly applies to binaries with missing PE32+ headers

  1. HotFix 01: 22 Jul 23

v0.13.3.AD

07 Mar 11:00
Compare
Choose a tag to compare
  • Fixes Manual Stanza SubMenuEntries
    • A memory conflict meant that including such entries resulted in RefindPlus hanging
  • Fixes UGA Graphics
    • Addresses issue of UGA-Only GPUs being always forced into TextOnly mode
  • Fixes Misc Alt Build Function Duplication Issues
  • Fixes Forced Default Config Settings
    • Forced Defaults, typically based on firmware type, could be skipped under some circumstances
    • This gap has now been closed
  • Fixes Invalid ShowTools Entry Handling
    • Such invalid entries were previously only flagged and not actually handled
    • These are now additionally skipped
  • Improves DefaultSelection Feature
    • A substring match is now only attempted if an exact match fails
  • Improves CSR Handling
    • Multiple tweaks to improve handling CSR settings
    • Removes Limitation of DynamicCSR Feature to Apple Firmware
    • DynamicCSR also now runs whenever RefindPlus is loaded and not just when specific loaders are started
  • Improves System Shutdown/Restart Handling
    • Now displays a confirmation input screen before execution
  • Improves Misc Graphics Handling
    • Improves graphics related memory management
    • Improves UGA support via new PassGopThrough feature (Not user configurable)
  • Amends Selection Image Size Filtering
    • The maximum Big Selection image size is increased to 320px from 256px
    • The Small Selection image maximum is maintained at 256px
    • The default selection image is now used when a defined image cannot be found
      • Previously used a scaled version of the small image when the big one was missing
  • Amends Invalid UEFI Versions Handling
    • Now accounts for such by reducing the amendment threshold to UEFI 2.0
    • Still amends to UEFI 2.3 when UEFI amendments happen
    • No longer amends Runtime Services for UEFI amendments
    • No longer disables certain features on detecting inconsistent versions
    • No longer displays a warning message and the discrepancy is only logged
    • Fixes Memory Conflict in 'Invalid EFI Versions' Debug Logging
      • The DBG build had an invalid memory allocation instance that results in a hang when logging detection
  • Amends and Refactors Misc Items
    • General optimisation
    • Memory management improvements and fixes
    • Log file handling tweaks
  • Amends ScanAllESP Feature
    • Now aligned with upstream implementation and scans all ESPs by default
    • Hence, the "Opt-Out" decline_esp_filter token has been replaced by an "Opt-In" enable_esp_filter token
    • A previous issue where the token operated the wrong way round has been fixed

v0.13.3.AC

06 Dec 18:56
Compare
Choose a tag to compare
  • Adds NvramProtectEx Feature
    • Extends the NvramProtect feature (if set) to Mac OS and Unknown UEFI boots
    • The feature can be enabled using a new nvram_protect_ex configuration token
      • Replaces the FocusNvramFix feature which has been removed
      • Essentially restores functionality from EnableMacosFilter previously replaced by FocusNvramFix
  • Fixes QueryVariableInfo Handling
    • Now properly handled on UEFI-Mac units
    • The output is not currently presented however as Apple firmare does not return accurate information
  • Fixes Misc Static Analysis Flags
    • Some are related to filesystem drivers; for which updated versions are created accordingly
  • Improves SetVariable Hook/Event Handling
    • Misc improvements including improved memory management
    • Relevant to the NvramProtect feature
  • Improves Mac Recovery Tool Scan
    • Now skips some invalid entries such as APFS Recovery partitions
  • Improves ScreenShot Feature
    • Now clears the keystroke buffer in egScreenShot to mitigate against stuck keys
  • Improves Clean NVRAM Feature
    • Particularly regarding clearing OpenCore related variables
  • Improves Time Bound Primed Buffer Mitigation
    • Rationalises intervention threshold
  • Improves UI Element Scaling
    • Some units use a low resolution display for the boot stage that result in distorted UI
    • RefindPlus can now detect this and automatically scale UI elements down accordingly
    • Alternatively, users can use the scale_ui token to scale UI elements down
    • The threshold below which the display is considered LoRez is 1025px
    • Ensures correct icon scales are maintained on RescanAll calls
  • Amends SupplyNVME and SupplyUEFI Features
    • No longer supplied by default but when specifically activated
    • Hence, the "Opt-Out" decline_nvme_load token has been replaced by an "Opt-In" supply_nvme token
    • The "Opt-Out" decline_uefi_emulate token has also been replaced by an "Opt-In" supply_uefi token
    • A previous failure to be activated when NVME support was absent has been fixed
  • Renames Misc Configuration Tokens
    • decline_tags_help to decline_help_tags
    • decline_text_help to decline_help_text

v0.13.3.AB

06 Sep 09:41
Compare
Choose a tag to compare
  • Adds PreferUGA Feature
    • Sets RefindPlus to always use UGA for its graphics output when available
      • The default is to use GOP and to fall back on UGA when GOP is not available
    • The feature can be enabled using a new prefer_uga configuration token
  • Adds FollowSymlinks Feature
    • Allows following symbolic links to loaders
    • These are otherwise ignored to avoid misc issues but may be useful to run some Linux setups
    • The feature can be enabled using a new follow_symlinks configuration token
  • Adds FocusNvramFix Feature
    • Focuses the ProtectNVRAM feature (if set) on explicit UEFI Windows boots
    • The feature can be enabled using a new focus_nvram_fix configuration token
      • Replaces the EnableMacosFilter feature which has been removed
  • Fixes Unwanted APFS Data Volume Entries
    • APFS data volumes could sometimes appear as boot options due to inadequate filtering
  • Fixes SubScreen Boots
    • Boots from subscreens, such as after pressing F2, were handled as generic UEFI files
    • This resulted in some processes being skipped or unwanted processes being applied
    • RefindPlus now tries to make such boots specific as follows:
      • Opencore, Clover, Linux, MacOS, Windows and Misc Others
  • Fixes Apple Hardware Test Option
    • While Apple stopped providing this feature after June 2013, some users may have restored this
    • In such cases however, RefindPlus did not provide the option on APFS volumes when SyncAPFS is active
    • Now reinstated subject to not having multiple MacOS instances in any single APFS container
  • Fixes Misc Items
    • Always block UEFI Windows NVRAM items (Disregard Volatility)
    • Address misidentification of certain volume types as HFS+ volumes
    • Address misplaced Out and Return log tags
    • Eliminate excessive pointer event logging
    • Eliminate python script code smells
  • Improves System Reset Call Fix
    • Was previously always active when on system reboot calls
    • This meant such calls always required confirmation
    • Such confirmations are no longer required if keypresses had taken place before the call
    • Hence all legitimate calls now proceed without issue and buffered keystroke calls are also captured
  • Improves FS Type Handling
    • Prevents Windows Support Volumes from being offered as boot options
    • Updates Volume FS_TYPE setting to match assumed types
    • Differentiates between HFS+ types
  • Improves Time Bound Primed Buffer Mitigation
    • Reduces intervention threshold based on detection of confirmed user key presses
  • Amends the ShouldScan Function to Exclude HFS+ Recovery HD Volumes
    • This recovery functionality was meant to be handled by the Mac Recovery Tool
  • Amends the WarnIfLegacyProblems Function Run Position
    • Now runs after the SetupScreen function to ensure screen display on issues
  • Amends EFI Scan to Exclude BOOTCAMP
    • BootCamp creates HybridMBR disks and trigger redundant attempts to find EFI loaders
  • Ports Downstream Directory Scan Iteration Fix

v0.13.3.AA

07 Jun 11:06
Compare
Choose a tag to compare
  • Synced with Upstream v0.13.3
  • Adds EnableMacosFilter Feature
    • This feature is active by default and activates the ProtectNVRAM feature, if enabled, on MacOS boots
    • The ProtectNVRAM feature, if enabled, is activated for other applicable OS types regardless
    • The EnableMacosFilter feature can be disabled using a new decline_macos_filter configuration token
  • Adds DisableNvramPanicLog Feature
    • Sets a MacOS nvram_paniclog=0 boot argument to disable kernel panic logging to NVRAM
    • Replaces the PanicFilter feature which has been removed
  • Adds NvramVariableLimit Feature
    • Filters NVRAM variable write attempts
    • Variables larger than a specified size are discarded
    • This is activated by a new nvram_variable_limit configuration token
  • Adds DecoupleKeyF10 Feature
    • Unlinks the F10 key from the built in screenshot feature
    • Allows the use of 3rd party screenshot tools that also map the F10 key
    • The \ (forward slash) key remains linked to the built in screenshot feature
    • This is activated by a new decouple_key_f10 configuration token
  • Fixes DisableAMFI Feature
    • The feature had been disabled under some circumstances
    • This bug was introduced in v0.13.2.AP (Commit 8705fdb)
  • Improves HandleSignedInt Function
    • Ensures the function always returns a negative value when required
  • Improves FindMenuShortcutEntry Function
    • Now initially tries a exact match of the stored string against available entries
    • A match against substrings is only tried if an exact match is not found
  • Improves Pointer Device Handling
  • Renames Misc Configuration Tokens
    • decline_nvramprotect to decline_nvram_protect
    • decline_uefiemulate to decline_uefi_emulate
    • decline_espfilter to decline_esp_filter
    • decline_apfsload to decline_apfs_load
    • decline_apfsmute to decline_apfs_mute
    • decline_apfssync to decline_apfs_sync
    • decline_nvmeload to decline_nvme_load
    • decline_tagshelp to decline_tags_help
    • decline_texthelp to decline_text_help
    • decline_applefb to decline_apple_fb

v0.13.2.AP

19 Apr 08:23
Compare
Choose a tag to compare

Change 01: 21 Apr 221.


  • Adds PanicFilter Feature
    • RefindPlus now discards NVRAM write attempts of kernel panic information by default
    • Can be disabled using a new decline_panicfilter configuration token
    • Currently limited to when directly booting MacOS from RefindPlus
  • Adds SupplyAppleFB Feature
    • Attempts to provide AppleFramebuffers on Macs when absent under certain circumstances
    • Can be disabled using a new decline_applefb configuration token
  • Adds TextHelp Feature
    • Uses complementary text colours to improve legibility
    • Can be disabled using a new decline_texthelp configuration token
      • Only when using a custom title banner
      • Always on when using the default title banner
  • Adds IconRowMove Feature
    • Allows repositioning the icon row position on the RefindPlus screen
      • Sometimes needed when icons block parts of custom banners
    • Base position can be specified using a new icon_row_move configuration token
  • Adds IconRowTune Feature
    • Allows adjustments to the IconRowMove position
    • Offset value can be specified using a new icon_row_tune configuration token
  • Adds RansomDrives Feature
    • Some types of firmware, notably on HP Notebooks, may lock some partitions
      • This renders them inaccessible or may even lead to RefindPlus hanging
    • Such partitions can be unlocked by setting a new ransom_drives configuration token
    • This option is currently always disabled on Apple firmware
  • Adds RescanDXE Feature
    • Controls scanning for newly revealed DXE drivers when connecting handles
      • Switch ON or OFF with a new disable_rescan_dxe configuration token
    • This was previously done by default but may negatively impact loading speed
    • Typically only required when running non-native filesystems
  • Adds DriverPriority Feature
    • Asigns a higher priority to drivers loaded by RefindPlus
    • Ensures that such are loaded when other similar drivers exist (mainly in the firmware)
    • Currently tied to the RansomDrives Feature and only activated when that feature is active
  • Adds HaltSeconds Function
    • Works as PauseSeconds does, but does not terminate on keypress
  • Fixes Unicode Collation
    • Now checks for and uses Unicode Collation Protocol instances that support English
    • Previously simply selected the first instance found (Inherited)
    • This should allow proper support for languages using unicode text
  • Improves UEFI Runtime Function Wrapping
    • The wrapped UEFI Runtime SetVariable function is now better managed
  • Improves TransientBoot Feature
    • Now removes pre-existing PreviousBoot instances when booting with this option set
  • Improves DirectBoot Feature
    • Previously failed when a keyboard was not connected
    • Minimises screen shudder when the ESC key is held down to override DirectBoot
  • Improves ScreenShot Feature
    • Properly limited to one (1) sreenshot per keypress
      • Removes limitation of the keypress not continuing beyond the on-screen message display
    • Fixes Screenshots being only functional for the main RefindPlus screen
      • This bug was introduced in v0.13.2.AN (Commit 99da7ce)
  • Improves HandleSignedInt Function
    • Removed limitation on handled values
  • Improves egDisplaymessage Function
    • Now includes option to pause in the function
      • Previously needed a separate call
    • Now erases the message after the display (if a pause is invoked)
      • Previously only properly erased when called on the main screen
      • The erasure was however also lost on the main screen when IconRowMove and/or IconRowTune is active
      • Now fixed for all screens but artefacts may result with some custom banners
  • Improves CleanNvram Feature
    • The Emulated NVRAM on the filesystem is now also cleared
    • Now triggers NVRAM garbage collection on Macs when run
      • This is an equivalent of manually setting nvram ResetNVRam=1
  • Improves ProtectNVRAM Feature
    • Adds rEFIt Variant to UEFI Loaders filtered for ProtectNVRAM
      • Made up of RefindPlus, rEFIt and rEFInd files chain-loaded from named locations
      • The ProtectNVRAM feature is not enabled for such loaders
    • Now checks new NVRAM write entries against existing entries
      • Only updates the entries when absent or different
      • Filtering these reduces NVRAM writes and associated wear and tear
    • Expands blocked SecureBoot related items
    • Now clears existing instances of blocked variables
    • Adds UnlockID and UnlockIDCopy to filtered items
      • These are not certificates but work in concert with the certificates
      • Hence, not required once certificates are filtered
      • Filtering these reduces NVRAM writes and associated wear and tear
    • Filters out the Current OEM Policy from post-block clean up
      • Removal may have negative impact on UEFI-PC
      • Not strictly needed as ProtectNVRAM is currently limited to Apple Firmware
      • Considered best to add a filter now in case that changes in future
  • Improves Identification of Linux Instances
    • vmlinuz, bzImage, and kernel loaders are now accounted for as Linux loaders
    • The ProtectNVRAM feature is now not applied to such loaders
    • The grub loader was already accounted for
  • Improves OS Boot Filtering
    • The OSType flag is now taken into account
  • Improves Load Error/Warning Display
    • The ContinueOnWarning feature is forced on temporarily if required
  • Improves Time Bound Primed Buffer Mitigation
    • Mitigates against RefindPlus spontaneously running default items
    • Intervention is based on a rising threshold based on build type and presence of Apple firmware
    • Also doubles threshold time when external disks are detected
      • The issue appears to be worse when such disks are connected
  • Removes BootKicker feature
    • The feature was added as part of attempts to provide the RefindPlus screen on MacPro5,1
    • This was ultimately achieved via other means but the feature was maintained for potential benefits
    • The feature never actually worked properly however, hence the removal
  • Amends GOP Mode Selection Preference
    • RefindPlus defaults to selecting the maximum resolution GOP Mode when a screen resolution is not specified
    • When two modes have the same resolution, the later mode was used
    • This is now changed to prefer the first mode found
  • Amends OpenProtocol Remapping on Macs without AppleFramebuffers
    • The remapping is now disabled when GOP is absent on any type of firmware
    • It is now also disabled when AppleFramebuffers are absent on Apple firmware
    • This is to avoid potential memory management issues pending further investigation
  • Amends Default Loader Scan for APFS Support Volumes
    • APFS Recovery, Update and VM volumes are now added to the DontScanVolume list by default
  • Amends Scan for .VolumeIcons and VolumeBadges
    • Volumes in the DontScanVolume list are now skipped
  • Amends System Table Reallocations
    • No longer copies memory for system table reallocations
    • Some Mac models fail to boot with this following recent firmware updates
    • Other recent changes to RefindPlus may have also affected booting 'FileVault' encrypted volumes
  • Amends HandleProtocol Stashing
    • No longer stashes and restores HandleProtocol on OcProvideConsoleGop call
  • Renames the SilentBoot Feature as DirectBoot
    • This more accurately describes the feature.
  • Renames Misc Tokens to Permit Grouping of Related Tokens
    • The uga_pass_through token is renamed as pass_uga_through
    • The XYZ_hidden_icons tokens are renamed as hidden_icons_XYZ
    • The XYZ_renderer tokens are renamed as renderer_XYZ
  • Extends fixes on Mac Recovery Implementation for MacOS on APFS
    • Adjusted to cover all MacOS instances on APFS
    • APFS Recovery Volumes are handled as Mac Recovery Tools and not as volumes with loaders
    • IMPORTANT:
      • This implementation is still a work in progress ... feedback required/welcome

  1. Updated attached files to include post release PanicFilter feature fix