-
Notifications
You must be signed in to change notification settings - Fork 66
/
CHANGELOG.txt
1492 lines (1412 loc) · 83.4 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.14.2.AB (PRE-RELEASE):
-----------------------
- Improves `Shortcut Key` Handling
* No longer allocates keys based on the operating system type/name
- There was no way of knowing what would be loaded in many cases
* No longer allocates keys to tools with the exceptions below
- Key: `A` is allocated to `About Refindplus`
- Key: `Z` is allocated to `System Shutdown` (Previously `U`)
* Keys are now basically allocated on display position
- Order: `1, 2 ... 9, C ... X, Y` (30 keys)
- Key `0` is an internally reserved key
- Keys `A` and `Z` are used for tools
- Keys `B`, `I` and `O` are not used
0.14.2.AA (08 OCT 2024):
-----------------------
- 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)
- Ref: Issue https://github.com/dakanji/RefindPlus/issues/184
* 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)
* Ported from @joevt downstream: https://github.com/joevt/RefindPlus/commit/266fd8f
- 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 `HelpScan` Feature
* The feature is now essentially included upstream
* Now removed as a standalone feature in RefindPlus and active as a default core item
* The associated `decline_help_scan` configuration token is now removed and ignored if set
- 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
0.14.1.AA (04 Jun 2024):
-----------------------
- 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 allowing a native trusted 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
* The `LoaderDevicePartUUID` UEFI Variable is written to vRAM and not nvRAM
* See: https://sf.net/p/refind/discussion/general/thread/d8dad2c475/
- 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 Mac OS directly
- This variable is effectively an `OpenCore Present` flag that is checked by the Mac OS kernel
- This variable removal only applies when RefindPlus is *NOT* chain-loaded via OpenCore
- This variable removal also applies to Mac OS installers
* Separately, the implementation of the base feature was not functional on Mac OS 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`
0.14.0.AC (06 FEB 2024):
-----------------------
- Adds `SyncNVram` Feature
* Sets RefindPlus to always clear some nvRAM settings on certain boot types
- Currently applied to Bluetooth settings for Mac OS
* bluetoothInternalControllerinfo
* bluetoothActiveControllerInfo
* bluetoothExternalDongleFailed
* The feature can be enabled using a new `sync_nvram` configuration token
- Adds `PersistBootArgs` Feature
* Outputs of Mac OS 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 `Mac OS 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`
0.14.0.AB (03 Oct 2023):
-----------------------
- 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`
0.14.0.AA (13 Jun 2023):
-----------------------
- 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
* Adoption of the RefindPlus `FollowSymlinks` Feature
* `also_scan_dirs` Volume Specification Bugfix
- https://sf.net/p/refind/code/ci/fde8116021e1c6ea7edaf3fae15fced47bbb38cf
- https://sf.net/p/refind/discussion/general/thread/b411f33f37
* Malformed `refind_linux.conf` Freeze Bugfix
- https://sf.net/p/refind/code/ci/ebe510a5fcdc10fc04f90e0976c47de54b8c767e
* Parallel FS Driver GNU-EFI Build Limitation
- https://sf.net/p/refind/code/ci/dc211965727921bf8e9440fdab5e147795ce9584
* Memory leak and garbled JPEG when compiled on some Linux distributions
- https://sf.net/p/refind/code/ci/8825e5e815b4be3708edd7b8d9fa3ea658094d3b
* Apparent Memory Allocation Conflict
- https://sf.net/p/refind/code/ci/5e2d0ac3fb76a8daab3a8199d0b0c52dc792b84f
* Upstream `LinuxPrefixes` Feature
- https://sf.net/p/refind/code/ci/d5c0a48a01427ed7a3cb3eb324c59fb965358b1d
- 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
* BTRFS: Adds support for `RAID1C34` profiles
- Ported from Grub2 via https://sf.net/p/refind/code/merge-requests/48
* MISC: Tweaks driver name strings and other minor items
- 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
0.13.3.AD (07 Mar 2023):
-----------------------
- 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
* Addresses issues reported using the build process at https://github.com/xaionaro/edk2-builder-docker
- Updates `LodePNG` to Version 20221108
- Deduplicates `DebugLog` function and aligns calling convention
- 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 messages and the discrepancy is only logged
* Fixes Memory Conflict in 'Invalid EFI Versions' Debug Logging
- The DBG build had an invalid memory allocation instance
* This resulted in RefindPlus hanging when logging detection of such
- 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 is replaced by the "Opt-In" `enable_esp_filter`
* A previous issue where the token operated the wrong way round has been fixed
0.13.3.AC (06 Dec 2022):
-----------------------
- 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`
0.13.3.AB (06 Sep 2022):
-----------------------
- 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 made 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`, `Mac OS`, `Windows` and `Misc Others`
- Fixes Apple Hardware Test Option
* While Apple stopped providing this feature after June 2013, some users may have restored this
- Ref: https://github.com/upekkha/AppleHardwareTest
* In such cases however, RefindPlus did not provide the option on APFS volumes when `SyncAPFS` is active
* Now reinstated subject to not having multiple Mac OS 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
* Ref: https://github.com/joevt/RefindPlus/commit/8d03f987ce544869d275d0bd31cd1eb9b5939891
0.13.3.AA (06 Jun 2022):
-----------------------
- Synced with Upstream v0.13.3
- Adds `EnableMacosFilter` Feature
* This feature is active by default and activates the `ProtectNVRAM` feature, if enabled, on Mac OS 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 Mac OS `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
* Applies workaround for touch mode failure
- Ref: https://sf.net/p/refind/discussion/general/thread/86f80fa8ef
* Rationalises pointer priority with `EnableTouch` always having priority over `EnableMouse`
- Previously depended on order of appearance in configuration file
- 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`
0.13.2.AP (19 Apr 2022):
-----------------------
- 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 Mac OS 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 Memory 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 Mac OS on APFS
* Adjusted to cover all Mac OS 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
0.13.2.AN (08 Feb 2022):
-----------------------
- Multiple Misc Stability Fixes
* Major refactoring and restructuring for improved stability
* Also applied to filesystem drivers
- Adds `SupplyUEFI` Feature
* Adds an implementation of the `CreateEventEx` feature to EFI 1.x units
* Additionally, the EFI Revision is modified to present as UEFI 2.3
* This allows the use of UEFI 2.x tools and drivers on Legacy EFI 1.x units in many cases
* This is particularly the case on Legacy Macs, which already have amended EFI 1.x implementations
* This functionality can be disabled by setting the `decline_uefiemulate` token
* As an aside, the `RuntimeServices` table is now also amended in `AmendSysTable`
- Adds `SilentBoot` Feature
* RefindPlus inherited a mode where a default selection was run after an instant timeout
* A shortcut key for a loader could also be pressed to run that particular loader instead
* This mode is activated by setting the `timeout` config token to `-1`
* However, the RefindPlus screen was briefly loaded before the target option was run
- This created an unwanted screen flash and also removed the BGRT logo
* The default selection is now run without showing the screen at all instead (Based on an upstream update)
* The mode is now truly silent as there is no video output unless overridden (BGRT logos are maintained)
- Override is initiated by holding down the `ESC` key immediately after starting RefindPlus
- Shortcut keys can also be pressed
* In such cases, the loader associated with the key will be run instead of the default
* There will be no video output by RefindPlus similar to the default case
- Fixes Forced `TextRenderer`
* The `TextRenderer` feature is forced on in certain circumstances to enable text mode support
* This appears to have resulted in conflicts on some Macs following a firmware update
* The firmware update appears to have made changes to screen mode settings
* The forced activation has been amended to avoid this issue
- Fixes SystemTable Restoration
* The code was previously not operational
* This has now been fixed but is now limited to when `SupplyUEFI` is inactive
- Fixes Major Memory Conflict
* An item had been wrongly freed and resulted in random crashes when running loaders
* This bug was introduced in v0.13.2.AC (Commit 6ed58c5)
- Fixes `DontScanVolumes` for Synced APFS Instances
* Limited to Single Instance APFS Containers
- Fixes Reported LodePNG Name Collisions
* This apparently affected Docker builds on Linux
- Amends Handling of Inconsistent EFI Versions
* RefindPlus now disables all functionality involving UEFI element changes when this is detected
* A detection of inconsistent EFI versions suggests RefindPlus has been chain-loaded
* This is most likely to be as a result of chain-loading from OpenCore with `ForgeUefiSupport` set
* The disabled features can typically also be set in OpenCore
- Improves `ProtectNVRAM` Implementation
* RefindPlus classifies UEFI Loaders into one of the following categories:
- `Opencore`, `Clover`, `Linux`, `Mac OS`, `Windows` and `Others`
* Only security certificates generated by Windows UEFI Loaders were blocked by ProtectNVRAM
* However, UEFI Windows installers/updaters may fall into the `Others` category and generate such certificates
* Hence, certificates generated by UEFI Loaders that fall into the `Others` category are now also blocked
- The feature remains only active on Apple firmware
- Can be disabled by setting the `decline_nvramprotect` token
- Improves `SyncAPFS` Implementation
* The presence of valid VolUUID and PartGUID is now taken into account
* SyncAPFS is disabled if either has a `NULL` Guid value
- Improves Screenshot Feature
* Feedback on success/failure is given via on-screen messages
* Each press of the `F10` key now results in only one image being saved
- This is subject to the key press not continuing beyond the on-screen message display
- Improves Memory Management
* Multiple memory management improvements
- Improves Build Process
* RELEASE builds are further optimised
- The `MDEPKG_NDEBUG` EDK2 functionality is leveraged to:
* Reduce file size
* Ensure consistent files on different builds
- EDK2 otherwise only guarantees functional consistency
- This now enforces additional structural consistency
- Builds with different file paths will now be the same
* Calls to `ASSERT`, and similar, are activated on DEBUG Builds
- Failed `ASSERT` calls put RefindPlus into a Deadloop
* Enables `NOOPT` Build Target
- This is a debug build with compile time optimisation items disabled
- Log Level 2 is only exposed on this build target
* The `REFIT_DEBUG` define has been converted to a compiler option
- The constant is no longer defined in `global.h` and is now set in `RefindPlus.inf` instead
- This change removes the need for compile time edits to set build targets
- The requirements are now managed transparently by the build process itself
* The various `*.inf` files for filesystem drivers etc, have been standardised
- These now follow a clearer standard format
- Renames the `ignore_previous_boot` config option as `transient_boot`
* This more accurately describes the feature.
- The current boot selection is not saved, it becomes transient, but any previously saved boot is set as the default
0.13.2.AM (13 Dec 2021):
-----------------------
- Reverts Ported APFS Volume Group Identification
* Does not appear the Volume Group information was correctly isolated and hence, not unique
* This resulted in Mac OS volume instance conflicts
* NOTE: Multi Instance APFS Container restrictions apply again
0.13.2.AL (12 Dec 2021):
-----------------------
- Adds `ExternalHiddenIcons` Feature
* Sets RefindPlus to also scan external volumes for `.VolumeIcon` icons
* This is a port of the downstream `AllHiddenIcons` feature by GitHub user @Joevt
* Amended and renamed to reflect the target disk kind
- Improves `ScreenRGB` Feature
* The handling of the embedded title banner has been improved by leveraging transparency
* This significantly reduces the overall file size and ensures backgrounds are fully matched
* This is a port of the downstream implementation by GitHub user @Joevt
- Fixes `BootKicker` and `CleanNvram` Amongst Others
* Misc memory management defects had disabled both
- Fixes for `BTRFS` and `NTFS` Filesystem Drivers from GitHub user @Joevt
* BTRFS: Fixes file creation date bug
* NTFS: Fixes file creation date bug
* NTFS: Fixed `attribute_sparse` and `attribute_encrypted` which were not testing those flags correctly
- The field is a USHORT (Unsigned 16-bit integer) but was handled as a BYTE (Unsigned 8-bit integer)
* NTFS: Fixes a bug where `read_attribute_direct` could write outside the attribute destination buffer.
- `olen` can become negative and could be passed to `CopyMem`, which requires an unsigned length.
- Improves `SyncAPFS`
* APFS Volume Groups can now be identified along with the earlier identified `Disk Roles`
* This significantly improves determination of APFS Volume Types/Roles
* Restrictions limiting some features to setups with only one APFS instance per container are now removed
* This is a port of the downstream implementation by GitHub user @Joevt
- Amends Log Levels
* LogLevel 0 remains as a native summary format
* The previous upstream based four (4) log levels have been compressed to two (2) levels
* LogLevel 4, which was not exposed by default, is now LogLevel 2, which is also not exposed by default.
* LogLevel 2 is exposed when the `REFIT_DEBUG` build flag is set to two (2) at compilation time.
* Unless LogLevel 2 is exposed when compiling, selected levels above one (1) will be capped at LogLevel 1
* When LogLevel 2 is exposed, selected levels above two (2) will be capped at LogLevel 2
- Initial activation of fixes on Mac Recovery For Mac OS 11 (Big Sur) and Later
* IMPORTANT:
- This implementation is still a work in progress ... feedback required/welcome
0.13.2.AK (07 Dec 2021):
-----------------------
- Adds `SupplyNVME` Feature
* A built in NvmExpress driver is loaded by default to provide NVMe support if required
* This functionality can be disabled by setting the `decline_nvmeload` token
* With this feature, in addition to SupplyAPFS, firmware patching is no longer required on MacPro3,1 and XServe2,1
- Adds `ScreenRGB` Feature
* Allows overriding the default background colour selection process
* Users can now specify RGB values to be used instead
- Fixes Display of Mac Recovery Tool Name in RELEASE builds
* The variable holding the Mac Recovery tool name was wrapped in `Debug` tags
* Hence the tool name was not displayed in RELEASE builds
- Initial fixes on Mac Recovery For Mac OS 11 (Big Sur) and Later
* The Mac Recovery implementation inherited by RefindPlus was designed for the HFS+ filesystem
* Hence, it does not recognise recovery volumes of Mac OS versions with full APFS implementation
- Mac OS 10.13 (High Sierra) to Mac OS 10.15 (Catalina) have partial/transitional APFS implementations
- Mac OS 11 (Big Sur) and newer have full APFS implementations
* ADDITIONAL NOTES:
- This implementation does not support setups with more than one APFS instance in a single container
- This implementation is still a work in progress
- Fixes Compilation Issue on Recent GNU-EFI Versions
* Synced with upstream update as well as an existing issue with `REFIT_CALL_X_WRAPPER`
* GNU-EFI compilation of RefindPlus is likely broken overall
- Fixes `TagsHelp` Feature
* Was inverted ... active when `decline_tagshelp` was set and vice versa after renaming the feature
* This bug was introduced in v0.13.2.AH (Commit 1b043c3)
- Fixes Failure to Set Volume Badges and .VolumeIcon files on APFS Volumes
* The items were skipped by optimisation meant to only skip such on APFS System Volumes for SyncAPFS
* This bug was introduced in v0.13.2.AH (Commit d87d3fb)
- Fixes Memory Management
* The `MyFreePool` function implementation did not actually free items passed
* Similarly, the `ReleasePtr` function that called this was non operational
* This affected the operation of various elements across the board
* Both functions have now been consolidated into a new `MY_FREE_POOL` macro
* This bug was introduced in v0.13.2.AD (Commit 65e5083)
- Fix BTRFS Filesystem Driver Build
* The BTRFS filesystem driver had been excluded from RefindPlus builds from the start of the project
* This was due to inherited issues with EDK2 builds of the driver ... [rEFInd Build Notes](https://github.com/dakanji/rEFInd/blob/54177c64768eed0ba56822f32cdfa279e97b8577/BUILDING.txt#L490-L495)
* The build issues were resolved by GitHub User `joevt` and have been incorporated into RefindPlus
- Improves Time Bound Primed Buffer Mitigation
* Mitigates against RefindPlus spontaneously running default items
* Intervention is now based on a minumum 1.25 second interval between load and run attempt
* Extended scope now covers Mac OS again (previously removed)
- Improves `ProtectNVRAM` Implementation
* Now ensures this is reset on each loop through the RefindPlus Main Loop
* This ensures the filtering is not on if UEFI Windows boot fails
* Only has cosmetic relevance but best practice
- Improves `Manage Firmware BootOrder` Implementation
* Now confirms selected action before execution to minimise the chances of making unwanted changes
- Amends `ScaleUI` Implementation
* Now checks the resolution of the longest and shortest sides for automatic scaling
* Previously only checked the vertical resolution
* This allows rotated screens to be properly accounted for
* Some rare monitors, such as the 30` Apple Cinema Display, may be wrongly identified as HiDPI
* This is because `EDID` information is not used at this time
* However, the more common WQHD monitors are correctly identified as not being HiDPI monitors
* Laptops with `Retina` screens should be correctly identified as having HiDPI monitors
- Amends Log Levels
* The previous upstream based four (4) log levels have been compressed to three (3) levels
* LogLevel 5, which was not exposed by default, is now LogLevel 4, which is not exposed by default.
* LogLevel 4 is exposed when the `REFIT_DEBUG` build flag is set to two (2) at compilation time.
* Unless LogLevel 4 is exposed when compiling, selected levels above three (3) will be capped at LogLevel 3
* When LogLevel 4 is exposed, selected levels above four (4) will be capped at LogLevel 4
0.13.2.AJ (06 Oct 2021):
-----------------------
- Fixes PreBoot Volume Filtering in REL Builds
- Deactivates Log Level 5
0.13.2.AH (05 Oct 2021):
-----------------------
- Adds `PreferHiddenIcons` Feature
* This functionality allows prioritising the use of `.VolumeIcon` image icons for loaders
- Adds Non-Standard UEFI 2.x Implementation Resilience
* Some UEFI 2.x implementations may be incomplete with some functionality missing
* This is typically due to customisation of the firmware as on Late Intel Macs such as the MacMini8,1
* This affected running the DEBUG build on such units
* RefindPlus now accommodates this situation.
- Adds Forced Shutdown on Secure Boot Setup Failure
* RefindPlus will now shutdown if meant to use secure boot but this could not be set up
- Fixes Failure to Detect Linux Partitions
* Linux partitions were not detected and therefore, could not be booted by RefindPlus
- Fixes Implicit Casting of Some Config Integers
* Some config tokens that could take negative values such as `screensaver` were handled as Unsigned Integers
* These are now correctly handled as Signed Integers
- Fixes Driver Loading from User Defined Folders
* Drivers in folders defined by the `scan_driver_dirs` configuration token were not loaded in some instances
* This was because the routine expected the defined paths to not include the installation folder path
* This expectation was not specified however, meaning some users included the path in `scan_driver_dirs`
* This expectation has now been removed and the installation folder path may or may not be included
- Fixes Switching External Screens to Text Mode
* External screens switched to text mode were functional but elements, such as the header, were missing
* This has now been fixed along with properly disabling the cursor
- Fixes Hang on Runtime Pauses
* RefindPlus hung on runtime pauses initiated before the main menu was loaded
* This was due to an absence of the Event Waitlist in such situations
* The Waitlist is now always generated on runtime pauses if not present
- Fixes Static `PreviousBoot` Setup
* The actually booted loader was not recorded if a tool had been run beforehand
* Such previously set tools could only be changed by manually deleting the NVRAM entry
* The intented outcome of having a static setup could not be realised as envisaged
* This bug was introduced in v0.13.2.AG (Commit add53ba)
- Fixes Failure to set `PreviousBoot` on Text Mode Boots
* The `PreviousBoot` variable was not saved when running loaders in text mode
* This bug was introduced in v0.13.2.AA (Commit 74d70fb) and exposed in v0.13.2.AG (Commit 4590047)
- Fixes Graphics Mode Selection in Multi-GPU Setups
* When more than one GPU is present, RefindPlus always tried to use the GOP instance from the last processed GPU
* The GPU with a GOP instance having the highest resolution is now selected instead (as intended)
* NB: RefindPlus does not check whether a GPU is actually connected to a display
- Hence, a blank display will result if the highest resolution GPU is not connected
* This bug was introduced in v0.12.0.AN (Commit 62e6fe8)
- Mitigates Text Mode Selected Menu Item Display
* The selected item in text mode menus was not displayed
* The selections had to be toggled to display the item
* RefindPlus now works around this issue by automatically toggling such menu items
* This toggling may however not happen on some units
- Improves Mac Recovery Tool Identification
* RefindPlus now attempts to associate Apple Mac Recovery Tool instances to specific Mac OS Volumes
* The same generic name was previously used for all instances
* This had made it difficult to know which volume a specific recovery instance applied to
- Improves Keystroke Flushing
* Device errors are returned when attempting to read keystrokes under some conditions
* This appears to typically only happen on UEFI PC
* RefindPlus now further attempts to ensure the read takes place and/or mitigate the impact
- Improves APFS Volume Role Identification
* APFS volume roles are now identified by their predefined `Disk Roles` when possible
* Additionally, the `SyncAPFS` feature has been optimised for faster completion
- Improves APFS Partition Type Detection
* RefindPlus Primarily used the Partition Type Guid to identify APFS Partitions
* Some UEFI PC may however not provide a Partition Type Guid for APFS volumes
* This affected the operation of the SyncAPFS feature which had to be disabled on such units
* RefindPlus can now determine APFS partitions when the Partition Type Guid is not present
- Improves `PreviousBoot` Implementation
* Only Loaders (Row 1 Items) are now saved as `PreviousBoot` when this is configured to be saved
* Such Loaders are only saved after verification (not regardless as was the case)
- Improves `IgnorePreviousBoot` Implementation
* This token is now enforced everywhere when set
* Setting `+` under the `default_selection` token will therefore have no effect in such cases
* NB: Setting `default_selection `+`` remains equivalent to commenting that token out
- This default setting will continue to function as before
- Improves NVRAM Management
* NVRAM Entries (Emulated and Hardware) are fully cleared before new entries are made
- Improves Graphics Mode Selection
* Eliminates unnecessary iteration over UGA/GOP modes when only one UGA/GOP instance exists
* This improves loading speed.
- Extends Memory Management Fixes
* Additional memory management improvements
- Renames Misc Configuration Tokens
* `ignore_volume_icns` to `ignore_hidden_icons`
* The `decline_XYZ` format is now used for options to disable divergent defaults
- `scan_other_esp` to `decline_espfilter`
- `ignore_tag_help` to `decline_tagshelp`
- `sync_apfs` to `decline_apfssync` (`SyncAPFS` is now active by default)
- `supply_apfs` to `decline_apfsload` (`SupplyAPFS` is now active by default)
- `silence_apfs` to `decline_apfsmute` (`SilenceAPFS` is now active by default)
- `protect_nvram` to `decline_nvramprotect` (`ProtectNVRAM` is now active by default)
- `reload_gop` to `decline_reloadgop` (`ReloadGOP` is now active by default)
0.13.2.AG (03 Aug 2021):
-----------------------
- Adds `TagHelp` Feature
* Ensures HiddenTags can always be unhidden
* This feature is active by default but can be disabled with the `disable_tag_help` token
- Fixes Banner Flicker During Load Sequence
* Rationalises freeing the screen background image to reduce flickering at load time
* Provides improved UX
- Fixes Filtering of Windows Secure Boot Certificates on Apple Firmware
* Reverts Extension to Legacy Windows
* This appeared to be linked to negative impacts on some Macs
- Fixes `IgnoreVolumeICNS` and `HideUI Badges` Implementation
* Now extended to cover other volume types apart from `internal` volumes
- Fixes Handling of `FirmwareBootNum` Entries
* These were not loaded as expected
- Fixes Hangs Resulting from Changed Device Handles
* RefindPlus hung on return from third party tools that change device handles, such as GDisk
* RefindPlus now manages this situation