PortValhalla/scripts/PopOS/secure-boot.sh

57 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# Elevate script
if [ ! "$UID" -eq 0 ]
then
sudo bash "$BASH_SOURCE"
else
# Create context directory
workingDirectory="$(pwd)"
contextRoot="$(mktemp -d)"
packageName="shim.rpm"
cd "$contextRoot"
# Install Prerequisites
apt install -y wget rpm2cpio
# Download and Extract Package
wget https://kojipkgs.fedoraproject.org//vol/fedora_koji_archive02/packages/shim-signed/15/2/x86_64/shim-x64-15-2.x86_64.rpm -O "$packageName"
rpm2archive "$packageName"
tar -xvzf "$packageName.tgz"
rm -f "$packageName" "$packageName.tgz"
# Initialize variables
src="./boot/efi/EFI/fedora"
esp=/boot/efi
defaultBootDir=$esp/EFI/BOOT
microsoftBootDir=$esp/EFI/Microsoft/Boot
systemdDirName=/EFI/systemd
systemdFullName=$esp$systemdDirName
systemdFile=$systemdFullName/systemd-bootx64.efi
# Set up files
mv $defaultBootDir/BOOTx64.efi $defaultBootDir/grubx64.efi
cp "$src/shimx64.efi" $defaultBootDir/BOOTx64.efi
cp "$src/mmx64.efi" $defaultBootDir
# Add boot entries
efibootmgr --unicode --disk /dev/nvme0n1 --part 0 --create --label "Shim" --loader /EFI/BOOT/BOOTx64.efi
# Configure systemd-boot
{
echo "timeout 4"
} >> /boot/efi/loader/loader.conf
{
echo "title MokManager"
echo "efi /EFI/BOOT/mmx64.efi"
} > /boot/efi/loader/entries/MokManager.efi
# Install surface MOK
apt install -y linux-surface-secureboot-mok
# Remove context directory
cd $workingDirectory
rm -rf $contextRoot
fi