diff --git a/system/boot/grub2/files/30_uefi-firmware b/system/boot/grub2/files/30_uefi-firmware
index 1b68ba87..4593173c 100755
--- a/system/boot/grub2/files/30_uefi-firmware
+++ b/system/boot/grub2/files/30_uefi-firmware
@@ -76,4 +76,4 @@ cat << EOF
}
EOF
-fi
\ No newline at end of file
+fi
diff --git a/system/boot/grub2/files/30_uefi-firmware-new b/system/boot/grub2/files/30_uefi-firmware-new
new file mode 100644
index 00000000..b632425a
--- /dev/null
+++ b/system/boot/grub2/files/30_uefi-firmware-new
@@ -0,0 +1,84 @@
+#! /bin/sh
+set -e
+
+# grub-mkconfig helper script.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# GRUB is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GRUB is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GRUB. If not, see .
+
+prefix="/usr"
+exec_prefix="/usr"
+datarootdir="/usr/share"
+
+export TEXTDOMAIN=grub
+export TEXTDOMAINDIR="${datarootdir}/locale"
+
+. "${datarootdir}/grub/grub-mkconfig_lib"
+
+efi_vars_dir=/sys/firmware/efi/efivars
+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c
+OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE"
+
+if [ -e "$OsIndications" ] && \
+ [ "$(( $(printf 0x%x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then
+ LABEL="System setup"
+
+ gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2
+
+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+
+ cat << EOF
+if [ "\$grub_platform" = "efi" ]; then
+ fwsetup --is-supported
+ if [ "\$?" = 0 ]; then
+ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+ fwsetup
+ }
+ fi
+fi
+EOF
+fi
+
+#See for EFI present
+if [ -d /sys/firmware/efi ]; then
+
+. "/usr/share/grub/grub-mkconfig_lib"
+
+#See for Windows EFI string in EFI BIOS
+WINDOWS_EFI=$(/usr/sbin/efibootmgr -v | grep -E -m 1 '(WINDOWS|Windows Boot Manager)' | sed 's/.*\(HD([^()]*)File([^()]*)\).*/\1/i')
+if [ -z "$WINDOWS_EFI" ]; then
+ exit 0
+fi
+WIN_EFI_PATH_LINUX=/EFI/Microsoft/Boot/bootmgfw.efi
+
+#Determine EFI UUID
+WIN_EFI_UUID=$(grub2-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi)
+
+ESP_SEARCH_HINTS=$(grub2-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi)
+
+cat << EOF
+menuentry "Windows Boot Manager" {
+EOF
+save_default_entry | sed -e "s/^/ /"
+cat << EOF
+ insmod part_gpt
+ insmod fat
+ insmod search_fs_uuid
+ insmod chain
+ search --fs-uuid --set=root ${ESP_SEARCH_HINTS} ${WIN_EFI_UUID}
+ chainloader $WIN_EFI_PATH_LINUX
+}
+EOF
+
+fi
diff --git a/system/boot/grub2/pspec.xml b/system/boot/grub2/pspec.xml
index 98b52e5f..9360cb87 100644
--- a/system/boot/grub2/pspec.xml
+++ b/system/boot/grub2/pspec.xml
@@ -105,13 +105,20 @@
pisi-grub-bg.png
grub-defaults
- 30_uefi-firmware
+ 30_uefi-firmware-new
update-grub
30_os-prober2
+
+ 2024-07-11
+ 2.12
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2024-06-09
2.12