Commit Graph

1500 Commits

Author SHA1 Message Date
Peter Jones
25d6c434df Use MS ABI instead of terrible wrappers.
This means that we now require gnu-efi 3.0s

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-16 10:21:15 -04:00
Peter Jones
5bb3e64ed8 Use the correct define on Open.
The value here doesn't actually change any, but we should still use the
right name.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:44 -04:00
Peter Jones
1da87c0073 Use the correct define on Open.
The value here doesn't actually change any, but we should still use the
right name.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:44 -04:00
Peter Jones
c9d11306e4 Add some error messages when things don't work.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:27 -04:00
Peter Jones
b0712c5fc8 Add some error messages when things don't work.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:27 -04:00
Peter Jones
2e7fc28d92 Remove some unnecessary code.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:00 -04:00
Peter Jones
df87084fca Remove some unnecessary code.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:38:00 -04:00
Peter Jones
35b0b55b3e Fix some minor type errors.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:37:15 -04:00
Peter Jones
073f3b3caf Fix some minor type errors.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15 13:37:15 -04:00
Peter Jones
40cf2a423d Pass parameters correctly when booting.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-14 13:10:52 -04:00
Peter Jones
a41306e8f4 Pass parameters correctly when booting.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-14 13:10:52 -04:00
Peter Jones
8807e36aae [fallback] Try to execute the first new boot option.
I'm told rebooting is sometimes unreliable when called here, and we'll
get bootx64.efi loaded anyway.  I'll just assume that's true and try to
load the first option, since it's clearly what we'd prefer happens next.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-02 14:58:44 -04:00
Peter Jones
3fa9a53425 [fallback] Try to execute the first new boot option.
I'm told rebooting is sometimes unreliable when called here, and we'll
get bootx64.efi loaded anyway.  I'll just assume that's true and try to
load the first option, since it's clearly what we'd prefer happens next.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-02 14:58:44 -04:00
Peter Jones
4f80140b53 Explain byte order handling better.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 14:21:41 -04:00
Peter Jones
f0e4df7d5f Explain byte order handling better.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 14:21:41 -04:00
Gary Ching-Pang Lin
39baf6dff7 Don't update BootOrder until all csv files are processed 2013-04-30 09:46:23 -04:00
Gary Ching-Pang Lin
8adfd201fe Don't update BootOrder until all csv files are processed 2013-04-30 09:46:23 -04:00
Gary Ching-Pang Lin
117b1214d8 Reset the system after restoring the boot entries 2013-04-30 09:46:23 -04:00
Gary Ching-Pang Lin
f7fbcdce36 Reset the system after restoring the boot entries 2013-04-30 09:46:23 -04:00
Gary Ching-Pang Lin
17266fd057 Fix crash due to memory allocation 2013-04-30 09:46:23 -04:00
Gary Ching-Pang Lin
4665fcab62 Fix crash due to memory allocation 2013-04-30 09:46:23 -04:00
Peter Jones
404e126344 Get rid of extra "continue".
It's confusing, and it doesn't actually accomplish anything when applied
to *either* loop.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
82a9c9fdb6 Get rid of extra "continue".
It's confusing, and it doesn't actually accomplish anything when applied
to *either* loop.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
e172354b7e Fix error checking on AllocateZeroPool() in update_boot_order()
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
1a75bb9fc2 Fix error checking on AllocateZeroPool() in update_boot_order()
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
6d6b022169 Make shim use fallback when appropriate.
If we're called as /BOOT/EFI/BOOT*.EFI, and /BOOT/EFI/FALLBACK.EFI exists,
give it a shot.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
a24d3ba3bd Make shim use fallback when appropriate.
If we're called as /BOOT/EFI/BOOT*.EFI, and /BOOT/EFI/FALLBACK.EFI exists,
give it a shot.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
eb9f7f1c23 Add a fallback loader for when shim is invoked as BOOTX64.EFI
If shim is invoked as \EFI\BOOT\BOOT*.EFI and a file exists named
\EFI\BOOT\FALLBACK.EFI, try it instead of our second stage.  So don't
put fallback.efi on your install media in \EFI\BOOT, because that won't
do whatever it is you're hoping for, unless you're hoping not to start
the installer.

So here's the process for using this:
in /EFI/fedora/ (or whichever directory you happen to own), you put:
  shim.efi
  grub.efi
  boot.csv - format is: shim.efi,Nice Label,cmdline arguments,comments
           - filenames refer only to files in this directory, with no
	     leading characters such as L"./" or L"/EFI/fedora/"
           - note that while this is CSV, the character encoding is
	     UCS-2

and if /EFI/BOOT/BOOTX64.EFI doesn't already exist, then in /EFI/BOOT:
  shim.efi as BOOTX64.EFI
  fallback.efi

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
3ce517fdbb Add a fallback loader for when shim is invoked as BOOTX64.EFI
If shim is invoked as \EFI\BOOT\BOOT*.EFI and a file exists named
\EFI\BOOT\FALLBACK.EFI, try it instead of our second stage.  So don't
put fallback.efi on your install media in \EFI\BOOT, because that won't
do whatever it is you're hoping for, unless you're hoping not to start
the installer.

