Lauri Kenttä
bc600a6c2f
Handle more command-line options before executing actions
2024-04-20 21:31:19 +03:00
Lauri Kenttä
022ea9b93b
Log image dimensions when installing
2024-04-20 21:31:19 +03:00
Lauri Kenttä
697c57355b
Disable old version before copying files
...
Apparently some people still have the obsolete v1.5.1 installed
and manage to break things by copying v2.x config in place.
2024-04-11 17:46:13 +03:00
Lauri Kenttä
da16365508
Report if BCDEdit is not working
...
One possible cause for BCDEdit failure is Windows error 0x800703EE.
"The volume for a file has been externally altered so that the opened file is no longer valid."
Suggested solutions include disabling antivirus or backup software.
2024-04-11 17:46:13 +03:00
Lauri Kenttä
665a4732ca
Detect device paths which contain extra data
...
Apparently some firmware may add extra data to the device path,
so exit the loop on the first end-of-path record.
Fixes GH issue #181 .
2024-03-24 17:27:02 +02:00
Lauri Kenttä
39596aadfc
Don't try to remove non-existent dir.
2024-01-20 12:43:00 +02:00
Lauri Kenttä
ea70f3ce79
Disable before enabling, and default to BCDEdit
2023-12-31 18:29:48 +02:00
Lauri Kenttä
a44b929012
Fix a shim error caused by bad load options data
...
Shim expects a filename or nothing in the load options.
To avoid an error message during boot, do several things:
When creating the NVRAM entry, use empty load options. The current
string ("HackBGRT\0") was just a decoration, and it's luckily ignored
by shim because the length is odd.
When creating the entry with BCDEdit, manually fix the load options.
The load options in BCDEdit entries start with "WINDOWS\0" followed
by UINT32 version, as seen in ReactOS struct BL_WINDOWS_LOAD_OPTIONS.
The version is 1, but BCDEdit seems to be happy with a higher number.
By setting this version to 'X' (0x58), the string becomes a valid
UCS-2 file name. Update the installer so that the HackBGRT loader is
installed with this weird file name.
The reason why the load options cannot be deleted completely is that
BCDEdit will recreate the entry on next boot if it doesn't find the
entry it just tried to create.
See: https://github.com/rhboot/shim/pull/621
See: https://github.com/reactos/reactos/blob/v0.4.7/boot/environ/include/bl.h#L911
2023-12-31 18:20:27 +02:00
Lauri Kenttä
9948e5a306
Fix BCDEdit dry run and add more logging
2023-12-31 17:50:14 +02:00
Lauri Kenttä
518d7c8a97
Show proper message if boot log is empty
2023-12-20 18:29:34 +02:00
Lauri Kenttä
c6108ffd62
Warn about old .Net version if methods are missing
2023-12-20 18:29:25 +02:00
Lauri Kenttä
6dc447a8ce
Try to avoid some .Net Framework 4.8 features
2023-12-20 18:29:25 +02:00
Lauri Kenttä
5ec17a49e8
Detect ARM arch from MS loader
2023-12-20 18:29:25 +02:00
Lauri Kenttä
a82646a822
Wipe the vendor logo as soon as possible
...
Loading the image might take some minimal time. Optimize experience.
Hide cursor as well but restore it in ReadKey.
2023-12-20 18:27:19 +02:00
Lauri Kenttä
294da9c069
Get rid of \EFI\HackBGRT\ in config.txt
2023-12-16 15:13:05 +02:00
Lauri Kenttä
74a143e723
Make BitLocker detection more reliable
2023-11-27 18:57:08 +02:00
Lauri Kenttä
ba72b90082
Add logging to verify entry creation
2023-11-27 15:19:46 +02:00
Lauri Kenttä
6b724d5590
Don't create entries higher than Boot00FF
...
Apparently Boot20## are sometimes reserved for firmware even if
they seem to be free. Boot00## is the normal place to be.
2023-11-27 15:19:06 +02:00
Lauri Kenttä
aac8a38cbb
Don't print HackBGRT on every output line
2023-11-25 20:02:53 +02:00
Lauri Kenttä
77dd2bd699
If GOP is missing, use config.txt resolution or 1024x768
2023-11-25 20:02:01 +02:00
Lauri Kenttä
7ccdcc4a77
Add ARM (32-bit) target (without shim, though)
...
Remove some integer divisions because they emit function calls.
2023-11-20 19:45:28 +02:00
Lauri Kenttä
4379f9cbeb
Add gnu-efi submodule for headers, don't link, just re-implement some functions
2023-11-20 19:42:23 +02:00
Lauri Kenttä
2a0f2a7757
Get shell arguments without gnu-efi
2023-11-20 19:31:25 +02:00
Lauri Kenttä
ebbacb72bb
Open ESP root dir without gnu-efi
2023-11-20 19:31:25 +02:00
Lauri Kenttä
a908036ee8
Implement WaitKey without gnu-efi
2023-11-20 19:31:25 +02:00
Lauri Kenttä
57ce3ae33e
Avoid using gnu-efi static global GUIDs
2023-11-20 19:31:25 +02:00
Lauri Kenttä
7dd048346d
Use EFI BS FreePool, SetMem, CopyMem
2023-11-20 19:31:25 +02:00
Lauri Kenttä
0dfc49c800
Re-implement string formatting (%s, %d, %x)
2023-11-20 19:31:25 +02:00
Lauri Kenttä
4e50b33636
Check BMP pixel data size when loading
2023-11-20 19:31:25 +02:00
Lauri Kenttä
466ab69c48
Use shim 15.7 to support Secure Boot
...
Use shim-signed and shim-helpers-{arch}-signed from Debian:
https://packages.debian.org/bookworm/shim-signed
2023-11-17 23:24:58 +02:00
Lauri Kenttä
db934099df
Gather log during boot
2023-11-17 23:13:12 +02:00
Lauri Kenttä
e93ed54cb2
Make setup menu shorter
2023-11-17 22:47:29 +02:00
Lauri Kenttä
9b3b045a21
Add SBAT section to the EFI binaries
2023-11-17 22:26:43 +02:00
Lauri Kenttä
be8a5d35d2
Sign the EFI files
2023-11-17 22:26:43 +02:00
Lauri Kenttä
2366fc8b98
Warn about Fast Startup (Hiberboot)
2023-11-16 22:56:10 +02:00
Lauri Kenttä
e04ba3e451
Log boot entries during setup
2023-11-16 22:07:08 +02:00
Lauri Kenttä
f40f2bc9dc
Clarify LogBGRT output for corner cases
2023-11-09 21:46:39 +02:00
Lauri Kenttä
2f572b24d4
Free BMP if it's invalid
2023-11-09 21:46:35 +02:00
Lauri Kenttä
0ce904f133
Use 999999 as the 'big' value instead of 2**31-1
2023-10-04 15:25:03 +03:00
Lauri Kenttä
62c892009a
Overwrite BGRT in a more readable manner
2023-10-04 15:25:03 +03:00
Lauri Kenttä
00bbfd6d82
Add ACPI table addresses to debug output
2023-10-04 15:25:03 +03:00
Lauri Kenttä
1058f3e2b4
Log BGRT contents during setup
2023-10-04 15:25:03 +03:00
Lauri Kenttä
661758ba58
Crop BMP to screen size
2023-09-14 18:07:48 +03:00
Lauri Kenttä
93eec1a250
Improve BMP handling
2023-09-14 18:05:38 +03:00
Lauri Kenttä
33e4450d19
Check that BitLocker is disabled
2023-09-10 23:03:50 +03:00
Lauri Kenttä
d2bac39680
Add assembly information to setup.exe
2023-09-10 15:43:04 +03:00
Lauri Kenttä
a4c917294c
Add option to boot to firmware
2023-09-10 15:43:04 +03:00
Lauri Kenttä
d6da4b7cee
Support creating boot entry with bcdedit
2023-09-10 15:42:18 +03:00
Lauri Kenttä
f2185f624d
Detect issues with boot= option
2023-09-10 15:02:58 +03:00
Lauri Kenttä
75e64a7ef3
Handle screen orientation
2023-09-10 15:02:58 +03:00