File grub2-bls-loader-features.patch of Package grub2
Index: grub-2.12/grub-core/normal/menu.c
===================================================================
--- grub-2.12.orig/grub-core/normal/menu.c
+++ grub-2.12/grub-core/normal/menu.c
@@ -45,6 +45,13 @@
{ 0x4a67b082, 0x0a4c, 0x41cf, { 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f } }
static grub_guid_t grub_efi_loader_guid = GRUB_EFI_LOADER_GUID;
+#define GRUB_EFI_LOADER_FEATURE_CONFIG_TIMEOUT (1 << 0)
+#define GRUB_EFI_LOADER_FEATURE_CONFIG_TIMEOUT_ONE_SHOT (1 << 1)
+#define GRUB_EFI_LOADER_FEATURE_ENTRY_DEFAULT (1 << 2)
+#define GRUB_EFI_LOADER_FEATURE_ENTRY_ONESHOT (1 << 3)
+#define GRUB_EFI_LOADER_FEATURE_BOOT_COUNTING (1 << 4)
+#define GRUB_EFI_LOADER_FEATURE_XBOOTLDR (1 << 5)
+
#endif
/* Time to delay after displaying an error message about a default/fallback
@@ -798,6 +805,14 @@ run_menu (grub_menu_t menu, int nested,
const char* val = grub_env_get ("enable_blscfg");
if (val && (val[0] == '1' || val[0] == 'y'))
{
+ static long loader_features =
+ GRUB_EFI_LOADER_FEATURE_ENTRY_DEFAULT |
+ GRUB_EFI_LOADER_FEATURE_ENTRY_ONESHOT |
+ GRUB_EFI_LOADER_FEATURE_BOOT_COUNTING |
+ GRUB_EFI_LOADER_FEATURE_XBOOTLDR;
+
+ grub_efi_set_variable("LoaderFeatures", &grub_efi_loader_guid, &loader_features, sizeof(long));
+
int oneshot_entry, default_entry_efi;
oneshot_entry = get_entry_from_efivar(menu, "LoaderEntryOneShot");
if (oneshot_entry != -1)