So here's the process for using this:
in /EFI/fedora/ (or whichever directory you happen to own), you put:
  shim.efi
  grub.efi
  boot.csv - format is: shim.efi,Nice Label,cmdline arguments,comments
           - filenames refer only to files in this directory, with no
	     leading characters such as L"./" or L"/EFI/fedora/"
           - note that while this is CSV, the character encoding is
	     UCS-2

and if /EFI/BOOT/BOOTX64.EFI doesn't already exist, then in /EFI/BOOT:
  shim.efi as BOOTX64.EFI
  fallback.efi

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
8f6eace189 Add StrCSpn()
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Peter Jones
1f41bdc79d Add StrCSpn()
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30 09:46:22 -04:00
Gary Ching-Pang Lin
0283024e0e Adopt the UEFI shell style LoadOptions
The previous commit, 14d4b8e, caused shim failed to parse the name
of the 2nd stage loader in UEFI shell. Amend parsing of the name the
2nd stage loader to be compatible with UEFI shell.

To create an boot entry for elilo.efi:

 # efibootmgr -c -L "shim elilo" -l "efi\\shim.efi" -u "shim.efi elilo.efi"
2013-04-30 09:45:45 -04:00
Gary Ching-Pang Lin
9754732ca1 Adopt the UEFI shell style LoadOptions
The previous commit, 14d4b8e, caused shim failed to parse the name
of the 2nd stage loader in UEFI shell. Amend parsing of the name the
2nd stage loader to be compatible with UEFI shell.

To create an boot entry for elilo.efi:

 # efibootmgr -c -L "shim elilo" -l "efi\\shim.efi" -u "shim.efi elilo.efi"
2013-04-30 09:45:45 -04:00
Peter Jones
4a3013c76c Get rid of extra label.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 12:12:48 -04:00
Peter Jones
53ba265dcb Get rid of extra label.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 12:12:48 -04:00
Peter Jones
155a76bb86 Don't put the directory in the file path twice.
Sometimes when we're creating paths, the ImagePath can contain the
directory name already.  If that happens, don't add it in again.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 11:44:28 -04:00
Peter Jones
4df3d7c3ef Don't put the directory in the file path twice.
Sometimes when we're creating paths, the ImagePath can contain the
directory name already.  If that happens, don't add it in again.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 11:44:28 -04:00
Peter Jones
6e1bd3dcb7 UEFI Shell sticks the UCS2 of li->FilePath in li->LoadOptions. Ignore it.
If li->LoadOptions tells us to execute our own binary, it's clearly not
what we want to do for the second stage.  So simply ignore that case.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 11:44:15 -04:00
Peter Jones
2cead91ea2 UEFI Shell sticks the UCS2 of li->FilePath in li->LoadOptions. Ignore it.
If li->LoadOptions tells us to execute our own binary, it's clearly not
what we want to do for the second stage.  So simply ignore that case.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-26 11:44:15 -04:00
Gary Ching-Pang Lin
4a88de5816 Make sure the menu shows when the callback fails
Since Pause() doesn't clear the key from the input queue, the next
ReadKeyStroke reads the queued key instead of the new one. If the
user presses "Enter", MokManager exits directly without showing
the menu again.
2013-01-03 12:20:30 +08:00
Gary Ching-Pang Lin
4bab48ce88 Make sure the menu shows when the callback fails
Since Pause() doesn't clear the key from the input queue, the next
ReadKeyStroke reads the queued key instead of the new one. If the
user presses "Enter", MokManager exits directly without showing
the menu again.
2013-01-03 12:20:30 +08:00
Gary Ching-Pang Lin
92a136d823 Add support for deleting specific keys 2013-01-03 12:20:22 +08:00
Gary Ching-Pang Lin
990dcdb6a6 Add support for deleting specific keys 2013-01-03 12:20:22 +08:00
Gary Ching-Pang Lin
a05c7c57d9 MOK doesn't include the signature owner 2012-12-27 11:42:54 +08:00
Gary Ching-Pang Lin
0c6a8a7501 MOK doesn't include the signature owner 2012-12-27 11:42:54 +08:00
Gary Ching-Pang Lin
262d671419 Add a general function for password matching 2012-12-27 11:42:54 +08:00
Gary Ching-Pang Lin
5abe73ab81 Add a general function for password matching 2012-12-27 11:42:54 +08:00
Gary Ching-Pang Lin
a64ab2ec6b Reboot the system after enrolling/erasing keys 2012-12-27 11:42:45 +08:00
Gary Ching-Pang Lin
510dafda53 Reboot the system after enrolling/erasing keys 2012-12-27 11:42:45 +08:00
Gary Ching-Pang Lin
4895ca3919 Clear the screen before erasing keys 2012-12-20 12:55:59 +08:00